我想创建多个具有多个音频流和一张图片的视频。
例如我有
song1.mp3
song2.mp3
song3.mp3
和一张图片。我需要做的是创建多个视频,并将这些视频命名为:song1.mp4
,,song2.mp4
song3.mp4
我想一次创建多个视频。我的脚本只适用于一张图片和一个 mp3,但我需要创建大量视频。
ffmpeg -loop 1 -shortest -r 0.1 -i online.mp3 -i imagen.png -ab 128k output.avi
你能帮助我吗?
答案1
首先,你需要稍微重新排列一下 ffmpeg 选项。 应该-loop 1
放在输入图像之前, 最好-r 0.1
作为输出选项后图像。查看更多FFmpeg wiki 关于如何通过图像创建幻灯片。
然后,确保您运行的是最新版本的 ffmpeg。点击此处下载不要使用您安装的那个apt-get
——它已经非常过时了。
此外,您希望分别使用 H.264 和 AAC 作为视频和音频编解码器,并使用 MP4 作为容器,而不是使用当前命令获得的 AVI 中的 MPEG-4 和 MP3 组合。
循环遍历所有 MP3 文件,删除扩展名,然后运行 ffmpeg 脚本:
for f in *.mp3; do
# create output filename songX.mp4
name="${f%%.mp3}.mp4"
# run ffmpeg command
ffmpeg -loop 1 -i imagen.png -i "$f" \
-r 0.1 -shortest \
-c:v libx264 -pix_fmt yuv420p -c:a aac -strict experimental \
-crf 18 -b:a 128k "$name"
done
我还添加了以下内容:
- CRF(恒定速率因子)设置视频质量(使用 18 到 28 之间的值,越低越好)
- 显式转换为4:2:0 子采样– 否则,如果您使用 PNG 作为输入,您将得到 4:4:4,并且无法在所有播放器中播放