按照wiki里的用法, 首先

ffmpeg -loop 1 -i img.jpg -i audio.wav -c:v libx264 -c:a aac -b:a 192k -shortest out.mp4

分析:
-loop 1
循环一次

-i img.jpg
你的图片

-i audio.wav
你的音频

-c:v libx264
视频编码器 libx264
也可以写成 -vcodec libx264

-c:a aac -b:a 192k
音频编码器 aac 采样率 192k

-shortest
告诉编码器 在音频流结束后停止.

改一下, 用于推流.

ffmpeg -loop 1 -i img.jpg -i audio.wav -c:v libx264 -c:a aac -b:a 192k -shortest -f flv -y rtmp://localhost"

能用 , 但是

frame=  807 fps= 37 q=28.0 size=    3155kB time=00:00:30.18 bitrate= 856.3kbits/s speed= 1.4x       
speed= 1.4x

这意味着推流将早于观众结束, 又因为使用了 -shortest 参数, 所以观众看到一半 服务端就会停止推流.

ffmpeg -re -loop 1 -i img.jpg -i audio.wav -c:v libx264 -c:a aac -b:a 192k -shortest -f flv -y "rtmp://localhost"

加上 -re , 让他按帧率发送.
能用了.

Ref:https://trac.ffmpeg.org/wiki/Slideshow

标签: ffmpeg

添加新评论