【问题标题】:Is there are way to split videos into smaller chunks of videos in python有没有办法在python中将视频分成更小的视频块
【发布时间】:2021-10-18 09:23:13
【问题描述】:

我正在开发一个使用多个视频的系统,我计划让用户输入 1 小时长的视频,但在分析视频之前,我计划使用 python 或 opencv(有可能)并将其分成 5 分钟的视频片段。

任何答案都会有所帮助,谢谢!

【问题讨论】:

标签: python opencv video split


【解决方案1】:

你可以使用ffmpeg来拆分它。

您可以使用subprocess 直接在Python 中运行ffmpeg
或者您可以尝试使用基于 ffmpeg 的模块,例如 python-ffmpegmoviepy


我在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需要列表cmdshell=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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2021-03-16
    • 1970-01-01
    • 2015-09-08
    • 2020-09-15
    相关资源
    最近更新 更多