为什么来自 ffmpeg 的 mp4 在最后 3 秒内冻结?
Why does the mp4 from ffmpeg freeze during the last 3 seconds?
我正在尝试从三个输入生成完美循环的 mp4:
- 背景 png 图片
- 透明png图像的图像序列,粒子数增加
- 透明png图像的另一个图像序列,粒子数量减少
我目前正在尝试使用两个命令来实现此目的(我必须使用 'overlay' 两次)。问题是,在第二个命令之后,视频 (test2.mp4) 冻结了最后 3 秒。为什么会这样?还有其他我可以尝试使用的命令吗?
第一个命令:
ffmpeg -framerate 30 \
-pattern_type glob -i 'images/increase/*.png' \
-framerate 30 \
-i screens/Background.png \
-i audio/50-White-Noise-10min.mp3 \
-filter_complex "[1:v][0:v] overlay" \
-preset slow -c:a copy -shortest -c:v libx264 -pix_fmt yuv420p test.mp4
第二个命令:
ffmpeg -framerate 30 \
-pattern_type glob -i 'images/decrease/*.png' \
-i test.mp4 \
-filter_complex "[1:v][0:v] overlay" \
-preset slow -c:a copy -shortest -c:v libx264 -pix_fmt yuv420p test2.mp4
解决方案是:链接覆盖过滤器并在一个命令中完成所有操作:
ffmpeg -framerate 30 \
-i screens/Background.png \
-framerate 30 \
-pattern_type glob -i 'images/increase/*.png' \
-framerate 30 \
-pattern_type glob -i 'images/decrease/*.png' \
-i audio/50-White-Noise-10min.mp3 \
-filter_complex "[0][1] overlay[out],[out][2] overlay" \
-c:a copy -shortest -c:v libx264 -pix_fmt yuvj420p loop.mp4
我正在尝试从三个输入生成完美循环的 mp4:
- 背景 png 图片
- 透明png图像的图像序列,粒子数增加
- 透明png图像的另一个图像序列,粒子数量减少
我目前正在尝试使用两个命令来实现此目的(我必须使用 'overlay' 两次)。问题是,在第二个命令之后,视频 (test2.mp4) 冻结了最后 3 秒。为什么会这样?还有其他我可以尝试使用的命令吗?
第一个命令:
ffmpeg -framerate 30 \
-pattern_type glob -i 'images/increase/*.png' \
-framerate 30 \
-i screens/Background.png \
-i audio/50-White-Noise-10min.mp3 \
-filter_complex "[1:v][0:v] overlay" \
-preset slow -c:a copy -shortest -c:v libx264 -pix_fmt yuv420p test.mp4
第二个命令:
ffmpeg -framerate 30 \
-pattern_type glob -i 'images/decrease/*.png' \
-i test.mp4 \
-filter_complex "[1:v][0:v] overlay" \
-preset slow -c:a copy -shortest -c:v libx264 -pix_fmt yuv420p test2.mp4
解决方案是
ffmpeg -framerate 30 \
-i screens/Background.png \
-framerate 30 \
-pattern_type glob -i 'images/increase/*.png' \
-framerate 30 \
-pattern_type glob -i 'images/decrease/*.png' \
-i audio/50-White-Noise-10min.mp3 \
-filter_complex "[0][1] overlay[out],[out][2] overlay" \
-c:a copy -shortest -c:v libx264 -pix_fmt yuvj420p loop.mp4