Een video knippen en bijsnijden met ffmpeg

How Cut Crop Video With Ffmpeg



In deze zelfstudie wordt uitgelegd hoe u video's kunt knippen en bijsnijden vanaf de opdrachtregel met ffmpeg.

FFmpeg is een multiplatform, open-source suite met tools en bibliotheken om multimedia en streams vanaf de opdrachtregel te bewerken. Het ondersteunt het coderen en decoderen van de meeste multimediaformaten, inclusief ongebruikelijke bestanden. Na het lezen van deze tutorial die procedure- en videoscreenshots bevat, weet je hoe je video's kunt knippen en bijsnijden met ffmpeg.







ffmpeg installeren:

Om ffmpeg te installeren op op Debian gebaseerde Linux-distributies, gebruikt u de opdracht apt zoals weergegeven in het onderstaande voorbeeld.



sudogeschiktinstalleren ffmpeg



Voer de onderstaande opdrachten uit om ffmpeg op Redhat / Centos te installeren:





yum localinstall yum installeren ffmpegffmpeg-devel

Hoe video's te knippen met ffmpeg:

Het knippen van video's met ffmpeg is een vrij eenvoudige, snelle en weinig middelenverslindende taak met ffmpeg. U hoeft alleen de begin- of eindtijd te definiëren, of beide indien nodig en het uitvoerbestand. Hier ga ik mee aan de slag Linux Hint-video (duur 00:03:280) Ik heb zojuist gedownload voor deze tutorial.

De onderstaande opdracht gebruikt ffmpeg om de video te knippen vanaf de tweede 00:00:05 gespecificeerd met de vlag -ss; dit is de vlag om een ​​startpunt voor je nieuwe video te definiëren voor het geval je een deel van het begin wilt wegknippen. Als u slechts een deel van het einde van de video wilt knippen, hoeft u deze vlag niet te gebruiken. Zoals u kunt zien, moet het timingformaat HH:MM:SS (uren, minuten, seconden) zijn. Voor een timing van 2 minuten en 3 seconden typt u bijvoorbeeld 00:02:03.



De vlag -i die wordt gebruikt om het te bewerken bestand op te geven; in dit geval is het bestand LinuxHint-vim.mp4.

De optie -t wordt gebruikt om het einde van het nieuwe bestand te specificeren; in dit geval eindigt de video om 00:02:00. Net als bij -ss, als je geen deel van het einde van de video wilt knippen, maar slechts een deel van het begin, hoef je deze vlag niet toe te passen.

In dit geval wordt de kopieervlag -c gebruikt om het uitvoerbestand te definiëren; in dit geval het bestand editedvideo.mp4.

ffmpeg -ss00:00:05-lLinuxHint-vim.mp4-t00:02:00-Ckopieer bewerktevideo.mp4

De hele operatie duurde een paar seconden zonder computerbronnen te verbruiken.

Het volgende voorbeeld laat zien hoe u slechts een deel van het einde van de video van 00:03:28 seconden kunt knippen. Dus laat ik de optie -ss weg omdat ik het startpunt wil behouden, en ik knip de video om 00:02:00 door de vlag -t te implementeren.

ffmpeg -lLinuxHint-vim.mp4-t00:02:00-Ckopieer bewerktevideo2.mp4

In tegenstelling tot het vorige voorbeeld, knipt de onderstaande opdracht slechts een deel van de video die begint met het gebruik van de vlag -ss. In dit geval begint de nieuwe uitvoer vanaf 00:01:30.

ffmpeg -ss00:01:30 -lLinuxHint-vim.mp4-Ckopieer bewerktevideo3.mp4

Zoals je kunt zien, is het knippen van video's met ffmpeg een eenvoudig en snel proces.

Zwarte randen bijsnijden met ffmpeg:

In dit gedeelte van de zelfstudie wordt beschreven hoe u video's kunt bijsnijden met ffmpeg.

U kunt ffmpeg gebruiken om te proberen automatisch te detecteren hoe uw video moet worden bijgesneden om zwarte randen te verwijderen.

Voor dit voorbeeld gebruik ik een 320×240 video- die er als volgt uitziet:

De onderstaande opdracht zal proberen de juiste afmetingen en posities te detecteren om de video correct bij te snijden.

ffmpeg -llinux-foundation.mp4-vfgewasdetectie-Fnul -2> &1 | awk '/crop/ { print $NF }' | staart -1

Zoals je kunt zien, retourneert ffmpeg de juiste breedte (320), hoogte (208), X en Y posities om de video correct bij te snijden.

De X-positie : De X-positie definieert het beginpunt van het horizontale bijsnijden vanaf de linkermarge, waarbij de linkermarge 0 is.

De Y-positie : Y is het startpunt voor verticaal bijsnijden waarbij de bovenmarge 0 is.

Het voorbeeld onder de video wordt bijgesneden; u kunt de vlag -filter:v zien.

De vlag -filter implementeert een filtergraph die de invoerstroom verdeelt, bijsnijdt en overlapt met de andere streaming. Zoals u kunt zien, worden de afmetingen en posities die in de onderstaande opdracht zijn gedefinieerd, geleverd door de vorige opdracht.

U kunt ook zien dat de vlag -c-kopie is weggelaten en dat de naam van het uitvoerbestand net na de bijsnijdvlag is geschreven.

ffmpeg -llinuxfoundation.mp4 -filter: v'gewas=320:208:0:16'output.mp4

Zoals je kunt zien, zijn de zwarte randen verwijderd:

Over het bijsnijden van video's met ffmpeg:

Je kunt elk deel van een video bijsnijden met de vorige techniek, niet alleen zwarte randen.

Met de onderstaande opdracht wordt de vorige video bijgesneden en wordt een afbeelding van 200 × 200 geretourneerd, beginnend met 200 px vanaf links en 0 px vanaf de bovenmarges.

fffmpeg-loutput.mp4 -filter:v'gewas=200:200:200:0'output2.mp4

En hier is de bijgesneden video:

U kunt natuurlijk ook andere soorten metingen definiëren, zoals rechthoeken.

De video waaraan we zullen werken (zelfde als de eerste tutorialsectie) ziet eruit als de onderstaande afbeelding.

In dit eerste voorbeeld definiëren we alleen de uitvoerafmetingen, maar niet de positie. Als je de positie niet opgeeft, zal ffmpeg automatisch het midden van de video bijsnijden . Dus in het onderstaande voorbeeld, waarin alleen de hoogte en breedte van de video zijn gedefinieerd, maar geen positie, zal ffmpeg de video bijsnijden en een 500×500 bijgesneden uitvoer van het midden van de video retourneren.

ffmpeg -lLinuxHint-vim.mp4 -filter: v'gewas=500:500'LinuxHintvideo2.mp4

En we krijgen de bijgesneden uitvoer van 500x500px:

Indien nodig kunt u het commando ffmpeg in combinatie met grep gebruiken om de originele videoresolutie te leren, zoals hieronder weergegeven.

ffmpeg -lLinuxHint-vim.mp42> &1 | greepVideo:| greep -Po 'd{3,5}xd{3,5}'

Als je van eenvoud en prestaties van ffmpeg houdt, heb je toegang tot ffmpeg officiële documentatie hier om meer te weten te komen over de vele extra functies en functies die beschikbaar zijn voor het bewerken van media.

Conclusie:

Het snijden en bijsnijden van media vanaf de opdrachtregel is vrij eenvoudig met behulp van ffmpeg. Een van de belangrijkste voordelen van ffmpeg is het lage verbruik van hulpbronnen en de hoge snelheid.
Deze tutorial laat zien dat elk Linux-gebruikersniveau of elke persoon zonder kennis van videobewerking video's professioneel kan bewerken in tekstmodus door een paar commando's en een vriendelijke syntaxis te leren. FFmpeg is multiplatform, waardoor het een geweldige standaardtool is om video- en audiobestanden vanaf de opdrachtregel te bewerken. FFmpeg maakt deel uit van algemeen bekende tools zoals VLC-speler en was opgenomen in de kernverwerking voor iTunes en YouTube.

Ik hoop dat deze tutorial nuttig was. Blijf Linux Hint volgen voor meer Linux-tips en tutorials.