Mar 052011
 

ffmpegFFmpeg 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:

flattr this!

  11 Responses to “7 Trucchi con ffmpeg”

  1. 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.

  2. Nice guide. I always heard of the great power of ffmpeg but never saw anyone explain it such a simple language. Great job. Bookmarked. :)

  3. “First, check you format”? :P

  4. Excellent examples for a variety of uses of ffmpeg – a great way to get started. Thanks.

  5. [...] 原文:here 翻译:wowubuntu [...]

  6. Wonderful article on ffmpeg.

  7. 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,

  8. Great post for a beginner. Thanks for sharing. :-)

 Leave a Reply

(required)

(required)


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>