2012-08-22 148 views
1

我想做實時視頻流和編碼。我正在使用Leopardboard DM365。我可以捕獲實時視頻並將其編碼到H264中,然後使用gstreamer插件進行流式處理,但是如何捕獲Windows上的rtp數據包?我可以使用sdp文件在vlc上捕獲,但我不想僅使用VLC查看。我需要捕獲緩衝區,然後將其傳遞給我的應用程序。我怎樣才能做到這一點? 我使用服務器端以下的GStreamer插件:通過RTP/UDP流式傳輸實況H264視頻

GST推出-v -e v4l2src始終複製= FALSE輸入SRC =複合 鏈ipipe =真! video/x-raw-yuv,format =(fourcc)NV12,width = 640, height = 480!隊列! dmaiaccel! dmaienc_h264 encodingpreset = 2 ratecontrol = 2 intraframeinterval = 23 idrinterval = 46 targetbitrate = 3000000! rtph264pay! udpsink端口= 3000 主機= 192.168.1.102同步= false啓用,最後緩衝=假

謝謝 馬茲

回答

1

在你的應用程序,如果你知道你將要得到的確切參數你爲什麼需要sdp文件?

需要sdp文件才能獲取流參數。 rtsp協議允許交換sdp,因爲接收者不知道發送者將發送什麼。

如果您的應用程序知道發件人將發送什麼,您只需要捕獲數據並開始對其進行解碼。你很多人想要配置rtph264pay和config-interval = 1來每隔1秒發送一次SPS PPS,這樣你的應用程序就可以對正在進入的內容進行解碼。隨意更改config-interval的時間以匹配intraframeinteral。

+0

嗨,謝謝你的回覆。你說我只需要捕獲數據並開始解碼。那正是我想知道的。如何捕獲傳入數據,解碼並將其傳遞給其他應用程序(接收機是基於Windows的PC)?謝謝。 – user1481832

+0

@ user1481832,您需要在udp套接字中捕獲您的數據包。如果您不介意單獨執行命令行程序,請使用ffmpeg。它應該接受一個rtp url rtp:// :port_no並將輸出解碼並寫入到程序可以讀取的管道中。 – av501

相關問題