FFmpeg för nybörjare: gör en liggande AI-demo vertikal utan att beskära motivet
En färdig AI-demo kan se rätt ut på datorn och ändå fungera dåligt i ett vertikalt flöde. Zoomar du upp en liggande skärminspelning till 9:16 försvinner ofta menyer, resultat eller andra delar som tittaren behöver se.
I den här guiden behåller vi hela den skarpa 16:9-bilden. En förstorad och suddig kopia fyller ytan bakom den. Resultatet blir en 1080 × 1920-video där huvudbilden är komplett, centrerad och lätt att granska.
FFmpeg är ett verktyg med öppen källkod som läser, filtrerar och kodar video- och ljudströmmar. Här använder vi det till en enda uppgift: en befintlig MP4-fil blir en vertikal MP4-fil. Vi skapar ingen ny video, berättarröst eller textning.
Vem guiden passar
Du har en kort produktdemo, kursförklaring eller skärminspelning i liggande format. Den är redan godkänd, men du behöver en vertikal förhandsvisning utan att skära bort gränssnittet eller slutresultatet.
Efter guiden har du:
- en vertikal MP4 i 1080 × 1920
- hela den skarpa huvudbilden kvar
- en suddig bakgrund som fyller 9:16
- den första ljudströmmen med när den finns
- en visuell och teknisk kontroll av slutfilen
Installera och kontrollera FFmpeg
Hämta FFmpeg via FFmpegs officiella nedladdningssida. Sidan länkar till paket och byggen för Linux, Windows och macOS. Installationen skiljer sig mellan systemen.
På Ubuntu testade vi:
sudo apt update
sudo apt install ffmpeg
ffmpeg -version
ffprobe -version
Kontrollera också att just ditt bygge har kodarna libx264 och aac:
ffmpeg -hide_banner -encoders
Sök efter libx264 och aac i listan. libx264 finns inte i alla FFmpeg-byggen.
Källor: FFmpeg Download och FFmpeg codec documentation.
Förbered källfilen
Skapa en egen arbetsmapp och lägg en kopia av videon där. Döp kopian till:
demo-landscape.mp4
Kommandot nedan är testat med en vanlig 16:9-video med kvadratiska pixlar, en videoström och högst ett ljudspår. Kontrollera källan först:
ffprobe -v error \
-show_entries stream=codec_type,width,height,sample_aspect_ratio \
-of json demo-landscape.mp4
För den här guiden ska videon vara 16:9 och sample_aspect_ratio vara 1:1. Om värdet är något annat behöver flödet anpassas. Receptet försöker inte bevara undertexter, kapitel, flera ljudspår eller HDR- och färgmetadata.
Så fungerar de två videolagren
FFmpeg delar samma video i två visuella lager:
- Bakgrundskopian förstoras tills den täcker 1080 × 1920. Överskottet beskärs och bilden suddas.
- Huvudbilden skalas ned tills hela 16:9-bilden ryms i den vertikala ytan.
- Den skarpa huvudbilden centreras över den suddiga bakgrunden.
"Utan beskärning" gäller alltså huvudbilden. Bakgrundskopian beskärs medvetet för att fylla formatet.
Kör den vertikala konverteringen
Kör kommandot i samma mapp som källfilen:
ffmpeg -y -i demo-landscape.mp4 \
-filter_complex "[0:v]split=2[bg][fg];[bg]scale=1080:1920:force_original_aspect_ratio=increase,crop=1080:1920,boxblur=30:10[bgv];[fg]scale=1080:1920:force_original_aspect_ratio=decrease[fgv];[bgv][fgv]overlay=(W-w)/2:(H-h)/2:shortest=1,setsar=1[outv]" \
-map "[outv]" -map 0:a:0? \
-c:v libx264 -crf 20 -preset medium -pix_fmt yuv420p \
-c:a aac -b:a 128k -movflags +faststart \
demo-vertical.mp4
Flaggan -y skriver över en befintlig demo-vertical.mp4 utan att fråga. Byt utfilens namn om du vill behålla en tidigare version.
Det långa filtersteget gör sex saker:
splitskapar bakgrunds- och huvudbildslagret.increase,cropochboxblurfyller och suddar bakgrunden.decreasepassar in hela huvudbilden.overlaycentrerar lagren.-map 0:a:0?tar med den första ljudströmmen när den finns.- H.264 och AAC kodas i en MP4-fil, medan
+faststartflyttar MP4-metadata mot filens början.
Ljudet kodas om till AAC. Det är alltså inte bitidentiskt med källan. Vi använder inte en avslutande -shortest, eftersom ett kortare ljudspår annars kan kapa bildens slut.
Källor: FFmpeg documentation samt FFmpeg Filters Documentation och FFmpeg Formats Documentation.
Granska videon, inte bara siffrorna
Spela upp demo-vertical.mp4 från början till slut. Stanna vid början, mitten och slutet. Kontrollera att:
- hela huvudbilden är synlig
- bilden inte är utdragen
- inga kanter har kapats av misstag
- bakgrunden fyller den vertikala ytan utan svarta glapp
- videon fortsätter hela vägen till rätt slutbild
- ljudet hörs tydligt och slutar där du förväntar dig
Kör sedan en teknisk kontroll:
ffprobe -v error \
-show_entries stream=codec_type,codec_name,width,height,sample_aspect_ratio,display_aspect_ratio \
-show_entries format=duration \
-of json demo-vertical.mp4
Du ska se 1080 × 1920, visningsformatet 9:16, pixelförhållandet 1:1, H.264-video och AAC-ljud när källan hade ljud. Jämför även längden med originalet.
ffprobe kan läsa filens tekniska metadata. Det kan inte avgöra om en knapp har hamnat utanför bilden eller om slutet känns avhugget. Därför behövs både uppspelning och kontrollbilder.
Källa: ffprobe Documentation.
Vanliga misstag
Undvik att skala huvudbilden så att den fyller hela 9:16-ytan. Då beskär du just den information guiden ska bevara. Sätt inte heller både bredd och höjd utan bibehållet bildförhållande, eftersom videon då kan bli utdragen.
Om ljudet saknas har du troligen glömt den uttryckliga ljudmappningen efter det filtrerade videolagret. Om libx264 inte finns behöver du använda ett FFmpeg-bygge eller en kodare som stöds i din miljö.
Nästa steg
Nu har du ett repeterbart flöde för en färdig liggande video och en granskad vertikal kopia. Textning, flera exportformat och automatisk publicering hör hemma i senare steg.
Om ni gör samma videoanpassning varje vecka kan Hammer Automation hjälpa er att paketera kommandot, filnamnen, kontrollpunkterna och godkännandet till ett repeterbart arbetsflöde. Läs också hur ett kort produktklipp kan få röst, musik och ljudeffekter i Adobe Firefly.
Vanliga frågor
Beskär FFmpeg originalvideon i det här flödet?
Den skarpa huvudbilden skalas så att hela bilden ryms. Bara den förstorade, suddiga bakgrundskopian beskärs för att fylla 9:16.
Varför använda suddig bakgrund i stället för att zooma in?
Den fyller den vertikala ytan utan att sträcka huvudbilden eller skära bort delar av demon.
Behåller den vertikala videon ljudet?
Kommandot mappar den första ljudströmmen när den finns och kodar om den som AAC. Lyssna igenom slutfilen före användning.
Fungerar kommandot med alla MP4-filer?
Nej. Receptet är testat med en vanlig kvadratpixelvideo med en videoström och högst ett ljudspår. Kontrollera källfilen och FFmpeg-bygget först.
Smedjans nyhetsbrev
Få nya artiklar i inkorgen
Välj de ämnen som intresserar dig. Inget brus, max ett mejl i veckan.
Vi följer GDPR. Avsluta när du vill.


