我正在尝试使用笔记本电脑麦克风(操作系统:Windows 7)中的音频将网络摄像头流式传输到同一本地网络中的nginx服务器(在CentOS 6.6 final中使用rtmp模块编译)。 从我的笔记本电脑,我在CMD中执行此命令:
ffmpeg -f dshow -i video="Toshiba Webcam" -f dshow -i audio="Microphone (Périphérique High D" -vf scale=1280:720 -vcodec libx264 -r 60.97 -acodec libvo_aacenc -ac 2 -ar 44100 -ab 128 -pix_fmt yuv420p -tune zerolatency -preset ultrafast -f flv "rtmp://172.16.40.162/dash/test"
但我收到了这条消息:
当我打开http://localhost:8080(我用JWPlayer制作了nginx的indx.html文件)时,我的延迟延迟为23秒
所以我的问题是:
如何改进ffmpeg cmd以避免缓冲区错误太满?
如何消除或减少延迟?
感谢您的帮助。
答案 0 :(得分:2)
将音频比特率从-ab 128
(位!)更改为-ab 128k
。
看看这是否修复了错误。如果没有,请尝试使用-rtbufsize integer (input)
增加实时缓冲区大小。
延迟参数看起来不错。您可以使用bufferlength在JWPlayer上减小缓冲区大小(默认为3秒)。首先修复你的错误。