我試圖使用ffmpeg和mplayer的基準來比較不同視頻編解碼器之間的延遲。mplayer無法讀取udp視頻流
我使用此命令行生成和發送數據流:
ffmpeg -s 1280x720 -r 100 -f x11grab -i :0.0 -vcodec mpeg2video -b:v 8000 -f mpegts udp://localhost:4242
而且我成功地利用ffplay接收並實時閱讀:
ffplay -an -sn -i -fflags nobuffer udp://localhost:4242?listen
現在,而不是使用ffplay播放流,我想使用mplayer基準測試來獲取有關延遲的一些信息:
mplayer -msglevel all=6 -benchmark udp://localhost:4242
但我得到這個輸出,而不是:
Playing udp://localhost:4242.
get_path('sub/') -> '/home/XXXXX/.mplayer/sub/'
STREAM_UDP, URL: udp://localhost:4242
Filename for url is now udp://localhost:4242
Listening for traffic on localhost:4242 ...
Timeout! No data from host localhost
udp_streaming_start failed
No stream found to handle url udp://localhost:4242
我用RTP協議而不是嘗試過,沒有工作,要麼...
有沒有人有一個想法是什麼我做錯了嗎?
如果您使用vcodec libx264,該怎麼辦? – rogerdpack
使用任何其他編解碼器都不會改變任何內容。此外,我想使用mpeg2video,因爲我的目標是達到最短的延遲時間,並且現在我嘗試了所有不同的編解碼器,它顯然是最快的。正如我所說的,我可以使用ffplay播放流。但我真正想做的就是使用mplayer的-benchmark選項在我的延遲上加上一個數字 – lagarkane
我已經通過使用libx264及其調諧穩定性[etc.]選項獲得了類似(低)的值,FWIW:https:/ /trac.ffmpeg.org/wiki/StreamingGuide#Latency也可以像mplayer ffmpeg:// udp:// localhost [或者可能指定127.0.0.1而不是本地主機?]一樣嘗試。 GL! – rogerdpack