2014-03-26 188 views
5

我想通過發送RTP流到廣播地址一次從一臺服務器到多個客戶端流h264編碼的電影文件。Gstreamer流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 

我在這裏幹什麼壞事了?爲什麼這麼慢?

回答

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 
+0

感謝您的分享。使用上述命令gstreamer是否打開gui來播放視頻? – ransh

+0

是的,它的確如此。但是您也可以通過調用set_xwindow_id將其渲染到單獨的繪圖區域。 – zeroc8