FFMPEG 分割相同质量的 MP4

FFMPEG 分割相同质量的 MP4

我有一个很大的 MP4 文件。我试图将其分割成几个较小的文件。

ffmpeg -i largefile.mp4 -sameq -ss 00:00:00 -t 00:50:00 smallfile.mp4

我以为使用 -sameq 会保持相同的质量设置。但是,我一定不明白它的作用是什么。

我希望分割后的文件保持相同的质量(音频/视频)和压缩率。但是,此设置会使分割后的文件变大很多。

我需要设置什么标志才能保持分割文件中相同的质量和属性,同时维持相同的质量与尺寸比?

例如,如果我的原始文件约为 12 GB,分辨率为 1920x1080,比特率为 10617kbps,帧率为 23 帧/秒,6 通道音频为 317kbps,那么我希望分割后的文件大小只有这个大小的三分之一(如果我将其分成三部分)。

答案1

如果您只想分割视频而不重新编码,请使用copy音频和视频编解码器。 试试这个:

ffmpeg -ss 00:00:00 -t 00:50:00 -i largefile.mp4 -acodec copy \
-vcodec copy smallfile.mp4

请注意,这只会创建第一个分割。下一个分割可以使用以 开头的命令来完成ffmpeg -ss 00:50:00

这可以通过一个命令完成:

ffmpeg -i largefile.mp4 -t 00:50:00 -c copy smallfile1.mp4 \
-ss 00:50:00 -c copy smallfile2.mp4

这将创建smallfile1.mp4,结束于 视频的第 50 分钟largefile.mp4,以及smallfile2.mp4,从 第 50 分钟 开始并结束于 的末尾largefile.mp4

答案2

一个备用做法是:

创建一个 2 分钟的剪辑,从 10 分钟后开始:

ffmpeg -i input.mp4 -ss 00:10:00 -to 00:12:00 -c copy output.mp4
  • -i 输入文件
  • -ss开始时间(以秒为单位,或以 hh:mm:ss 为单位)
  • -to结束时间(以秒为单位或以 hh:mm:ss 为单位)
  • -c要使用的编解码器

-c copy由于我们将原始音频+视频流复制到输出,因此文件质量保持不变。

参考,常用FFmpeg命令列表:数字堡垒

答案3

这还不错,但不是 100% 正确,它会创建一个 2 分钟的剪辑,在 10 分钟后开始,但它只会复制最好的流,所以它只会复制最好的视频、音频和字幕流:

ffmpeg -i input.mp4 -ss 00:10:00 -to 00:12:00 -c copy output.mp4

如果要复制所有流,则添加“-map 0”,它基本上会选择整个第一个输入文件:

ffmpeg -ss 00:10:00 -to 00:12:00 -i input.mp4 -map 0 -c copy output.mp4

您还应该在输入文件前面放置 -ss 和 -to。

相关内容