<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7653.38">
<TITLE>RE: [gst-devel] MP4 file streaming over RTP</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>Hi farah&nbsp; !<BR>
<BR>
I am trying to stream an mp4 file (h264 encoded, no audio) over RTP. When I use the pipeline to play the streamed file at the receiver using xvimagesink, it plays fine. However, when I try to save the same stream to an .mp4 file, an error for lack of library support is given. The pipelines and output are given here:<BR>
<BR>
--&gt;&gt; May be i gues since already you have demuxed the mp4 file, it is no longer in mp4 container file format. Streaming of mp4 files is generaaly supported if it has hint tracks.<BR>
<BR>
<BR>
-------------------------------------------------------------------------------------------------------------------------------------<BR>
Sender:<BR>
gst-launch-0.10 -v&nbsp; filesrc location=Filename1.mp4 ! qtdemux ! rtpmp4vpay pt=96 ! udpsink host=127.0.0.1 port=42050 sync=false<BR>
<BR>
--&gt;&gt; rtpmp4vpay is rtp packetizer for mpeg4 video. As you told you have h264 video stream, You cannot packetize with rtp mpeg4 paketizer.<BR>
<BR>
<BR>
Setting pipeline to PAUSED ...<BR>
Pipeline is PREROLLING ...<BR>
/pipeline0/rtpmp4vpay0.src: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)1, config=(string)000001b001000001b58913000001000000012000c48d885dad0a041e1463000001b24c61766335322e32302e30, payload=(int)96, ssrc=(guint)2296541465, clock-base=(guint)2758550644, seqnum-base=(guint)56968<BR>
/pipeline0/rtpmp4vpay0.sink: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, codec_data=(buffer)000001b001000001b58913000001000000012000c48d885dad0a041e1463000001b24c61766335322e32302e30, width=(int)320, height=(int)240, framerate=(fraction)2997/125<BR>
/pipeline0/udpsink0.sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)1, config=(string)000001b001000001b58913000001000000012000c48d885dad0a041e1463000001b24c61766335322e32302e30, payload=(int)96, ssrc=(guint)2296541465, clock-base=(guint)2758550644, seqnum-base=(guint)56968<BR>
Pipeline is PREROLLED ...<BR>
Setting pipeline to PLAYING ...<BR>
New clock: GstSystemClock<BR>
Got EOS from element &quot;pipeline0&quot;.<BR>
Execution ended after 8642131 ns.<BR>
Setting pipeline to PAUSED ...<BR>
Setting pipeline to READY ...<BR>
/pipeline0/udpsink0.sink: caps = NULL<BR>
/pipeline0/rtpmp4vpay0.sink: caps = NULL<BR>
/pipeline0/rtpmp4vpay0.src: caps = NULL<BR>
/pipeline0/qtdemux0.audio_00: caps = NULL<BR>
/pipeline0/qtdemux0.video_00: caps = NULL<BR>
Setting pipeline to NULL ...<BR>
FREEING pipeline ...<BR>
<BR>
Receiver:<BR>
gst-launch-0.10 -v&nbsp; udpsrc port=42050 caps=&quot;application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)1, config=(string)000001b001000001b58913000001000000012000c48d885dad0a041e1463000001b24c61766335322e32302e30, payload=(int)96, ssrc=(guint)2271548884, clock-base=(guint)1988216335, seqnum-base=(guint)35136&quot; ! rtpmp4vdepay ! ffdec_mpeg4 ! xvimagesinkmrplus@mhs:~/Desktop/June$ 1e1463000001b24c61766335322e32302e30, payload=(int)96mrplus@mhs:~/Desktop/June$ lock-base=(guint)1988216335, seqnum-base=(guint)35136mrplus@mhs:~/Desktop/June$ sudo gst-launch-0.10 -v&nbsp; udpsrc port=42050 caps=&quot;application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)1, config=(string)000001b001000001b58913000001000000012000c48d885dad0a041e1463000001b24c61766335322e32302e30, payload=(int)96, ssrc=(guint)2271548884, clock-base=(guint)1988216335,<BR>
&nbsp;seqnum-base=(guint)35136&quot; ! rtpmp4vdepay ! ffmux_mp4 ! filesink location=test9.mp4<BR>
Setting pipeline to PAUSED ...<BR>
Pipeline is live and does not need PREROLL ...<BR>
Setting pipeline to PLAYING ...<BR>
New clock: GstSystemClock<BR>
/pipeline0/rtpmp4vdepay0.src: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, codec_data=(buffer)000001b001000001b58913000001000000012000c48d885dad0a041e1463000001b24c61766335322e32302e30<BR>
/pipeline0/rtpmp4vdepay0.sink: caps = application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)1, config=(string)000001b001000001b58913000001000000012000c48d885dad0a041e1463000001b24c61766335322e32302e30, payload=(int)96, ssrc=(guint)2271548884, clock-base=(guint)1988216335, seqnum-base=(guint)35136<BR>
/pipeline0/ffmux_mp40.video_0: caps = video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, codec_data=(buffer)000001b001000001b58913000001000000012000c48d885dad0a041e1463000001b24c61766335322e32302e30<BR>
ERROR: from element /pipeline0/ffmux_mp40: Could not configure supporting library.<BR>
Additional debug info:<BR>
gstffmpegmux.c(476): gst_ffmpegmux_collected (): /pipeline0/ffmux_mp40:<BR>
Failed to write file header - check codec settings<BR>
Execution ended after 12383494375 ns.<BR>
Setting pipeline to PAUSED ...<BR>
Setting pipeline to READY ...<BR>
/pipeline0/ffmux_mp40.video_0: caps = NULL<BR>
/pipeline0/rtpmp4vdepay0.src: caps = NULL<BR>
/pipeline0/rtpmp4vdepay0.sink: caps = NULL<BR>
/pipeline0/udpsrc0.src: caps = NULL<BR>
Setting pipeline to NULL ...<BR>
FREEING pipeline ...<BR>
--------------------------------------------------------------------------------------------------------------------------------------------<BR>
<BR>
I got a somewhat similar problem in a list here:<BR>
<A HREF="http://gstreamer-devel.966125.n4.nabble.com/Saving-a-live-stream-tc972117.html#a972117">http://gstreamer-devel.966125.n4.nabble.com/Saving-a-live-stream-tc972117.html#a972117</A><BR>
<BR>
and applied the same solution using capsfilters as suggested here. Then, the pipeline doesnt end and I dont get any errors but the output file is always 0 bytes (no data) and I have to Ctrl+C to end the pipeline.<BR>
<BR>
Please help!<BR>
Thanks.<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
<BR>
gst-launch-0.10 -v&nbsp; udpsrc port=42050 caps=&quot;application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)MP4V-ES, profile-level-id=(string)1, config=(string)000001b001000001b58913000001000000012000c48d885dad0a041e1463000001b24c61766335322e32302e30, payload=(int)96, ssrc=(guint)2271548884, clock-base=(guint)1988216335, seqnum-base=(guint)35136&quot; ! rtpmp4vdepay ! capsfilter caps=&quot;video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, codec_data=(buffer)000001b001000001b58913000001000000012000c48d885dad0a041e1463000001b24c61766335322e32302e30, width=(int)320, height=(int)240, framerate=(fraction)2997/125&quot; ! ffmux_mp4 ! filesink location=test9.mp4<BR>
<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>
<BR>
</FONT>
</P>

<pre style="white-space:normal"><br></pre></BODY>
</HTML>