Tecnologia e non solo

aprile 13, 2013

FFmpeg: concatenare (unire) più video col filtro concat

Filed under: Video — telperion @ 3:54 pm

FFmpeg dalla versione 1.1 include il filtro concat (oltre al protocollo ed al demuxer concat)
che permette di unire diversi file video non omogenei, scalandoli ed applicando vari filtri (rumore, deinterlacciamento eccetera), e ricodificando il tutto in un file finale.


Esempio:


ffmpeg -f lavfi -i \
" \
movie=1.mp4, scale=640:360,setdar=16/9,hqdn3d=4 [v1] ; amovie=1.mp4 [a1] ; \
movie=2.avi, scale=640:360,setdar=16/9 [v2] ; amovie=2.avi [a2] ; \
movie=3.flv, scale=640:360,setdar=16/9 [v3] ; amovie=3.flv [a3] ; \
[v1] [v2] [v3] concat=n=3 [out0] ; \
[a1] [a2] [a3] concat=n=3:v=0:a=1 [out1] \
" \
-threads 4 -c:v libx264 -preset faster -tune film \
-x264opts ref=4:bframes=4:direct=auto:aq-strength=1.3 \
-c:a libaacplus -b:a 32k -ar 48k -ac 2 -f matroska \
-ar 48k -ac 2 -b:a 32k -b:v 900k out.mkv

Se invece dovete unire più video omogenei (stesse dimensioni e codec) senza ricodifica,
potete usare il demuxer concat creando un file

lista.txt

contenente

# this is a comment
file '/path/to/file1'
file '/path/to/file2'
file '/path/to/file3'

e poi eseguite:

ffmpeg -f concat -i lista.txt -c copy output

esempio:
lista.txt

# commento
file 1.avi
file 2.avi
file 3.avi

e poi

ffmpeg -f concat -i lista.txt -c copy out.avi

Maggiori info qui.

Annunci

%d blogger hanno fatto clic su Mi Piace per questo: