我試圖在Windows上使用ffmpeg 3.2.2從500萬像素USB攝像頭捕獲和傳輸視頻。下面是我使用的命令行:ffmpeg視頻流播放延遲?
ffmpeg -f dshow -video_size 320x240 -framerate 30 -i video="HD USB Camera" -vcodec libx264 -preset ultrafast -tune zerolatency -g 60 -f mpegts udp://192.168.1.100:10000
爲我流(在同一子網的Ubuntu的框)目標是通過運行ffplay:
ffplay -i udp://127.0.0.1:10000
這工作,但視頻流似乎就像它延遲了8-10秒。我的理解是,目標無法在收到I幀之前開始顯示流,因此我試圖指定GOP值爲60,認爲這會導致I幀每2秒插入一次(@ 30 FPS)。
正在進行轉碼的Windows計算機正在運行i7-3840QM @ 2.80GHz並具有32 GB RAM。 FFmpeg似乎使用的CPU非常少(如2%),因此它看起來不像CPU限制。就像測試一樣,我嘗試攝取一個MP4文件而不進行任何轉碼(ffmpeg -re -i localFile.mp4 -c copy -f mpegts udp://192.168.1.100:10000
),但在Ubuntu系統上顯示該數據流之前還需要幾秒鐘的時間。在相關說明中,我也在評估Wowza Streaming Engine服務器的試用版,當我將ffmpeg流指向Wowza時,我會在Wowza測試玩家開始播放之前得到相同的延遲8-10秒背部。對於什麼是值得的,一旦流開始播放,它似乎運行良好(除了幾秒鐘之後所有東西都「落後」的事實)。
我是新來的視頻流,所以我可能會錯過這裏明顯的東西,但任何人都可以告訴我什麼可能會導致這種延遲或建議我可能會進一步排除故障的問題?謝謝!