你可以使用ffmpeg来拆分它。
您可以使用subprocess 直接在Python 中运行ffmpeg。
或者您可以尝试使用基于 ffmpeg 的模块,例如 python-ffmpeg 或 moviepy。
我在Unix&Linux的类似门户中找到了示例:
How can I use ffmpeg to split MPEG video into 10 minute chunks?
其中一个
ffmpeg -i input.mp4 -ss 00:00:00 -to 00:05:00 -c copy output1.mp4
ffmpeg -i input.mp4 -ss 00:05:00 -to 00:10:00 -c copy output2.mp4
# ect.
这样你就可以在for-loop 中运行它
import subprocess
for number, start in enumerate(range(0, 60, 5), 1):
end = start + 5
cmd = [
"ffmpeg",
"-i", "input.mp4",
"-ss", f"00:{start:02}:00",
"-to", f"00:{end:02}:00",
"-c", "copy",
f"output{number:02}.mp4"
]
print(" ".join(cmd))
subprocess.run(cmd)
(subprocess需要列表cmd当shell=False)
或者使用其他示例 - 没有 for-loop
import subprocess
cmd = [
"ffmpeg",
"-i", "input.mp4",
"-c", "copy",
"-map", "0",
"-segment_time", "00:05:00",
"-f", "segment",
"-reset_timestamps", "1",
"output-2-%02d.mp4"
]
print(" ".join(cmd))
subprocess.run(cmd)