Gstreamer流h264文件

5

我正试图通过发送RTP流到广播地址,从服务器向多个客户端同时流式传输一个H264编码的电影文件。

我现在的解决方案可以工作,但速度非常慢。在本地播放视频没有问题。

以下是我的服务器代码:

gst-launch-0.10 -v filesrc location=/home/zeroc8/Videos/bunny.mov \
! qtdemux ! h264parse ! rtph264pay pt=96 ! udpsink host=192.168.1.255 port=5000

这是客户端:

gst-launch-0.10 udpsrc port=5000 \
caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)\"J01AHqkYGwe83gDUBAQG2wrXvfAQ\\,KN4JyA\\=\\=\", payload=(int)96, ssrc=(uint)786848209, clock-base=(uint)101553131, seqnum-base=(uint)64602" 
! rtph264depay ! ffdec_h264 ! ffmpegcolorspace ! autovideosink

我这里做了什么不好的事情吗?为什么运行速度这么慢?

1个回答

6

我从gstreamer邮件列表中得到了答案。如果其他人有同样的问题,添加gstrtpjitterbuffer元素就可以解决。

gst-launch-0.10 udpsrc port=5000 \
caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)H264, sprop-parameter-sets=(string)\"J01AHqkYGwe83gDUBAQG2wrXvfAQ\\,KN4JyA\\=\\=\", payload=(int)96, ssrc=(uint)786848209, clock-base=(uint)101553131, seqnum-base=(uint)64602" \ 
! gstrtpjitterbuffer latency=1000 
! rtph264depay ! ffdec_h264 ! ffmpegcolorspace ! autovideosink

谢谢分享。使用上述命令,GStreamer是否会打开一个GUI来播放视频? - ransh
是的,它可以。但是你也可以通过调用set_xwindow_id将其渲染到单独的绘图区域中。 - zeroc8

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接