09 novembre 2021

ffmpeg: varie manipolazioni su un video usando ffmpeg. Rimuovere l'audio. Unire due o più video. Stampare su video i sottotitoli.

In questo articolo vedremo come fare diverse manipolazioni sui video con ffmpeg. Vedremo come rimuovere l'audio, unire due o più video, infine scaricare i sottotili da un video youtube e scriverli sul video stesso.

Rimuoviamo l'audio da un video

Vediamo quindi come rimuovere l'audio usando ffmpeg da un video di esempio come segue:

$ ffmpeg -i video_di_esempio.mp4 -c copy -an video_senza_audio.mp4


Unire due o più video

In questo secondo paragrafo vediamo come unire due o più video in uno unico. Per concatenare due o più video bisogna prima creare un file di testo con la lista dei video con annesso il relativo PATH del file. E poi lanciare ffmpeg con i parametri per dargli in pasto il file che contiene i path dei file da concatenare. Nel seguente modo.

login@laptop:~$ echo "file '/home/login/video_n1'" >> mieivideo.txt
login@laptop:~$ echo "file '/home/login/video_n2'" >> mieivideo.txt
login@laptop:~$ echo "file '/home/login/video_n3'" >> mieivideo.txt

A questo punto bisogna lanciare ffmpeg con il file di testo con la lista dei file, così:

$ ffmpeg -safe 0 -f concat -i mieivideo.txt -c copy video_unito.mp4


Scaricare i sottotitoli da un video youtube e stamparli sul video stesso.

Prima di tutto scarichiamo il video con youtube-dl:

$ youtube-dl "https://youtu.be/xxxxxxxxx"

Poi scarichiamo i sottotitoli, così:

$ youtube-dl --all-subs --skip-download "https://youtu.be/xxxxxxxxx"

Quindi nella directory dove vi trovare ci sarà un file .vtt che contiene i sottotitoli. A questo punto procediamo col imprimere i sottotitoli nel video e crearne uno nuovo, ma prima rinominate il file dei sottotitoli in qualcosa tipo subtitles.IT.vtt. Quindi procedete come segue per stampare i sottotitoli sul video:

$ ffmpeg -i miovideo.mp4 -vf subtitles=subtitles.it.vtt video_nuovo.mp4