Moviepy em Python

Moviepy em Python
Em Python, há um módulo para tudo, e há um para edição de vídeo também. Moviepy é uma biblioteca Python usada para corte de vídeo, concatenações, inserções de título, composição de vídeo, processamento de vídeo e adicionar alguns efeitos. Moviepy pode ser usado em conjunto com os formatos de áudio e vídeo mais comuns. No entanto, o Moviepy não pode ser usado com webcams ou com vídeos ao vivo. Além disso, é suportado pelo Windows, MacOS e Linux. Neste tutorial, estaremos aprendendo sobre o módulo Moviepy em Python.

Moviepy

Para instalar o Moviepy:

pip install Moviepy

Corte de vídeo

Em primeira instância, vamos aprender a cortar um vídeo. Primeiro, pegue o vídeo usando o videofileclip () (como argumento, dê o nome do vídeo). Em seguida, use Subclip () para especificar o prazo que você deseja ser cortado. Então queremos salvar o arquivo que acabamos de cortar; Para isso, usamos write_videofile () e damos o nome que queremos que ele seja salvo.

Por exemplo:

principal.Py de Moviepy.Editor Importar videofileclip
# Use Subclip () para especificar o prazo que você deseja
cut_video_1 = videofileclip ("vídeo.mp4 ").Subclip (20.30)
cut_video_2 = videofileclip ("vídeo.Mp4 ").Subclip (40,50)
cut_video_3 = videofileclip ("vídeo.Mp4 ").Subclip (60,70)
# use write_videofile () para salvar o arquivo
cut_video_1.write_videofile ("cut_video_1.mp4 ")
cut_video_2.write_videofile ("cut_video_2.mp4 ")
cut_video_3.write_videofile ("cut_video_3.mp4 ")

Este último criará três vídeos do arquivo de vídeo principal chamado “Vídeo.mp4 ”. Vai levar “Vídeo.mp4 ”e corte -o e salve -o como cut_video_1.m4, cut_video_2.mp4 e cut_video_3.MP4.

Fusão de vídeo

Agora, vamos mesclar os três pedaços que criamos na seção anterior. Aqui, mais uma vez, escolha três segmentos que você gostaria de se fundir com o Subclip (). Em seguida, use concatenate_videoclips () para mesclar os arquivos juntos; Aqui, observe que os arquivos devem ser colocados em uma lista! Para salvar o arquivo mesclado, mais uma vez, usaremos write_videofile (); No entanto, aqui, você deve ter cuidado. Se você não deseja obter um erro de valor, precisará especificar os codecs.

Os codecs são os seguintes:

Extensão Codec
MP4 libx264
OGV Libtheora
WebM libvpx
Ogg libvorbis
mp3 PCM_S16LE
WAV libvorbis
m4a libfdk_aac

Observe que, ao nomear o arquivo mesclado, você também deve entrar em uma extensão (por exemplo, no meu caso, foi mesclado_video.mp4).

principal.Py de Moviepy.editor importar videofileclip, concatenate_videoclips
cut_video_1 = videofileclip ("vídeo.Mp4 ").Subclip (20.30)
cut_video_2 = videofileclip ("vídeo.Mp4 ").Subclip (40,50)
cut_video_3 = videofileclip ("vídeo.Mp4 ").Subclip (70,80)
mesclado = concatenate_videoclips ([cut_video_1, cut_video_2, cut_video_3])
mesclado.write_videofile ("Merged_video.mp4 ", fps = 30, threads = 1, codec =" libx264 ")

Se você quiser usar os arquivos existentes e não usar os subclips (), então:

principal.Py de Moviepy.editor importar videofileclip, concatenate_videoclips
# Leia os arquivos de vídeo
cut_video_1 = videofileclip ("cut_video_1.mp4 ")
cut_video_2 = videofileclip ("cut_video_2.mp4 ")
cut_video_3 = videofileclip ("cut_video_3.mp4 ")
# Concatenar os arquivos
mesclado = concatenate_videoclips ([cut_video_1, cut_video_2, cut_video_3])
# Salvar o arquivo mesclado
mesclado.write_videofile ("Merged_video_2.mp4 ", fps = 30, threads = 1, codec =" libx264 ")

Inserções de título

Em seguida, vamos escolher um clipe e adicionar um título a ele. Aqui, para conseguir isso, você precisará instalar o ImageMagick:

sudo apt-get install imagemagick

Para que isso funcione, você precisa fazer algumas alterações:

sudo nano/etc/imagemagick-6/política.xml

Comente a linha que diz o seguinte:

Alterando o último para o seguinte:

Aqui, você lê o arquivo de vídeo usando o videofileclip (). Então você insere o texto que deseja usar textClip (). Aqui, inseri a palavra "linuxhint" com um tamanho de fonte de 75 e uma cor de branco. Então você pode escolher o local onde o texto é inserido; No meu caso, eu o inseri no centro. Por fim, você pode definir a duração usando set_duration (). Em seguida, mescle o vídeo e o texto usando o compositEVideoclip () e salve -o usando write_videofile ().

principal.Py de Moviepy.Importação do editor *
vídeo = videofileclip (“cut_video_1.mp4 ”)
texto = textclip ("linuxhint", fontsize = 75, color = 'white')
text2 = texto.set_pos ('centro').set_duration (3)
video2 = CompositeVideoclip ([vídeo, text2])
video2.write_videofile (“texto.mp4 ”)

Volume de alteração

Você também pode alterar o volume do vídeo. Primeiro, leia o arquivo de vídeo usando o videofileclip () e depois altere o volume usando o Volumex (). Um único argumento - a quantidade para aumentar ou reduzir - é passada para Volumex (). No meu caso, decidi aumentar o volume por um fator de 1.8.

principal.Py de Moviepy.Editor Importar videofileclip
# Leia um arquivo de vídeo
video_1 = videofileclip ("vídeo.Mp4 ")
# Altere o volume
video_2 = video_1.Volumex (1.8)
# salvar
video_2.write_videofile ("volume_boost.mp4 ")

Redimensionar o vídeo

Para redimensionar o vídeo, primeiro você precisa lê -lo usando o videofileclip () e depois usar FX (). FX () leva dois argumentos; O segundo argumento é a largura do vídeo (que você pode definir).

principal.Py de Moviepy.Importação do editor *
# Leia um arquivo de vídeo
video_1 = videofileclip ("vídeo.Mp4 ")
# redimensione
video_2 = video_1.FX (VFX.redimensionar, largura = 880)
# salvar
video_2.write_videofile ("widthenlarged.mp4 ")

No entanto, você pode fazer muito, muito mais!

Por exemplo, se você quiser transformar o vídeo em preto e branco (lembre -se, aqui, as coisas são sensíveis ao maiúsculas):

principal.Py de Moviepy.Importação do editor *
Importar Moviepy
# Leia um arquivo de vídeo
video_1 = videofileclip ("vídeo.Mp4 ")
# modificar
video_2 = Moviepy.vídeo.fx.todos.Blackwhite (video_1, rgb = nenhum, preserve_luminosity = true)
# salvar
video_2.write_videofile ("preto.mp4 ")

Muitas outras opções podem ser encontradas em https: // zulko.Github.io/Moviepy/ref/videofx.html.

Para gif

Você também pode criar gifs. Nesse caso, você faz o que deseja fazer com o vídeo (ex: corte, preto e branco, redimensionar, etc ...) e depois use write_gif () para criar um gif.

principal.Py de Moviepy.Importação do editor *
Importar Moviepy
# Leia um arquivo de vídeo
video_1 = videofileclip ("cut_video_1.mp4 ")
# modificar
video_2 = Moviepy.vídeo.fx.todos.Blackwhite (video_1, rgb = nenhum, preserve_luminosity = true)
# salvar
video_2.write_gif ("gif.gif ")

Sem áudio

Outro recurso interessante é remover o áudio do vídeo. Para remover o áudio, passe o vídeo para sem_audio ().

principal.Py de Moviepy.Importação do editor *
Importar Moviepy
# Leia um arquivo de vídeo
video_1 = videofileclip ("cut_video_1.mp4 ")
# modificar
video_2 = video_1.sem áudio()
# salvar
video_2.write_videofile ("woaudio.mp4 ")

Áudio

O Audio Wise, Moviepy Offers Audio_fadein (), Audio_fadeout (), Audio_loop (), Audio_Normalize () e Volumex (). Mais sobre isso pode ser encontrado em https: // zulko.Github.io/Moviepy/ref/audiofx.html.

Mais informações sobre como usar este módulo podem ser encontradas em https: // zulko.Github.io/cinemapy/ref/ref.html.

Moviepy é uma biblioteca Python que foi projetada para editar vídeos. Moviepy é baseado em ffmpeg e imagemagick. E além do mais, ele usa ffmpeg e imagemagick e, portanto, é muito, muito poderoso! Isso também significa que ambos precisam ser instalados e funcionando. Moviepy faz um trabalho fantástico de editar vídeos! Havia tantas coisas que se poderia fazer no vídeo que eu estava com admiração! Moviepy pode cortar vídeos, mesclar vídeos, adicionar títulos, etc ... é um pequeno pacote!

Codificação feliz!