我正试图用h264播放一段视频。源是轴相机。我设法用多播来流jpeg,但没有使用h264。
对于jpeg,我使用了以下命令:
gst-launch-1.0 udpsrc uri=udp://239.194.0.177:1026 ! application/x-rtp,encoding-name=JPEG,payload=26 ! rtpjpegdepay ! jpegdec ! autovideosink
我试图流h264,但它失败了,使用以下命令:
gst-launch-1.0 -v udpsrc host=239.194.0.177 port=1026 ! rtph264depay ! ffdec_h264 ! xvimagesink
我得到以下错误:
ERROR: pipeline could not be constructed: no element "udpsrc".
用这一行:
gst-launch-1.0 udpsrc uri=udp://239.194.0.177:1026 ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264 ! rtph264depay ! h264parse
我没有收到任何错误,但没有视频流,这是打印在终端:
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
我尝试了以下页面中的命令:
Stream H.264 video over rtp using gstreamer
但没能让它起作用。
在verbos模式下运行时,我会得到更多的信息。
命令:
gst-launch-1.0 -v udpsrc uri=udp://239.194.0.177:1026 ! application/x-rtp, media=video, payload=96, encoding-name=H264 ! rtph264depay ! avdec_h264 ! videoconvert ! fakesink
输出:
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = "application/x-rtp\,\ media\=\(string\)video\,\ payload\=\(int\)96\,\ encoding-name\=\(string\)H264\,\ clock-rate\=\(int\)90000"
/GstPipeline:pipeline0/GstRtpH264Depay:rtph264depay0.GstPad:sink: caps = "application/x-rtp\,\ media\=\(string\)video\,\ payload\=\(int\)96\,\ encoding-name\=\(string\)H264\,\ clock-rate\=\(int\)90000"
如何使用gstreamer通过多播传输H264?
发布于 2016-09-26 11:14:35
太长时间不能发表评论--而且由于没有人回应,所以把这份想法草稿作为答复。
关于没有任何元素udpsrc的第一个错误确实很奇怪。但我觉得这是关于缺少uri参数的抱怨。你用的是什么版本?我没有udpsrc的主机参数。
在第三个管道中,它以h264parse结束--这是错误吗?你需要解码h264..。不仅仅是解析它:
gst-launch-1.0 udpsrc uri=udp://239.194.0.177:1026 ! application/x-rtp,media=video,clock-rate=90000,encoding-name=H264 ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! autovideosink
还可以在运行GST_DEBUG=3 gst-launch-1.0 ....
时添加一些日志(如果太长,可以使用pastebin )。
这是什么意思:
但却无法让它起作用
这并不是说得太多;)
通常,在使用rtp时,您需要提供真正的所有功能,否则它可能根本不链接或播放。
可以试试尿嘧啶吗?不确定这是否是最好的主意:
gst-launch-1.0 uridecodebin uri=udp://etcetc:port ! videoconvert ! autovideosink
如果您有任何新的信息/问题,添加它们作为更新,以使图片完整(对其他人也是.)
HTH
https://stackoverflow.com/questions/39538695
复制相似问题