如何用静止图像替换视频文件中的视频轨道?
How to replace the video track in a video file with a still image?
我正在尝试使用 ffmpeg 将视频文件中的视频轨道替换为静止图像。我尝试了一些从其他问题中得到的命令,例如 here
ffmpeg -i x.png -i orig.mp4 final.mp4
ffmpeg -r 1/5 -i x.png -r 30 -i orig.mp4 final.mp4
但是这些都不起作用。我不确定这些参数中哪些是必需的。输出应该被 YouTube 接受为有效视频 - 我能够简单地删除视频轨道,但显然他们不允许您上传没有视频轨道的视频。
您可以尝试像这样循环播放静止图像:
ffmpeg -loop 1 -i x.png -i orig.mp4 final.mp4
然后您可以通过引入以下质量参数来调整编码过程:
ffmpeg -loop 1 -i x.png -i orig.mp4 -crf 22 -preset slow final.mp4
它们被描述为 here。
如果您的色彩空间被 YouTube 拒绝,您可以尝试添加:-pix_fmt yuv420p
.
解决方案:最终的解决方案是这样的:
- 其中
-t 30
是一个持续时间为 30 秒的示例。
- 使用
-c:a copy
将直接复制原始音频而无需重新编码(更快)。
ffmpeg -loop 1 -i x.png -i orig.mp4 -map 0 -map 1:a -c:v libx264 -pix_fmt yuv420p -crf 22 -preset slow -c:a copy -shortest final.mp4
我正在尝试使用 ffmpeg 将视频文件中的视频轨道替换为静止图像。我尝试了一些从其他问题中得到的命令,例如 here
ffmpeg -i x.png -i orig.mp4 final.mp4
ffmpeg -r 1/5 -i x.png -r 30 -i orig.mp4 final.mp4
但是这些都不起作用。我不确定这些参数中哪些是必需的。输出应该被 YouTube 接受为有效视频 - 我能够简单地删除视频轨道,但显然他们不允许您上传没有视频轨道的视频。
您可以尝试像这样循环播放静止图像:
ffmpeg -loop 1 -i x.png -i orig.mp4 final.mp4
然后您可以通过引入以下质量参数来调整编码过程:
ffmpeg -loop 1 -i x.png -i orig.mp4 -crf 22 -preset slow final.mp4
它们被描述为 here。
如果您的色彩空间被 YouTube 拒绝,您可以尝试添加:-pix_fmt yuv420p
.
解决方案:最终的解决方案是这样的:
- 其中
-t 30
是一个持续时间为 30 秒的示例。 - 使用
-c:a copy
将直接复制原始音频而无需重新编码(更快)。
ffmpeg -loop 1 -i x.png -i orig.mp4 -map 0 -map 1:a -c:v libx264 -pix_fmt yuv420p -crf 22 -preset slow -c:a copy -shortest final.mp4