Problem with Pipeline udpsrc -> mux -> filesink

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Problem with Pipeline udpsrc -> mux -> filesink

prabhulinga Swamy B S-2
Hi all,

I'm able to send, receive and playback H264 video file using rtph264pay,
rtph264depay and ximagesink elements across different hosts. I'm using
following pipeline.

host_send $  gst-launch filesrc location=./Cam111-20101126-193700.avi ! \
                 avidemux ! h264parse ! rtph264pay ! udpsink
host=172.16.10.32 port=3000

host_rec   $ gst-launch udpsrc port=3000 \

caps="application/x-rtp,media=(string)video,encoding-string=(string)H264" !
\
             rtph264depay ! h264parse ! ffdec_h264 ! ffmpegcolorspace !
ximagesink

The above combination of pipelines works correctly.

The problem is, when I try to save the video into any container format(
say, .avi or .mp4),
udpsrc element reports "Internal data flow error".

I tried following pipeline,

host_rec $ gst-launch udpsrc port=3000 \

caps="application/x-rtp,media=(string)video,encoding-string=(string)H264" !
\
                rtph264depay ! h264parse ! avimux ! filesink
location=test.avi

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
ERROR: from element /GstPipeline:pipeline0/GstUDPSrc:udpsrc0: Internal
data flow error.
Additional debug info:
gstbasesrc.c(2507): gst_base_src_loop ():
/GstPipeline:pipeline0/GstUDPSrc:udpsrc0:
streaming task paused, reason not-negotiated (-4)
Execution ended after 73780416 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...


I wonder how it affects changing the sink element. I tried  changing
the properties of 'h264parse' and tried setting the full caps for 'udpsrc'.
same problem persists.

Can anybody guide me regarding this.

--

Regards,
Prabhu B S

------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and,
should the need arise, upgrade to a full multi-node Oracle RAC database
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problem with Pipeline udpsrc -> mux -> filesink

Timothy Braun
Take a look at what h264parse's src pad caps are and make sure they are compatible with avimux's sink pad caps. If not, you are going to need to add elements to convert the stream to something avimux is happy with.  It will likely be an encoder and colorspace transform of some nature.

If you set GST_DEBUG=2 you will get some helpful info as well.

- Tim

Sent from my iPhone

On Dec 23, 2010, at 9:17 AM, prabhulinga Swamy B S <[hidden email]> wrote:

> Hi all,
>
> I'm able to send, receive and playback H264 video file using rtph264pay,
> rtph264depay and ximagesink elements across different hosts. I'm using
> following pipeline.
>
> host_send $  gst-launch filesrc location=./Cam111-20101126-193700.avi ! \
>                 avidemux ! h264parse ! rtph264pay ! udpsink
> host=172.16.10.32 port=3000
>
> host_rec   $ gst-launch udpsrc port=3000 \
>
> caps="application/x-rtp,media=(string)video,encoding-string=(string)H264" !
> \
>             rtph264depay ! h264parse ! ffdec_h264 ! ffmpegcolorspace !
> ximagesink
>
> The above combination of pipelines works correctly.
>
> The problem is, when I try to save the video into any container format(
> say, .avi or .mp4),
> udpsrc element reports "Internal data flow error".
>
> I tried following pipeline,
>
> host_rec $ gst-launch udpsrc port=3000 \
>
> caps="application/x-rtp,media=(string)video,encoding-string=(string)H264" !
> \
>                rtph264depay ! h264parse ! avimux ! filesink
> location=test.avi
>
> Setting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
> ERROR: from element /GstPipeline:pipeline0/GstUDPSrc:udpsrc0: Internal
> data flow error.
> Additional debug info:
> gstbasesrc.c(2507): gst_base_src_loop ():
> /GstPipeline:pipeline0/GstUDPSrc:udpsrc0:
> streaming task paused, reason not-negotiated (-4)
> Execution ended after 73780416 ns.
> Setting pipeline to PAUSED ...
> Setting pipeline to READY ...
> Setting pipeline to NULL ...
> Freeing pipeline ...
>
>
> I wonder how it affects changing the sink element. I tried  changing
> the properties of 'h264parse' and tried setting the full caps for 'udpsrc'.
> same problem persists.
>
> Can anybody guide me regarding this.
>
> --
>
> Regards,
> Prabhu B S
>
> ------------------------------------------------------------------------------
> Learn how Oracle Real Application Clusters (RAC) One Node allows customers
> to consolidate database storage, standardize their database environment, and,
> should the need arise, upgrade to a full multi-node Oracle RAC database
> without downtime or disruption
> http://p.sf.net/sfu/oracle-sfdevnl
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel

------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and,
should the need arise, upgrade to a full multi-node Oracle RAC database
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel