Hi All,<br><br>I want to save the incoming RTP payloaded H.264 video data from a live source to a file. The pipelines I use is<br><br>Sender:<br>gst-launch filesrc location=/home/jyoti/Desktop/h264-aac/alien.mp4 ! qtdemux name=d d. ! queue ! rtph264pay ! udpsink port=5002<br>
<br>Receiver:<br>gst-launch udpsrc caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)4d4033, sprop-parameter-sets=(string)\"Z01AM5JSAoP2AiAAAAMDACAAAAYR4wZJ\\,aO4CvIA\\=\", payload=(int)96, ssrc=(guint)529574254, clock-base=(guint)940521219, seqnum-base=(guint)11356" port=5002 ! rtph264depay ! ffmux_mp4 ! queue ! filesink location=~/Desktop/test --gst-debug=*:1<br>
<br>The pipeline gives me the following error:<br>**********************************************************************************************************<br>Setting pipeline to PAUSED ...<br>Pipeline is live and does not need PREROLL ...<br>
Setting pipeline to PLAYING ...<br>New clock: GstSystemClock<br>0:00:02.847065223 15058 0x9359fd8 ERROR ffmpeg :0:: time base not set<br>0:00:02.847607619 15058 0x9359fd8 ERROR ffmpeg :0:: time base not set<br>
0:00:02.847765092 15058 0x9359fd8 ERROR ffmpeg :0:: time base not set<br>ERROR: from element /GstPipeline:pipeline0/ffmux_mp4:ffmux_mp40: Could not configure supporting library.<br>Additional debug info:<br>
gstffmpegmux.c(566): gst_ffmpegmux_collected (): /GstPipeline:pipeline0/ffmux_mp4:ffmux_mp40:<br>Failed to write file header - check codec settings<br>Execution ended after 1604133490 ns.<br>Setting pipeline to PAUSED ...<br>
Setting pipeline to READY ...<br>Setting pipeline to NULL ...<br>FREEING pipeline ...<br>**********************************************************************************************************<br>When I did debug the function "gst_ffmpegmux_collected". I saw that the codec parameters are not set properly in <br>
av_write_header() used in gst_ffmpegmux_collected(). <br>* st->codec->time_base.num = 0 and st->codec->time_base.den = 1;<br>* And the st->codec->width = 0 and st->codec->height = 0.<br><br><br>So to just have a quick hack I used the capsfilter between rtph264depay and ffmux_mp4 with video caps from sender, <br>
the pipeline doesn't quit now but instead throws error messages. And the parameters now are:<br>* st->codec->time_base.num = 1 and st->codec->time_base.den = 24<br>* And the st->codec->width = 320 and st->codec->height = 240<br>
<br>Receiver's pipeline with capsfilter.<br><br>gst-launch udpsrc caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, profile-level-id=(string)4d4033, sprop-parameter-sets=(string)\"Z01AM5JSAoP2AiAAAAMDACAAAAYR4wZJ\\,aO4CvIA\\=\", payload=(int)96, ssrc=(guint)529574254, clock-base=(guint)940521219, seqnum-base=(guint)11356" port=5002 ! rtph264depay ! capsfilter caps="video/x-h264, codec_data=(buffer)014d4033ffe10018674d403392520283f6022000000303002000000611e3064901000568ee02bc80, width=(int)320, height=(int)240, framerate=(fraction)24/1" ! ffmux_mp4 ! queue ! filesink location=~/Desktop/test --gst-debug=*:1<br>
<br>****************************************************************************************************************<br>Setting pipeline to PAUSED ...<br>Pipeline is live and does not need PREROLL ...<br>Setting pipeline to PLAYING ...<br>
0:00:00.252624333 15031 0x857e438 ERROR ffmpeg :0:: error, non monotone timestamps 1 >= 1<br>0:00:00.293548372 15031 0x857e438 ERROR ffmpeg :0:: error, non monotone timestamps 2 >= 2<br>
0:00:00.335302005 15031 0x857e438 ERROR ffmpeg :0:: error, non monotone timestamps 3 >= 3<br>0:00:00.376955618 15031 0x857e438 ERROR ffmpeg :0:: error, non monotone timestamps 4 >= 4<br>
0:00:00.418564944 15031 0x857e438 ERROR ffmpeg :0:: error, non monotone timestamps 5 >= 5<br>0:00:00.460233384 15031 0x857e438 ERROR ffmpeg :0:: error, non monotone timestamps 6 >= 6<br>
0:00:00.502093709 15031 0x857e438 ERROR ffmpeg :0:: error, non monotone timestamps 7 >= 7<br>0:00:00.543625785 15031 0x857e438 ERROR ffmpeg :0:: error, non monotone timestamps 8 >= 8<br>
0:00:00.585262073 15031 0x857e438 ERROR ffmpeg :0:: error, non monotone timestamps 9 >= 9<br>0:00:00.626933983 15031 0x857e438 ERROR ffmpeg :0:: error, non monotone timestamps 10 >= 10<br>
0:00:00.668587406 15031 0x857e438 ERROR ffmpeg :0:: error, non monotone timestamps 11 >= 11<br>0:00:00.710255640 15031 0x857e438 ERROR ffmpeg :0:: error, non monotone timestamps 12 >= 12<br>
0:00:00.752176246 15031 0x857e438 ERROR ffmpeg :0:: error, non monotone timestamps 13 >= 13<br>0:00:00.793557705 15031 0x857e438 ERROR ffmpeg :0:: error, non monotone timestamps 14 >= 14<br>
0:00:00.835298782 15031 0x857e438 ERROR ffmpeg :0:: error, non monotone timestamps 15 >= 15<br>0:00:00.877036479 15031 0x857e438 ERROR ffmpeg :0:: error, non monotone timestamps 16 >= 16<br>
0:00:00.877128406 15031 0x857e438 ERROR ffmpeg :0:: error, non monotone timestamps 16 >= 16<br>****************************************************************************************************************<br>
<br>I would be very greatful if someone can suggest me on how to do. <br><br>Thanks in advance<br>