FFmpeg si può considerare il coltellino svizzero delel applicazioni audio e video, con tantissime opzioni e possibilità di utilizzo. Probabilmente lo avete già installato sul vostro computer come dipendenza di un programma che utilizzate per vedere video o ascoltare della musica. in questo articolo vedremo alcuni utilizzi da linea di comando senza utilizzare applicazioni grafiche.
Ma prima una presentazione di ffmpeg:
FFmpeg è una suite software completa per registrare, convertire e riprodurre audio e video. Si basa su libavcodec, libreria per la codifica audio/video. FFmpeg è sviluppato su Linux, ma può essere compilato ed eseguito su qualunque dei principali sistemi operativi, incluso Microsoft Windows. FFmpeg è pubblicato sotto la GNU Lesser General Public License 2.1+ o GNU General Public License 2+ (a seconda delle opzioni che sono abilitate)
Componenti
Il progetto è composto da diversi componenti:
- ffmpeg è uno strumento da riga di comando per convertire un file video a un altro. Inoltre supporta la cattura e la codifica in tempo reale dalla scheda TV.
- ffserver è uno streaming server multimediale HTTP per riproduzioni live in broadcast. Il time shifting di stream live in broadcast è supportato.
- ffplay è un semplice media player basato su SDL e le librerie FFmpeg
- ffprobe è uno strumento a riga di comando per mostrare informazioni sui file multimediali.
- libavcodec è una libreria contenente tutti gli encoder/decoder di FFmpeg. Molti codec sono stati sviluppati dall’inizio per garantire le migliori performance e la massima riusabilità del codice.
- libavformat è una libreria contenente parser e generatori condivisi per tutti i formati audio/video.
- libavutil è una libreria di supporto contenente routine comuni alle diverse parti di FFmpeg. la libreria include adler32, crc, md5, sha1, lzo decompressor, Base64 encoder/decoder, des encrypter/decrypter, rc4 encrypter/decrypter and aes encrypter/decrypter.
- libpostproc è una libreria che contiene le routine di post elaborazione video.
- libswscale è una libreria che contiene le routine di conversione per scalare un’immagine.
- libavfilter è la sostituta per vhook che permette il video/audio di essere modificato o esaminato tra il decoder e l’encoder.
In primo luogo, controllare i formati disponibili
FFmpeg supporta la maggior parte dei formati più diffusi, non abbiamo bisogno di preoccuparsi molto di questo. I formati supportati da FFmpeg includono MPEG, MPEG-4 (Divx), ASF, AVI, Real Audio / Video e Quicktime. Per vedere un elenco di tutti i codec/formati supportati da FFmpeg, eseguire il seguente comando
ffmpeg -formats
Questo stamperà un lungo elenco di formati, a sinistra di ogni formato vedrete una E (significa che può codificare in quel formato) e/o una D (significa che può decodificare quel formato)
#1 Conversione Audio
Diciamo che abbiate il file audio denominato my_audio.wav e desiderate convertirlo in un mp3.
ffmpeg -i my_audio.wav my_audio.mp3 |
-i è il file di input
Davvero facile, no ? modificate l’estensione del file di output con qualsiasi formato supportato per ottenere diversi formati.
#2 Conversione Video
L’uso base è come l’esempio visto per l’audio quindi potete semplicemente scrivere:
ffmpeg-i my_video.flv my_video.mpeg |
Questo convertirà il file my_video.mpeg in my_video.flv, ma è anche possibile modificare le dimensioni di un video:
ffmpeg -i my_video.mpeg -s 500×500 my_video.flv |
-s ‘size’ imposta la risoluzione del formato video (larghezza x altezza)
Questo ti permette di convertire il file my_video.mpeg a my_video.flv e ridimensionare la risoluzione video a 500×500
#3 Estrarre immagini da un video
A volte è utile estrarre alcune immagini da un film, e ffmpeg può farlo facilmente:
ffmpeg -i test.mpg image%d.jpg |
Questo creerà 25 immagini per ogni secondo, ma potrebbe servirci avere più o meno immagini, questo si può ottenere con il parametro -r:
ffmpeg -i test.mpg -r 1 image%d.jpg |
Con questo comando si avrà 1 immagine per ogni secondo.
Start e durata
Si può anche dare un orario di inizio e la durata con questi parametri:
-ss posizione Si posiziona al tempo espresso in secondi. La sintassi “hh:mm:[. xxx] ss” è anche supportata.
-t durata Limitare la sequenza di trascodifica/cattura video della durata specificata in secondi. La sintassi “hh:mm:[. xxx] ss” è anche supportata.
Questo comando prenderà 25 immagini ogni secondo iniziando al decimo secondo, e proseguendo per 5 secondi
ffmpeg -i test.mpg -r 25 -ss 00:00:10 -t 00:00:05 images%05d.png |
#4 Estrarre audio da un video
Con ffmpeg è anche possibile mescolare video e audio, quindi è possibile estrarre un brano mp3 da un video:
ffmpeg -i video.avi -f mp3 audio.mp3 |
In questo esempio abbiamo usato il flag -f.
-f fmt Forza il formato indicato.
Per ottenere lo stesso risultato è anche possibile usare l’opzione per disabilitare l’acquisizione video:
-vn Disabilita la registrazione video
ffmpeg -i video.avi -vn audio.mp3 |
#5 Creare uno screencast
Con ffmpeg è anche possibile creare un semplice screencast , catturando il vostro desktop.
Per fare questo useremo alcuni flag mostrati negli esempi precedenti:
ffmpeg -f x11grab -r 25 -s wxga -i :0.0 /tmp/outputFile.mpg |
Nota: 0.0 è il numero display.screen del server X11, come la variabile d’ambiente DISPLAY.
Questo comando salverà 25 frame per secondo del vostro schermo WXGA (oppure si può usare -s con una risoluzione come -s 1024×768) e li metterà in un video mpg in /tmp.
#6 Unire delle immagini in un film
Diciamo che avete un sacco di immagini chiamate `img001.jpg ‘,` img002.jpg’ e così via in sequenza, è possibile convertirle in un film con questo comando:
ffmpeg -f image2 -i img%d.jpg /tmp/a.mpg |
#7 Catturare un filmato dalla webcam
Per registrare un video eseguire ffmpeg con argomenti come questi:
ffmpeg -f video4linux2 -s 320x240 -i /dev/video0 out.mpg |
per avere anche l’audio utilizzare:
ffmpeg -f oss -i /dev/dsp -f video4linux2 -s 320x240 -i /dev/video0 out.mpg |
Questi sono solo alcuni esempi, ffmpeg può fare moltissimo nel campo dell’editing audio e video, ed in rete si trovano tantissimi esempi.
[amazon_enhanced asin=”0596100760″ price=”All” background_color=”332610″ link_color=”FFFFFF” text_color=”D4CE99″ /]
Riferimenti:
Sito del progetto con documentazione http://www.ffmpeg.org/ffmpeg-doc.html
Canale youtube dedicato a ffmpeg http://www.youtube.com/view_play_list?p=E0AACC679489E4ED
Popular Posts:
- None Found
I have tried to convert pal to ntsc video 720×480.
the conversion seems to go ok but the resulting
dvd wont play on a ntsc dvd player.
Hello Patrick,
Sorry but i’ve never tried that conversion, a good guide seem this one:
http://cromwell-intl.com/technical/pal-to-ntsc.html
Nice guide. I always heard of the great power of ffmpeg but never saw anyone explain it such a simple language. Great job. Bookmarked. 🙂
“First, check you format”? 😛
Ehm…corrected 😀
Excellent examples for a variety of uses of ffmpeg – a great way to get started. Thanks.
[…] 原文:here 翻译:wowubuntu […]
[…] 原文:here 翻译:wowubuntu […]
Wonderful article on ffmpeg.
hi, nice article and video, hi, I am .net developer, I am creating web application for convert video,I just need to ask can i get List of command lines for convert mp4 to avi, avi to mp4, mp4 to flv, flv to mp4,mp4 to 3gp.
thanks,
Great post for a beginner. Thanks for sharing. 🙂