ffmpeg – zpracování multimédií

Nainstalovat si: ffmpeg

 Jedná se o šikovný nástroj k převodu formátů multimédií. To i velice jednoduchým způsobem, jen dle koncovky zdrojového a cílového souboru, který se vytvoří.

 

Převod formátu z mp4 video do mp3 audio souboru

ffmpeg -i zdrojový_soubor.mp4 cílový_soubor.mp3

s úpravou zesílení hlasitosti +8dB a ubrání výšek -6dB

ffmpeg -i zdrojový_soubor.mp4 -filter:a "volume=+8dB,treble=gain=-6dB:frequency=8000" cílový_soubor.mp3

 

Převod formátu videa z avi souboru do mp4 souboru

ffmpeg -i zdrojový_soubor.avi cílový_soubor.mp4

Převod s vymazáním metadat

ffmpeg -i zdrojový_soubor.avi -metadata title="" cílový_soubor.mp4

 

Převod audio formátu MP4 videa z 6 kanálového (verze 5.1) na stereo do mp4 souboru

ffmpeg -i zdrojový_soubor.mp4 -ac 2 -c:v copy cílový_soubor.mp4

Převod s procentuálním poskládáním stereo kanálů levý = středový + 30% levý přední + 30% levý zadní a pravý = středový + 30% pravý přední + 30% pravý zadní

ffmpeg -i zdrojový_soubor.mp4 -filter_complex "[0:a]pan=stereo|FL=FC+0.30*FL+0.30*BL|FR=FC+0.30*FR+0.30*BR" -c:v copy cílový_soubor.mp4

 

Informace o Audio/Video souboru

Zjištění formátu a dalších parametrů

ffprobe zdrojový_soubor.mp4

 

Vytvoření GIF z  video souboru

Nastavení na 8 fps a rozlišení 160×120 px

ffmpeg -i zdrojový_soubor.gif -r 8 -vf "scale=160x120"  cílový_soubor.gif

Převod s vymazáním metadat

ffmpeg -i zdrojový_soubor.gif -metadata title=""  cílový_soubor.mp4

Převod s předvoleným video/audio kodekem a kvalitou

ffmpeg -i zdrojový_soubor.avi -vcodec libx264 -crf 24 -acodec libmp3lame -b:a 128k -ac 2 cílový_soubor.mp4

 

Filtr pro změnu rozměrů a oříznutí okrajů z video souboru

Princip oříznutí a posun obrazu, „scale“ pro výslednou velikost obrazu

... -vf "crop={ořez_X}:{ořez_Y}[:{posun_zleva_X}[:{posun_shora_Y}]][,scale={rozměr_X}x{rozměr_Y}]" ...

Příklad oříznutí s vycentrováním a změnou rozměru

... -vf "crop=in_w-0:in_h-148:(in_w-out_w)/2+0:(in_h-out_h)/2+1,scale=1024x576" ...

 

Otočení videa

bez překódování a ve stupních 90, 180, 270.

ffmpeg -i zdrojový_soubor.mp4 -metadata:s:v rotate="90" -codec copy cílový_soubor.mp4

 

Převod videa z DVD (VOB) do souboru

Připojení DVD, zjištění souborů a formátu potřebného videa. Reklamy, bonusy a pauzy jsou nejmenší soubory

sudo mount /dev/sr0 /mnt ; ll /mnt/VIDEO_TS/
ls -l /mnt/VIDEO_TS/VTS_*
ffprobe /mnt/VIDEO_TS/VTS_...

Příklad: „720×576 – 5:4“ video soubor => oříznutí svislých okrajů => převod na „1024×768 – 4:3“

cat /mnt/VIDEO_TS/VTS_01_[1-9].VOB | ffmpeg -y -i - -metadata title="" -vcodec libx264 \
-vf "crop=in_w-24:in_h:(in_w-out_w)/2-4,scale=1024x768" -crf 26 -deinterlace -preset veryfast \
-acodec libmp3lame -b:a 128k -ac 2 cílový_soubor.mp4

Příklad: „720×576 – 5:4“ video soubor => oříznutí vodorovných okrajů => převod na „1024×576 – 16:9“

cat /mnt/VIDEO_TS/VTS_01_[1-9].VOB | ffmpeg -y -i - -metadata title="" -vcodec libx264 \
-vf "crop=in_w-0:in_h-146:(in_w-out_w)/2+0:(in_h-out_h)/2+1,scale=1024x576" -crf 26 -deinterlace -preset veryfast \
-acodec libmp3lame -b:a 128k -ac 2 cílový_soubor.mp4

 

Převod videa z DVD (VOB) do souboru s volbou jazyka

Příklad: Přemapování audio kanálu -map 0:1 => -map 0:3

cat /mnt/VIDEO_TS/VTS_01_[1-9].VOB | ffmpeg -y -i - -metadata title="" -map 0:1 \
-vcodec libx264 -crf 26 -deinterlace -preset veryfast \
-acodec libmp3lame -map 0:3 -b:a 128k -ac 2 cílový_soubor.mp4

 

Zobrazení ze dvou webkamer s přidanou „lupou“

Příklad: Poskládání obrazu ze dvou webkamer (s předem nastaveným rozlišením 640×480) do tří sekcí.
horní:
/dev/video0 [0:v](640x480) -> [horni](640×200),
dolní + lupa:
/dev/video1 [1:v](640x480) -> [dolni](640×280) + [lupa](140×280)

ffmpeg -f video4linux2 -r 15 -input_format mjpeg -i /dev/video0 \
-f video4linux2 -r 15 -input_format mjpeg -i /dev/video1 \
-filter_complex "[0:v]setpts=PTS-STARTPTS,crop=in_w:200:0:0[horni]; \
[1:v][horni]overlay=0:0[dolni]; \
[1:v]setpts=PTS-STARTPTS,crop=70:250:70:230,scale=140:280[lupa]; \
[dolni][lupa]overlay=0:200" \
-an -c:v h264 -bufsize 2M -maxrate 512K -f asf - | mplayer -

 

Separace části Audia z Videa s korekcí Basů a Výšek

Příklad separace úseku zvuku (od 12,5 sec. po dobu 180 sec) do mp3 souboru s korekcí basů a výšek

ffmpeg -y -ss 12.5 -t 180 -i videosoubor_zdroj.mp4 -vcodec copy -preset veryfast \
-acodec libmp3lame -af "bass=gain=3,treble=gain=-10:frequency=8000" -b:a 128k -ac 2 cílový_soubor.mp3

 

Úprava hlasitosti videa

Příklad zeslabení hlasitosti ve video souboru o 12dB

ffmpeg -y -i videosoubor_zdroj.mp4 -vcodec copy -filter:a "volume=-12dB" cílový_soubor.mp4

 

Klíčování webkamery do obrázku s výstupem do virtuální kamery

prvně, vytvořit si virtuální webkameru  /dev/video10 a do této posílat klíčované video z fyzické webkamery /dev/video0 na pozadí tvořené obrázkem Picture.jpg .

ffmpeg -nostdin \
-i 'Picture.jpg' \
-f v4l2 -input_format mjpeg -video_size 1280x720 -i /dev/video0 \
-filter_complex "\
[0:v]scale=1280x720[bg];\
[1:v]scale=1280x720,chromakey=color=#326964:0.07:0.02,fps=30[fg];\
[bg][fg]overlay"\
-crf 28 -deinterlace -preset ultrafast \
-f v4l2 -pix_fmt yuv420p /dev/video10

Zobrazení virtuální kamery /dev/video10

ffplay /dev/video10 -loglevel quiet -x 960 -y 540 -window_title "Zobrazení virtuální kamery /dev/video10"