Hur man manuellt koda WebM videor med FFmpeg (4 / 5 steg)
Steg 4: Första passage kodning
För faktiska kodning del, kommer vi att använda en metod som kallas "multi-pass kodning." I grund och botten vad detta betyder är att vi frågar programmet för att ta en första titt på videon av filen så det har en bättre uppfattning om hur bäst att koda det innan vi faktiskt göra det.
Förutsatt att du har fått din kommandorad öppnade i din källa katalog från föregående steg, ska du gå vidare och ange följande i din prompt:
ffmpeg -i "[input.filename]"-ss [starttid] – t [längd] - c: v libvpx-vp9 - b: v [bitrate] – g 128 – kakel-kolumner 6-frame-parallell 1 – en – f webm – passera 1-y/dev/null
Återigen, det är mycket att ta, så låt oss bryta ner det:
- ffmpeg – i [input.filename]
Vi har sett detta tidigare, säger vi bara FFmpeg titta på filen [input.filename].
- -ss [starttid] – t [längd]
Vi har sett detta tidigare, också. Här vi helt enkelt berätta programmet där vi vill börja och avsluta klippet.
- - c: v libvpx-vp9
Här anger vi vilken video codex att använda för våra kodning. WebM använder vp9 format, så det är vad vi säger FFmpeg att använda.
- - b: v [bitrate]
Här säger vi programmet exakt hur många bitar av diskutrymme det är tillåtet för att använda per sekund av återgivna video, och direkt påverkar hur stor filen skapar vi så småningom kommer att vara. [bitrate] naturligtvis är antalet beräknade vi tidigare.
- -kakel-kolumner 6-frame-parallell 1
Båda dessa är inställningar som spelar in när avkodning utdata, snarare än det-kodning. Detta säger i princip någon dekoder försöker spela de utdata som det är tillåtet för att använda flera processorkärnor, vilket gör det spelas upp snabbare. Detta resulterar i en liten droppe i kvalitet, men är definitivt värt det.
- -g 128
Detta anger intervallet mellan vad som kallas "referensbilder" i vår video, i detta fall varje 128 ramar. Vad detta innebär främst är det möjligt att söka i tätare intervaller på video än vad som är standard.
- -an
Denna flagga är talande programmet inte vill vi att koda ljud just nu. Eftersom detta är vår första passet av kodning, är vi strikt oroande om rendering video just nu.
- -f webm
Allt detta gör är att genomdriva att vi så småningom skapar en webm, som du ser i lite vi faktiskt inte skapar något detta pass så vi bara så att programmet vet vad vi kommer slutligen att göra senare.
- -passera 1
Vi säger bara ffmpeg att detta är vårt första pass, och vi vill att det ska samla in data för ett andra pass.
- -y DjoceNet
Vi faktiskt inte gör någonting just nu, eftersom vi vill bara att samla in data, anger detta att vi inte vill skriva något till en utgång.
Tips: om du får ett felmeddelande som säger något i stil med/dev/null hittades inte, gå vidare och ersätta "/ dev/null /" med namnet på den faktiska filen du vill spara till så småningom.
Ytterligare alternativ
Dessa är inte obligatoriska, men kan vara användbar i särskilda fall, om du vill använda någon av dessa, helt enkelt lägga dem före namnet på utdatafilen utanför det alternativ som anges ovan.
- -sn
Om din video har extern undertext, denna flagga berättar det att inte använda dem för kodning.
- -trådar [nummer]
Detta är hur många kärnor av din CPU du vill att programmet ska kunna använda medan kodning. Som standard VP9 använder en kärna medan kodning, så ökar detta antal kommer att göra det koda snabbare, att offra lite kvalitet.
- -vf "skala = -1: [höjd]"
Om steg 2 du bestämde dig att åter skala din produktion, det är där du deklarera den nya skalan för din produktion. När det gäller den här guiden antar vi att du inte vill ändra bildformatet (därmed snedvrida utdata). [höjd] kommer, naturligtvis, att nya höjden av den output ram, och -1 berättar FFmpeg att skala bredden enligt proportionerna för källan.
När du har angett ditt kommando och har drabbat in, vänta tills du ges en uppmaning att ange ett annat kommando innan vi går vidare. Notera att detta kan ta lång tid beroende på hur lång den video som du skapar är.