Using udpsrc as source in rtsp-server

Krzysztof Konopko krzysztof.konopko at youview.com
Mon Dec 3 03:05:37 PST 2012


Hi Damiano,

I reproduced the problem on the command line. Apparently you're missing
space before the closing brace ')'

Kris

On 03/12/12 10:59, Damiano Pinarello wrote:
> Hi Kris,
> 
> I have already tried to replace caps as you advise to me, but rtsp-server return the same error.
> I tried all combinations:
> 
> - caps=\"application/x-rtp,media=(string)video,encoding-name=(string)H264\"
> - caps=application/x-rtp,media=(string)video,encoding-name=(string)H264
> - caps='application/x-rtp,media=(string)video,encoding-name=(string)H264'
> 
> but nothing change.
> 
> Hi,
> Damiano
> 
> 
> On 09:58 Mon 03 Dec     , Krzysztof Konopko wrote:
>> Hi Damiano,
>>
>> I guess you need to get rid of quotes around the caps value in your
>> REALTIME stream pipeline. They are required on the command line and get
>> consumed by the shell when constructing argument list.
>>
>> Try replacing
>>
>> "
>> caps=\"application/x-rtp,media=(string)video,encoding-name=(string)H264\" !"
>>
>> with
>>
>> " caps=application/x-rtp,media=(string)video,encoding-name=(string)H264 !"
>>
>> HTH,
>> Kris
>>
>> On 03/12/12 09:31, Damiano Pinarello wrote:
>>> Hi all,
>>>
>>> I'm working on IP camera based on DM365.
>>> I'm using the following pipeline to strem video on 127.0.0.1 and record it at the same time:
>>>
>>>   gst-launch \
>>>     v4l2src always-copy=FALSE ! \
>>>     'video/x-raw-yuv,format=(fourcc)NV12,width=640,height=480,framerate=(fraction)30/1' ! \
>>>     TIVidenc1 bitRate=6000000 encodingPreset=2 codecName=h264enc engineName=codecServer contiguousInputFrame=TRUE \
>>>     ! queue ! tee name=t_vid ! \
>>>     queue ! rtph264pay pt=96 ! udpsink host=127.0.0.1 port=5000 t_vid. ! \
>>>     queue ! valve drop=true ! filesink location=/var/tmp/sample.264
>>>
>>> About filesink tree, I use valve element to decide when start/stop video recording.
>>>
>>> I want to strem video via rtsp-server into three flow: the first is realtime flow, the second is the first delayed of Xsecs
>>> and the third is a play of a recording video.
>>>
>>>   GstQueue_r.t_time = (guint64)0;
>>>   GstQueue_r.s_buffers = (guint)0;
>>>   GstQueue_r.s_bytes = (guint)0;
>>>   GstQueue_r.s_time = (guint64)0;
>>>
>>>   // REALTIME stream
>>>   pipeline = g_strdup_printf("( "
>>>     " udpsrc port=5000"
>>>     " caps=\"application/x-rtp,media=(string)video,encoding-name=(string)H264\" !"
>>>     " queue min-threshold-time=%lld max-size-buffers=%d max-size-bytes=%d max-size-time=%lld ! rtph264pay pt=96 name=pay0"
>>>     ")", (guint64)GstQueue_r.t_time, (guint)GstQueue_r.s_buffers, (guint)GstQueue_r.s_bytes, (guint64)GstQueue_r.s_time);
>>>   gst_rtsp_media_factory_set_launch(GST_RTSP_MEDIA_FACTORY(realtime), pipeline);
>>>
>>>   GstQueue_d.t_time = (guint64)10000000000ULL;
>>>   GstQueue_d.s_buffers = (guint)0;
>>>   GstQueue_d.s_bytes = (guint)0;
>>>   GstQueue_d.s_time = (guint64)0;
>>>
>>>   // DELAYED stream
>>>   pipeline = g_strconcat("( "
>>>     " rtspsrc location=rtsp://127.0.0.1:3051/realtime !"
>>>     " queue min-threshold-time=%lld max-size-buffers=%d max-size-bytes=%d max-size-time=%lld ! rtph264pay pt=96 name=pay1"
>>>     ")", (guint64)GstQueue_d.t_time, (guint)GstQueue_d.s_buffers, (guint)GstQueue_d.s_bytes, (guint64)GstQueue_d.s_time);
>>>   gst_rtsp_media_factory_set_launch(GST_RTSP_MEDIA_FACTORY(delayed), pipeline);
>>>
>>>   // RECORDED stream
>>>   pipeline = g_strconcat("( "
>>>     " filesrc location=/var/tmp/sample.264 !"
>>>     " queue min-threshold-time=%lld max-size-buffers=%d max-size-bytes=%d max-size-time=%lld ! rtph264pay pt=96 name=pay2"
>>>     ")", (guint64)GstQueue_r.t_time, (guint)GstQueue_r.s_buffers, (guint)GstQueue_r.s_bytes, (guint64)GstQueue_r.s_time);
>>>   gst_rtsp_media_factory_set_launch(GST_RTSP_MEDIA_FACTORY(recorded), pipeline);
>>>
>>> Every flow is mapped in a different url on the same rtsp-server:
>>>  - rtsp://10.39.9.76:3051/reltime 
>>>  - rtsp://10.39.9.76:3051/delayed 
>>>  - rtsp://10.39.9.76:3051/recorded 
>>>
>>> When I try to recive one video from my desktop with this pipeline:
>>>
>>>   gst-launch -v rtspsrc location=rtsp://10.39.9.76:3051/realtime ! rtph264depay ! ffdec_h264 ! xvimagesink
>>>
>>> the server return this kind of error that it's the same for every url:
>>>
>>> ** (gst-player:1499): CRITICAL **: could not parse launch syntax ((  udpsrc port=5000 caps="application/x-rtp,media=(string)video,encoding-name=(string)H264" ! queue min-threshold-time=0 max-size-buffers=0 max-size-bytes=0 max-size-time=0 ! rtph264pay pt=96 name=pay0)): Unrecoverable syntax error while parsing pipeline (  udpsrc port=5000 caps="application/x-rtp,media=(string)video,encoding-name=(string)H264" ! queue min-threshold-time=0 max-size-buffers=0 max-size-bytes=0 max-size-time=0 ! rtph264pay pt=96 name=pay0)
>>>
>>> I try to modify a sintax but I don't be able to solve it.
>>>
>>> Anyone can help me?
>>>
>>> Tnx in advance
>>>
>>>
>>
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> 



More information about the gstreamer-devel mailing list