FFmpeg 图片合成视频,并添加音频
使用FFmpeg将图片合成视频并添加音频
你可以使用以下 ffmpeg
命令行将图片序列合成视频并添加音频,同时设置帧率为每秒15帧:
ffmpeg -framerate 15 -i "img%04d.png" -i "audio.mp3" -c:v libx264 -preset slow -crf 20 -c:a aac -b:a 192k -vf "format=yuv420p" -shortest -r 15 output.mp4
参数详解:
输入设置:
-framerate 15
:指定输入图片的帧率为15帧/秒。-i "img%04d.png"
:输入图片序列,%04d
表示4位数字编号(如img0001.png
,img0002.png
)。音频设置:
-i "audio.mp3"
:输入音频文件(支持MP3、AAC、WAV等格式)。-c:a aac -b:a 192k
:将音频编码为AAC格式,比特率192kbps(可调整)。视频编码:
-c:v libx264
:使用H.264编码器。-preset slow
:平衡编码速度与压缩率(可选:ultrafast
,fast
,medium
)。-crf 20
:画质控制(范围18-28,值越小画质越好)。其他参数:
-vf "format=yuv420p"
:确保兼容播放器的像素格式。-shortest
:使视频与音频等长(以较短的输入为准)。-r 15
:强制输出视频帧率为15帧/秒。
常见问题及解决:
图片命名问题:
确保图片按顺序命名(如
img0001.png
,img0002.png
)。若命名不连续,尝试修改通配符(如
img%d.png
)。音频不同步:
若音频长于视频,使用
-shortest
自动截断。若需循环图片延长视频,移除
-shortest
并添加-stream_loop -1
(需FFmpeg 4.0+)。格式兼容性:
若播放器不支持视频,尝试强制YUV420P像素格式:
-vf "format=yuv420p"
。
示例命令变体:
快速生成(低画质):
ffmpeg -framerate 15 -i img%d.png -i audio.mp3 -c:v libx264 -preset ultrafast -c:a copy -shortest output.mp4
指定分辨率(如1080p):
ffmpeg -framerate 15 -i img%d.png -i audio.mp3 -vf "scale=1920:1080,format=yuv420p" -c:v libx264 -c:a aac output.mp4
循环图片匹配音频时长:
ffmpeg -stream_loop -1 -framerate 15 -i img%d.png -i audio.mp3 -c:v libx264 -c:a aac -shortest output.mp4
执行命令前,请确保:
ffmpeg
已添加到系统环境变量。图片和音频文件路径正确。
输出目录有写入权限。
如有报错,可附加 -loglevel debug
查看详细日志。
转载请注明出处。