2012-12-14 154 views
0

我想通過RTP將使用gstreamer的視頻文件從一個設備流式傳輸到另一個設備。在發送端,我使用以下命令:使用gstreamer通過RTP的視頻流

gst-launch filesrc location =/home/kuber/Desktop/MELT.MPG! mpegparse! rtpsend ip = localhost

但是,這給出了以下錯誤:沒有元素「rtpsend」,我下載了所有的rtp工具,仍然是相同的錯誤。我是否以某種錯誤的方式使用了rtpsend? 也可以有人給我的流式視頻文件(本地存儲在我的筆記本電腦,而不是testvideosrc文件)從一個設備到另一個命令行代碼? 強大的文本

回答

1

假設這是一個MPEG1/2基本流要送出你需要你的mpegparse後使用rtpmpvpay然後給輸出udpsink(因爲你使用mpegparse)。

mpegparse ! rtpmpvpay ! udpsink host="hostipaddr" port="someport" 

我不知道任何rtpsend插件是這樣的。上述適用於rtp上的任何流式傳輸。

做一個gst檢查| grep rtp查看所有的加載器,加載器

如果它是一個mpegps流,則需要在流水線的其餘部分之前首先執行mpegpsdemux。

編輯:

爲什麼不刪除mpegparse?不明白你爲什麼需要它。您應該學會在組件的gst檢查中瞭解源和接收器的需求,這將告訴您節點之間需要的兼容性。收到將反向udpsrc端口=「portno」! capsfilter caps =「application/x-rtp,pt = 32,..在這裏輸入」! rtpmpvdepay!

+0

以及它的一個mpeg1/2流,我嘗試使用rtpmpvpay!在現在下面的代碼: 「GST推出filesrc位置= /家庭/ kuber /桌面/ MELT.MPG mpegpsdemux mpegparse rtpmpvpay udpsink主機=本地主機端口= 1234!!!!」 這提供了以下錯誤:錯誤管道:無法鏈接mpegparse0到rtpmpvpay0 @ av501 - 我不知道如何刪除此錯誤。你也可以給我接收端的命令行代碼嗎? – user1795516

+0

爲什麼不移除mpegparse?不明白你爲什麼需要它。您應該學會在組件的gst檢查中瞭解源和接收器的需求,這將告訴您節點之間需要的兼容性。收到將反向udpsrc端口=「portno」! capsfilter caps =「application/x-rtp,pt = 32,..在這裏輸入」! rtpmpvdepay!現在做任何你想要的流> – av501

+0

問題是,只要我刪除mpegparse,只需使用: gst-launch-0.10 filesrc location =/home/kuber/Desktop/test.mp4! rtpmpvpay! udpsink主機=本地主機端口= 1234 我得到以下錯誤: 設置管道停頓了一下。 管道預卷... 管道被預卷... 設置管道玩.... 新的時鐘: GstSystemClock 從元素「pipeline0」獲得EOS。 20591150 ns後執行結束。 設置管道停頓了一下。 設置管道READY ... 管道設置爲NULL ...... 解放出來管道... 基本上EOS流錯誤。 – user1795516