来自静态图像和音频的ffmpeg直播

时间:2017-05-23 07:10:56

标签: video ffmpeg streaming live-streaming

我试图通过ffmpeg使用静态图像和音频文件进行直播。像这样的ffmpeg命令

  

ffmpeg -re -loop 1 -f image2 -i' /tmp/11.jpg' -f lavfi -i amovie = / tmp / 5117.mp3:loop = 999 -video_size 600x480 -c:v libx264 -x264-params keyint = 60 -bufsize 500k -c:a aac -ar 44100 -b:a 128k -r 30 -g 60 -pix_fmt yuv420p -f flv" rtmp://"

/tmp/11.jpg由另一个进程生成,每秒更新两次。 ffmpeg命令看起来不正确,首先,它显示这样的状态

  

frame = 85 fps = 9.4 q = 29.0 size = 2261kB time = 00:02:24.19 bitrate = 128.4kbits / s speed = 16x

如您所见, 16x 不好,1x是livestream的正确值。然后,过了一会儿,它会显示许多像这样的警告日志

  

[flv @ 0x322bd60]输出流0:1中的非单调DTS;上一个:335993,当前:297752;更改为335993.这可能会导致输出文件中的时间戳不正确。

请帮忙解决。

1 个答案:

答案 0 :(得分:0)

电影过滤器不会重置时间戳,这会占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://"