Python corta el video según la dimensión del tiempo | Herramienta Python

Tabla de contenido

prefacio

dependiente del medio ambiente

el código

Resumir


prefacio

Este artículo proporciona un método de herramienta para cortar el video de acuerdo con la dimensión temporal, como siempre, el pragmatismo.

dependiente del medio ambiente

  Para la instalación del entorno ffmpeg, puede consultar mi otro artículo: Instalación e implementación de Windows ffmpeg_阿良的博客-CSDN Blog

Este artículo no utiliza principalmente ffmpeg, pero ffprobe también se encuentra en el paquete zip del artículo anterior.

Instalación de ffmpy:

pip install ffmpy -i https://pypi.douban.com/simple

el código

Sin tonterías, en el código.

#!/user/bin/env python
# coding=utf-8
"""
@project : csdn
@author  : 剑客阿良_ALiang
@file   : cut_video.py
@ide    : PyCharm
@time   : 2022-12-27 10:22:48
"""

import os
import uuid
from ffmpy import FFmpeg


# 视频裁剪
# start_time格式样例:0:00,10:18
def cut_video_by_time(video_path: str, output_dir: str, start_time: str, duration: int):
    ext = os.path.basename(video_path).strip().split('.')[-1]
    if ext not in ['mp4', 'avi', 'flv']:
        raise Exception('format error')
    result = os.path.join(output_dir, '{}.{}'.format(uuid.uuid1().hex, ext))
    ff = FFmpeg(inputs={video_path: None},
                outputs={
                    result: '-ss {} -t {} -c:v copy -c:a copy -y'.format(start_time, duration)})
    print(ff.cmd)
    ff.run()
    return result


if __name__ == '__main__':
    print(cut_video_by_time(r'E:\360MoveData\Users\huyi\Desktop\3333333.mp4', r'E:\360MoveData\Users\huyi\Desktop',
                            '0:10', 5))

descripción del código

1. Los parámetros del método cut_video_by_time son, respectivamente, la dirección del video de entrada, la dirección del directorio de salida, el punto de tiempo de inicio del corte y la duración del corte.

2. Preste atención al formato de la hora de inicio, se dan varios formatos: 0:01, 10:11, con los minutos al frente y los segundos al final.

3. Se ha realizado una verificación simple del formato de video. Si necesita agregarlo, puede verlo usted mismo.

4. El nombre final del video usa uuid para evitar la duplicación.

5. La duración del video cortado no puede exceder el tiempo del video.

verificar

Información de video preparada.

 

Resultados de la

ffmpeg versión n4.3.1-20-g8a2acdc6da Copyright (c) 2000-2020 los desarrolladores de FFmpeg
  creados con gcc 9.3-win32 (GCC) 20200320
  configuración:--prefix=/ffbuild/prefix --pkg-config-flags=--static --pkg-config=pkg-config --cross-prefix=x86_64-w64-mingw32- --arch=x86_64 --target-os =mingw32 --habilitar-gpl --habilitar-versión3 --deshabilitar-depurar --habilitar-iconv --habilitar-zlib --habilitar-libxml2 --habilitar-libfreetype --habilitar-libfribidi --habilitar-gmp --habilitar -lzma --habilitar-fontconfig --habilitar-libvmaf --deshabilitar-vulkan --habilitar-libvorbis --habilitar-amf --habilitar-libaom --habilitar-avisynth --habilitar-libdav1d --habilitar-ffnvcodec --habilitar -cuda-llvm --disable-libglslang --enable-libass --enable-libbluray --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvpx --enable-libwebp --enable-libmfx - -habilitar-libopencore-amrnb --habilitar-libopencore-amrwb --habilitar-libopenjpeg --habilitar-librav1e --habilitar-schannel --habilitar-sdl2 --habilitar-libsoxr --habilitar-libsrt --habilitar-libtwolame -- habilitar-libvidstab --habilitar-libx264--enable-libx265 --enable-libxvid --enable-libzimg --extra-cflags=-DLIBTWOLAME_STATIC --extra-cxxflags= --extra-ldflags=-pthread --extra-libs=-lgomp
  Libavutil 56. 51.100 / 56. 51.100
  libavcodec 58. 91.100 / 58. 91.100
  libavformat 58. 45.100 / 58. 45.100
  libavdevice 58. 10.100 / 58. 10.100
  libavfilter 7. 85.100 / 7.100 libavevice 5.100 5.100 5.100 5.100 5.100 LIBAVFILTER 7. 85.100 /
  7.100
  LIBAVDEVICE 5.100 5. 7.100 / 3. 7.100
  libpostproc 55. 7.100 / 55. 7.100
Entrada #0, mov,mp4,m4a,3gp,3g2,mj2, desde 'E:\360MoveData\Users\huyi\Desktop\3333333.mp4':
  Metadatos:
    marca_principal: isom
    versión_secundaria: 512
    marcas_compatibles: isomiso2avc1mp41
    hora_de_creación: 2022-09-08T12:04:43.000000Z
    Hw: 1
                    : 
    bitRate: 16000000
                    : 
    com.apple.quicktime.artwork: {"data":{"edittime":22,"infoStickerId":"","musicId":"","os":"windows","product": "lv","stickerId":"","videoEffectId":"","videoId":"245ba6f1-f2ab-4d70-bc77-c70ea30c171a","videoParams":{"be":0,"ef":0 ,"ft":0,"ma":0,"me":0,"mu":0,"re":0,"sp":0,"st":0,"te":0," t
    maxrate: 16000000
                    : 
    te_is_reencode: 1
                    : 
    codificador: Lavf58.76.100
  Duración: 00:00:26,91, inicio: 0,000000, tasa de bits: 11898 kb/s
    Transmisión n.º 0:0(und): Vídeo: h264 (principal) (avc1/0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], 11741 kb/s, 30 fps, 30 tbr, 15360 tbn, 60 tbc (predeterminado)
    Metadatos:
      tiempo_de_creación: 2022-09-08T12:04:43.000000Z
      nombre_del_controlador: VideoHandler
    Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 44100 Hz, estéreo, fltp, 156 kb/s ( predeterminado)
    Metadatos:
      hora_de_la_creación: 2022-09-08T12:04:43.000000Z nombre_del_controlador: Salida
      SoundHandler
#0, mp4, a 'E:\360MoveData\Users\huyi\Desktop\7812f03a858f11ed8359e454e8bf1461.mp4':
  Metadatos:
    om minor_brand
    : is 512
    marcas_compatibles: isomiso2avc1mp41
    te_is_reencode : 1
                    : 
    Hw : 1
                    : 
    bitRate : 16000000
                    : 
    com.apple.quicktime.artwork: {"data":{"edittime":22,"infoStickerId":"","musicId":"","os":"windows","product":"lv" ,"stickerId":"","videoEffectId":"","videoId":"245ba6f1-f2ab-4d70-bc77-c70ea30c171a","videoParams":{"be":0,"ef":0,"ft ":0,"ma":0,"yo":0,"mu":0,"re":0,"sp":0,"st":0,"te":0,"t
    maxrate : 16000000
                    : 
    codificador: Lavf58.45.100
    Secuencia n.° 0:0(und): Video: h264 (principal) (avc1 / 0x31637661), yuv420p(tv, bt709), 1920x1080 [SAR 1:1 DAR 16:9], q=2 -31,11741 kb/s, 30 fps, 30 tbr, 15360 tbn, 15360 tbc (predeterminado)
    Metadatos:
      hora_creación: 2022-09-08T12:04:43.000000Z
      nombre_controlador: VideoHandler
    Transmisión n.° 0:1(und): Audio: aac (LC) (mp4a/0x6134706D), 44100 Hz, estéreo, fltp, 156 kb/s (predeterminado)
    Metadatos:
      tiempo_de_creación: 2022-09-08T12:04:43.000000Z
      nombre_del_controlador : SoundHandler
Mapeo de transmisión: Transmisión
  #0:0 -> #0:0 (copiar)
  Transmisión #0:1 -> #0:1 (copiar)
Presione [q] para detener, [?] para ayuda
marco = 150 fps = 0.0 q=-1.0 Lsize= 6607kB time=00:00:04.97 bitrate=10875.7kbits/s speed= 329x    
video:6507kB audio:95kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.082792%
E:\360MoveData \Usuarios\huyi\Escritorio\7812f03a858f11ed8359e454e8bf1461.mp4

Información del video del resultado

 

Resumir

No hay nada que resumir, atención a la duración del video.

Cuota:

        Las acciones parecen seguir a los sentimientos, pero en realidad las acciones y los sentimientos van de la mano.Si la voluntad controla las acciones, también puede controlar indirectamente los sentimientos. ——"La debilidad de la naturaleza humana"

Si este artículo te ha resultado útil, dale me gusta , ¡gracias!

Supongo que te gusta

Origin blog.csdn.net/zhiweihongyan1/article/details/128452773
Recomendado
Clasificación