我有 MP4 格式的视频文件。我需要将它们转换为 MP2。但是,当它们超过 MP2 格式的某个文件大小时,我还需要将它们分割成较小的文件。
为此,我目前有两个命令:
转换命令
ffmpeg -i INPUTfile -codec:v mpeg2video -qscale:v 0 OUTPUTfile
切割命令(时间值仅供参考)
ffmpeg -ss 00:00:00.00 -i INPUTfile -to 00:10:00.00 -c copy -copyts OUTPUTfile
目前,我会转换视频文件,检查文件大小。如果太大,我会先将原始视频文件剪切,然后将“部分”转换为 MP2。
我是 ffmpeg 的新手,想知道是否可以将这两个命令合二为一。同样,我需要做的是转换 MP4 文件并将其剪切。如果我先转换然后再剪切,或者反过来,对我来说其实并不重要。
我需要多次运行剪切命令,因为我将以编程方式决定将文件剪切成多少个“部分”。但最终结果必须是 MP2,无论我最终得到多少个“部分”。
答案1
由于您的第二个命令正在进行时间分割,因此这是“合并”这些命令的最佳起点。
您应该能够简单地用-c copy -copyts
第一个命令中的适当编解码器转换参数替换。这些参数基本上意味着“按原样复制流”,而其他时间参数则设置开始和停止点。因此,我们可以将第一个命令中的“复制流”更改为“转换视频”。
第一个命令中与 mp4 到 mp2 的转换相关的参数是-codec:v mpeg2video -qscale:v 0
。codec:v mpeg2video
表示ffmpeg
使用 mpeg2video 编码器,qscale
0 表示“最佳质量”。
无论如何,快速换位可以让你
ffmpeg -ss 00:00:00.00 -i INPUTfile -to 00:10:00.00 -codec:v mpeg2video -qscale:v 0 OUTPUTfile