当前位置:首页 > 开发 > FFmpeg > 正文内容

FFmpeg 图片合成视频,并添加音频

FFmpeg2天前


使用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

参数详解:

  1. 输入设置

    • -framerate 15:指定输入图片的帧率为15帧/秒。

    • -i "img%04d.png":输入图片序列,%04d 表示4位数字编号(如 img0001.png, img0002.png)。

  2. 音频设置

    • -i "audio.mp3":输入音频文件(支持MP3、AAC、WAV等格式)。

    • -c:a aac -b:a 192k:将音频编码为AAC格式,比特率192kbps(可调整)。

  3. 视频编码

    • -c:v libx264:使用H.264编码器。

    • -preset slow:平衡编码速度与压缩率(可选:ultrafast, fast, medium)。

    • -crf 20:画质控制(范围18-28,值越小画质越好)。

  4. 其他参数

    • -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

执行命令前,请确保:

  1. ffmpeg 已添加到系统环境变量。

  2. 图片和音频文件路径正确。

  3. 输出目录有写入权限。

如有报错,可附加 -loglevel debug 查看详细日志。

转载请注明出处。

本文链接:http://pythonopen.com/?id=7904

相关文章

FFmpeg合并视频

使用`concat`滤镜(适用于相同编码格式的视频)  原理:`concat`滤镜可以将多...

使用FFmpeg混流MP4和MP3

1. 裁剪为最短时长ffmpeg -i input_video.mp4 ...

FFmpeg [mp4 @ 0000013d42a009c0]

[mp4 @ 0000013d42a009c0] Could ...

FFmpeg 分割视频时抛弃音频

FFmpeg分割视频时抛弃音频的方法一、通过流选择参数精准保留视频ffmpeg -i&nb...

FFmpeg 合并视频时抛弃音频

在使用FFmpeg合并视频并抛弃音频时,可根据输入文件的编码一致性选择以下两种方法:方法1:conc...