流媒体h.264视频使用gstreamer
我正在尝试使用gstreamer来流式传输h265编码的视频。 我正在使用该命令
gst-launch-0.10 filesrc location = / home / user / Desktop / sample_mpeg4.mp4! qtdemux! h264parse! video / x-h264! ffmpegcolorspace! 去隔行! xvimagesink *
我正在得到这个
警告:错误的管道:无法将h264parse0链接到ffmpegcsp0
我必须克服什么错误
为什么
ffdec_h264
我无法找到
如果尝试此操作,请获取错误
gst-launch-0.10 uridecodebin uri = file:///home/user/Desktop/sample_mpeg4.mp4! xvimagesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstQTDemux:qtdemux0: GStreamer encountered a general stream error.
Additional debug info:
qtdemux.c(3891): gst_qtdemux_loop (): /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin2:decodebin20/GstQTDemux:qtdemux0:
streaming stopped, reason not-negotiated
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
首先,我想这是一个错字:
我正在尝试传输h265视频
对 ?
其次,你应该使用uridecodebin作为该用例:
gst-launch uridecodebin uri=file:///home/user/Desktop/sample_mpeg4.mp4 ! xvimagesink
发射线的实际问题是h264parse输出h264素材(视频/ x-h264),它仍然需要由您选择的解码器正确解码为视频/ x-raw。
一些应该与0.10一起工作的东西:
gst-launch-0.10 filesrc location= /home/user/Desktop/sample_mpeg4.mp4 ! qtdemux ! ffdec_h264 ! autovideosink
decodebin为你照顾,所以你会更好地使用它。
你为什么不使用playbin2?
gst-launch-0.10 playbin2 uri=file:///path/to/your/file.mp4
如果由于某种原因你想使用uridecodebin,问题是你得到了“未经协商”的错误。 这意味着由uridecodebin产生的数据不会被你的接收器直接接受(在这种情况下)。
我会推荐使用:
gst-launch-0.10 uridecodebin uri=file:///home/user/Desktop/sample_mpeg4.mp4 ! ffmpegcolorspace ! videoscale ! ffmpegcolorspace ! xvimagesink
第二个ffmpegcolorspace可能不需要。 Playbin2已经为你处理所有这些。
链接地址: http://www.djcxy.com/p/43981.html