Moviepy i Python

Moviepy i Python
I Python er det en modul for alt, og det er en for videoredigering også. Moviepy er et Python -bibliotek som brukes til videokutting, sammenkoblinger, tittelinnsatser, videoposisjonering, videobehandling og å legge til noen få effekter. Moviepy kan brukes i forbindelse med de vanligste lyd- og videoformatene. Imidlertid kan Moviepy ikke brukes med webkameraer eller med live videoer. Videre støttes det av Windows, MacOS og Linux. I denne opplæringen lærer vi om MoviePy -modulen i Python.

Moviepy

For å installere MoviePy:

Pip Install MoviePy

Videoskjæring

I første omgang, la oss lære å kutte en video. Først, ta tak i videoen med VideOfileClip () (som et argument, gi den navnet på videoen). Bruk deretter subclip () for å spesifisere tidsrammen du vil bli kuttet ut. Så vil vi lagre filen vi nettopp kutter ut; For det bruker vi Writ_VideOfile () og gir det navnet vi vil at det skal lagres som.

For eksempel:

hoved-.Py fra Moviepy.Redaktør import videofileclip
# Bruk subclip () for å spesifisere tidsrammen du ønsker
cut_video_1 = videofileClip ("Video.mp4 ").subclip (20,30)
cut_video_2 = videofileClip ("Video.Mp4 ").subclip (40,50)
cut_video_3 = videofileClip ("Video.Mp4 ").subclip (60,70)
# bruk skriv_videofile () for å lagre filen
cut_video_1.skriv_videofile ("cut_video_1.mp4 ")
cut_video_2.skriv_videofile ("cut_video_2.mp4 ")
cut_video_3.skriv_videofile ("cut_video_3.mp4 ")

Sistnevnte vil lage tre videoer fra hovedvideofilen som heter “Video.MP4 ”. Det vil ta "video.mp4 ”og klipp den opp og lagre den som cut_video_1.m4, cut_video_2.mp4, og cut_video_3.MP4.

Video sammenslåing

La oss nå slå sammen de tre biter som vi opprettet i forrige seksjon. Her velger du nok en gang tre segmenter du vil slå sammen med subclip (). Bruk deretter concatenate_videoclips () for å slå sammen filene sammen; Her, merk at filene må plasseres i en liste! For å lagre den sammenslåtte filen, bruker vi nok en gang Writ_VideOfile (); Imidlertid må du være forsiktig. Hvis du ikke vil få en verdifeil, må du spesifisere kodekene.

Kodekene er som følger:

Utvidelse Kodek
MP4 libx264
OGV libtheora
WebM libvpx
Ogg libvorbis
mp3 PCM_S16LE
Wav libvorbis
M4a libfdk_aac

Vær oppmerksom på at når du navngir den sammenslåtte filen, må du også legge inn en utvidelse (for eksempel i mitt tilfelle ble den sammenslått_video.MP4).

hoved-.Py fra Moviepy.redaktør import videofileclip, concatenate_videoclips
cut_video_1 = videofileClip ("Video.Mp4 ").subclip (20,30)
cut_video_2 = videofileClip ("Video.Mp4 ").subclip (40,50)
cut_video_3 = videofileClip ("Video.Mp4 ").subclip (70,80)
sammenslått = concatenate_videoclips ([cut_video_1, cut_video_2, cut_video_3])
slått sammen.skriv_videofile ("Merged_video.mp4 ", fps = 30, tråder = 1, codec =" libx264 ")

Hvis du vil bruke de eksisterende filene og ikke bruke underklippene (), så:

hoved-.Py fra Moviepy.redaktør import videofileclip, concatenate_videoclips
# Les videofilene
cut_video_1 = videofileclip ("cut_video_1.mp4 ")
cut_video_2 = videofileclip ("cut_video_2.mp4 ")
cut_video_3 = videofileclip ("cut_video_3.mp4 ")
# sammenkoble filene
sammenslått = concatenate_videoclips ([cut_video_1, cut_video_2, cut_video_3])
# Lagre den sammenslåtte filen
slått sammen.skriv_videofile ("Merged_video_2.mp4 ", fps = 30, tråder = 1, codec =" libx264 ")

Tittelinnsats

Neste, la oss velge et klipp og legge til en tittel i det. Her, for å oppnå dette, må du ha Imagemagick installert:

sudo apt-get installer imagemagick

For at dette skal fungere, må du gjøre noen få endringer:

sudo nano/etc/imagemagick-6/policy.XML

Kommenter linjen som lyder som følger:

Ved å endre sistnevnte til følgende:

Her leste du videofilen ved hjelp av VideOfileClip (). Så setter du inn teksten du vil bruke TextClip (). Her satte jeg inn ordet “Linuxhint” med en skriftstørrelse på 75 og en farge på hvitt. Da kan du velge stedet der teksten settes inn; I mitt tilfelle har jeg satt det inn i sentrum. Til slutt kan du angi varigheten ved å bruke set_duration (). Slå deretter sammen videoen og teksten ved hjelp av CompositeVideOclip (), og lagre den ved hjelp av Writ_VideOfile ().

hoved-.Py fra Moviepy.Redaktørimport *
Video = VideoFileClip (“CUT_VIDEO_1.MP4 ”)
tekst = tekstklipp (“LinuxHint”, FontSize = 75, Color = 'White')
tekst2 = tekst.set_pos ('senter').set_duration (3)
Video2 = CompositeVideOclip ([Video, Text2])
Video2.skriv_videofile (“tekstet.MP4 ”)

Endre volum

Du kan også endre volumet på videoen. Les først videofilen ved hjelp av VideOfileClip (), og endre deretter volumet ved hjelp av Volumex (). Et enkelt argument - beløpet for å øke eller redusere - sendes til Volumex (). I mitt tilfelle har jeg bestemt meg for å øke volumet med en faktor på 1.8.

hoved-.Py fra Moviepy.Redaktør import videofileclip
# Les en videofil
Video_1 = VideoFileClip ("Video.Mp4 ")
# Endre volumet
video_2 = video_1.Volumex (1.8)
# lagre
Video_2.skriv_videofile ("volum_boost.mp4 ")

Endre størrelse på video

For å endre størrelsen på videoen, må du først lese den ved hjelp av VideOfileClip (), og deretter bruke FX (). FX () tar to argumenter; Det andre argumentet er bredden på videoen (som du kan definere).

hoved-.Py fra Moviepy.Redaktørimport *
# Les en videofil
Video_1 = VideoFileClip ("Video.Mp4 ")
# Endre størrelse
video_2 = video_1.FX (VFX.Endre størrelse, bredde = 880)
# lagre
Video_2.skriv_videofile ("WidthenLarged.mp4 ")

Imidlertid kan du gjøre mye, mye mer!

For eksempel, hvis du ønsket å gjøre videoen til svart og hvitt (husk deg, her er ting case -følsom):

hoved-.Py fra Moviepy.Redaktørimport *
Importer MoviePy
# Les en videofil
Video_1 = VideoFileClip ("Video.Mp4 ")
# Endre
Video_2 = MoviePy.video.fx.alle.BlackWhite (Video_1, RGB = Ingen, Preserve_luminosity = True)
# lagre
Video_2.skriv_videofile ("Svart.mp4 ")

Mange flere alternativer finner du på https: // zulko.github.IO/MoviePy/Ref/VideoFx.html.

Til gif

Du kan også lage GIF -er. I dette tilfellet gjør du det du vil gjøre med videoen (eks: kutt, svart og hvitt, endre størrelse osv.) Og deretter bruke Writ_gif () for å lage en GIF.

hoved-.Py fra Moviepy.Redaktørimport *
Importer MoviePy
# Les en videofil
Video_1 = VideoFileClip ("CUT_VIDEO_1.mp4 ")
# Endre
Video_2 = MoviePy.video.fx.alle.BlackWhite (Video_1, RGB = Ingen, Preserve_luminosity = True)
# lagre
Video_2.skriv_gif ("gif.gif ")

Uten lyd

En annen interessant funksjon er å fjerne lyden fra videoen. For å fjerne lyden, send videoen til Uten_audio ().

hoved-.Py fra Moviepy.Redaktørimport *
Importer MoviePy
# Les en videofil
Video_1 = VideoFileClip ("CUT_VIDEO_1.mp4 ")
# Endre
video_2 = video_1.uten_audio ()
# lagre
Video_2.skriv_videofile ("Woaudio.mp4 ")

Lyd

Audio Wise, MoviePy tilbyr Audio_Fadein (), Audio_Fadeout (), Audio_Loop (), Audio_Normalize () og Volumex (). Mer om dette finner du på https: // zulko.github.IO/MODYPY/REF/AUDIOFX.html.

Mer informasjon om hvordan du bruker denne modulen finner du på https: // zulko.github.IO/MoviePy/Ref/Ref.html.

Moviepy er et Python -bibliotek som ble designet for å redigere videoer. Moviepy er basert på FFMPEG og Imagemagick. Og det som er mer, den bruker FFMPEG og Imagemagick, og det er veldig, veldig kraftig! Dette betyr også at begge må installeres og fungerer. Moviepy gjør en fantastisk jobb med å redigere videoer! Det var så mange ting man kunne gjøre med videoen at jeg bare var i ærefrykt! Moviepy kan klippe videoer, slå sammen videoer, legge til titler osv. ... Det er en ganske liten pakke!

Glad koding!