我正在尝试使用静态图像和音频文件对ffmpeg进行直播。这样的ffmpeg命令
ffmpeg -re -loop 1 -f image2 -i '/tmp/11.jpg‘-f lavfi -i amovie=/tmp/5117.mp3:循环=999 -video_size 600x480 -c:v libx264 -X 264-params keyint=60 -bufsize 500 k -c:a aac -ar 44100 -b:a 128k -r 30 -g -r 60 -ar flv“rtmp:/”
/tmp/11.jpg由另一个进程生成,每秒更新两次。ffmpeg命令看起来不太正确,首先,它显示的状态如下
frame= 85 fps=9.4 q=29.0 size= 2261 85 time=00:02:24.19 bitrate= 128.4kbit/s speed= 16x
正如您所看到的,16 x不是很好,1倍是livestream的正确值。然后,过了一段时间,它显示了许多这样的警告日志
flv @ 0x322bd60输出流中的非单调DTS : 0:1;先前: 335993,电流: 297752;改为335993。这可能导致输出文件中的时间戳不正确。
请帮我修一下。
发布于 2017-05-23 07:40:26
电影过滤器不重置时间戳,这说明了由FLV发出的DTS警告。通过使用实时过滤器,可以减缓输出视频处理的速度。
ffmpeg -loop 1 -f image2 -i '/tmp/11.jpg'
-f lavfi -i amovie=/tmp/5117.mp3:loop=999,asetpts=N/SR/TB
-vf realtime,scale=600:480,format=yuv420p
-r 30 -g 60 -c:v libx264 -x264-params keyint=60 -bufsize 500k
-c:a aac -ar 44100 -b:a 128k -f flv "rtmp://"https://stackoverflow.com/questions/44128029
复制相似问题