我想製作一個使用libav庫的視頻流媒體服務器和客戶端應用程序。使用libav庫打包視頻
我希望服務器做的是簡單地逐幀閱讀視頻並將幀放入數據包中,然後將它們發送到客戶端。當然,客戶端必須能夠從數據包中讀取幀。
我該怎麼做?有沒有教程可用?
我使用的是Ubuntu 11.04機器。
我想製作一個使用libav庫的視頻流媒體服務器和客戶端應用程序。使用libav庫打包視頻
我希望服務器做的是簡單地逐幀閱讀視頻並將幀放入數據包中,然後將它們發送到客戶端。當然,客戶端必須能夠從數據包中讀取幀。
我該怎麼做?有沒有教程可用?
我使用的是Ubuntu 11.04機器。
我現在正在解決同樣的問題。您可能想嘗試查看的是live555 livemedia庫。 http://www.live555.com/liveMedia/
您可以使用該庫來傳輸mp3,h264視頻,mpeg等。它使用UDP和RTSP,因此非常方便實時傳送視頻。 ffmpeg附帶的FFPlay應用程序(這是包括libavformat等在內的整個集合)可以播放RTSP流。你這樣做
avformat_open_input(& pFormatCtx, 「RTSP://192.168.1.1/someFile.264」,NULL,& optss)
可以更改流RTSP例子插件您的編碼器輸出(也許就像x264一樣)在您編碼後立即發送內容。 (看看常見問題(http://www.live555.com/liveMedia/faq.html)
如果你有預先錄製的視頻更簡單,你只需給視頻文件,它會做爲你服務
我明白了,非常感謝你的提示,先生! – Carlo 2012-03-22 13:51:13
不客氣,順便說一下,如果你不在乎及時的發貨和播放控制(倒帶,暫停,跳過等)你可能只是使用普通的tcp套接字而不使用live555,如果你做了類似 「tcp://192.168.1.1:9001」的配置,Ffmpeg也支持這個功能,流媒體服務器只需監聽套接字連接,視頻文件,如果你願意的話,可以逐幀播放。我只是這樣做,它也可以。 – cloudraven 2012-03-22 17:46:11
對不起,如果這聽起來很像一個不ob問題,但爲什麼這會成爲不合時宜的交付?是因爲套接字是tcp(握手和所有)? – Carlo 2012-03-23 05:17:36