将长视频文件分割成大约相等大小的部分的正确方法是什么?

将长视频文件分割成大约相等大小的部分的正确方法是什么?

假设foo.mp4这是一段时长为 3 小时 49 分 06 秒的 twitch 流录制,我想将其分成 8 个部分,每个部分大约 28 分 40 秒,然后将其分成合理的部分上传到 youtube。

我知道我可以将该时间除以 8,然后以指定的开始和结束位置运行mencoder8ffmpeg次,但这仍然存在诸如关键帧、不重新编码以及视频之间未解决的小重叠等问题。

那么什么是“正确”的方法呢?

答案1

我能找到的最好的是:

ffmpeg -i stream.mp4 -c copy -map 0 -segment_time $[60*28] -reset_timestamps 1 -f segment "stream_part_%02d.mp4"

这会将关键帧分成大约相等长度的段,而无需重新编码。

主要缺点是您需要手动计算片段大小(如果您将 3 小时 1 分钟的视频分割成 30 分钟的片段,您将得到尴尬的第 7 个 1 分钟片段)。在此示例中,我使用了 28 分钟的片段,因为这是最接近均等的。

小小的缺点是它生成的文件编号从 0 开始。

答案2

我成功使用了第三方视频转换工具Pavtube 视频转换器终极版将我的2小时电影分成5个长度相同的部分。

相关内容