Вырезаем часть видео - питон

У меня есть видео длиной примерно 25 минут каждое, и я хотел бы сократить несколько секунд с самого начала, используя Python.

В поисках этого я наткнулся на пакет moviepy для python. Проблема в том, что это занимает много времени даже для одного видео. Ниже приведен фрагмент кода, который я использую для вырезания 7 секунд с начала одного видео. Процесс записи занимает много времени. Есть ли лучший способ вырезать видео с помощью Python?

from moviepy.editor import *
clip = VideoFileClip("video1.mp4").cutout(0, 7)
clip.write_videofile("test.mp4")

Пожалуйста, дайте мне знать, если я пропустил какие-либо детали.

Любая помощь приветствуется. Спасибо!

4 ответа

Решение

Попробуйте это и скажите нам, если это быстрее (если это возможно, он будет извлекать видео напрямую с помощью ffmpeg, без декодирования и перекодирования):

from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip
ffmpeg_extract_subclip("video1.mp4", start_time, end_time, targetname="test.mp4")

Если это не поможет, взгляните на код

Если вы новичок в moviepy, вы должны выполнить следующие действия.

Установка (в вашем virtualenv):

pip install --trusted-host pypi.python.org moviepy
python
import imageio
imageio.plugins.ffmpeg.download()

После этих команд у вас есть минимальные требования к программному обеспечению.

использование

from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip
# ffmpeg_extract_subclip("full.mp4", start_seconds, end_seconds, targetname="cut.mp4")
ffmpeg_extract_subclip("full.mp4", 60, 300, targetname="cut.mp4")

The ffmpeg_extract_subclipне дал мне правильных результатов для некоторых видео. Однако следующий код из этой ссылки работал.

      # Import everything needed to edit video clips
from moviepy.editor import *

# loading video gfg
clip = VideoFileClip("geeks.mp4")
# getting only first 5 seconds
clip = clip.subclip(0, 5)
# showing clip
clip.ipython_display(width = 360)

Затем вы можете сохранить клип следующим образом:

      clip.write_videofile("clip.mp4")
from moviepy.video.io.ffmpeg_tools import ffmpeg_extract_subclip
ffmpeg_extract_subclip("video1.mp4", t1, t2, targetname="test.mp4")

t1 и t2 в этом коде представляют время начала и время окончания обрезки. Видео до t1 и после t2 будет опущено.

Другие вопросы по тегам