Streaming Live H264 Video Over RTP
William Metcalf
wmetcalf at niftytv.com
Thu Aug 4 11:18:55 PDT 2011
Hello everyone,
I just wanted to let you know how I fixed this problem, for anyone who
sees this post in the future. With "do-timestamp" set equal to true, I
put a videorate element between ffmpegcolorspace and glimagesink and I
got good clear video. Ocassionally it will present a few errors at the
very beginning of the stream, but then the errors dissipate and the
stream stays good.
William
On 8/4/2011 10:14 AM, William Metcalf wrote:
> Thank you for your suggestion. With "do-timestamp" set to false, the
> video plays at a low resolution no matter what I set the encoding
> quality to. However, with "do-timestamp" set to true, I see a
> noticeable change in video quality when I change the encoding
> quality. However, I am still not able to get the video to render
> correctly with "do-timestamp" set equal to true.
>
> - William
>
> On 8/4/2011 10:10 AM, Mailing List SVR wrote:
>> Il 04/08/2011 16:54, William Metcalf ha scritto:
>>> I am streaming live H264 video from an application in Windows (the
>>> input is from a capture card) as follows
>>>
>>> appsrc is-live=true do-timestamp=false typefind=true !
>>> "video/x-raw-yuv,format=(fourcc)UYVY,width=(int)720,height=(int)486,framerate=(fraction)30/1"
>>> ! ffmpegcolorspace ! x264enc byte-stream=true ! h264parse !
>>> rtph264pay ! udpsink clients="192.168.42.45:52000"
>>>
>>
>> try to set the encoding quality on the x264enc element
>>
>>> In order to receive the stream I use the following pipeline
>>>
>>> gst-launch -v udpsrc port=52000 !
>>> "application/x-rtp,media=(string)video,clock-rate=90000,encoding-type=(string)H264,payload=(int)96"
>>> ! rtph264depay !
>>> "video/x-h264,width=(int)720,height=(int)486,framerate=(fraction)30/1"
>>> ! ffdec_h264 ! ffmpegcolorspace ! glimagesink sync=false
>>>
>>> The video produced plays fine (i.e. the framerate and all of the
>>> colors seem correct), but the video is of very very low quality and
>>> is very pixelated. If I change the "do-timestamp" property of
>>> appsrc to true, the video becomes very clear and very high quality,
>>> but the video plays very jumpy and I get the following errors
>>> repeatedly:
>>>
>>> 0:00:04.949494000 2680 0185E490 ERROR ffmpeg
>>> .:0:: Missing reference picture
>>> 0:00:04.956495000 2680 0185E490 ERROR ffmpeg
>>> .:0:: decode_slice_header error
>>> 0:00:05.045504000 2680 0185E490 ERROR ffmpeg
>>> .:0:: reference picture missing during reorder
>>> 0:00:05.059505000 2680 0185E490 ERROR ffmpeg
>>> .:0:: reference picture missing during reorder
>>> 0:00:05.073507000 2680 0185E490 ERROR ffmpeg
>>> .:0:: reference picture missing during reorder
>>> 0:00:05.087508000 2680 0185E490 ERROR ffmpeg
>>> .:0:: reference picture missing during reorder
>>> 0:00:05.104510000 2680 0185E490 ERROR ffmpeg
>>> .:0:: Missing reference picture
>>> 0:00:05.119511000 2680 0185E490 ERROR ffmpeg
>>> .:0:: decode_slice_header error
>>> 0:00:05.148514000 2680 0185E490 ERROR ffmpeg
>>> .:0:: mmco: unref short failure
>>> 0:00:05.168516000 2680 0185E490 ERROR ffmpeg
>>> .:0:: mmco: unref short failure
>>> 0:00:05.183518000 2680 0185E490 ERROR ffmpeg
>>> .:0:: Missing reference picture
>>>
>>> I am sure these errors are because of some setting that I am missing
>>> or setting to a wrong value, but so far I have not been able to find
>>> a good solution. Can anyone offer some insight on how to fix this
>>> problem? Any help is greatly appreciated.
>>>
>>> Thank you,
>>> William
>>>
>>>
>>> _______________________________________________
>>> gstreamer-devel mailing list
>>> gstreamer-devel at lists.freedesktop.org
>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>
>>
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
> _______________________________________________
> 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