●   Multimedia con FF-mpeg    ●   Introduzione ad alcuni concetti della compressione        video         –   contenitore ...
Compressione video   ●   Principi di base        –   I metodi di compressione generici (huffman,            compressione b...
Contenitori multimediali e flussi    ●   Il formato del contenitore multimediale definisce come        “multiplexare” molt...
FF-mpeg   ●   Caratteristiche - 1        –   Nasce nel 2000 (Fabrice Bellard), inizialmente per            implementare un...
FF-mpeg   ●   Caratteristiche – 2        –   Uno degli obiettivi del progetto è quello di fornire            documentazion...
FF-mpeg   ●   Modello di sviluppo        –   Non vengono rilasciate release formali, lultima “versione”            è consi...
FF-mpeg    ●   Alcuni progetti che usano FF-mpeg         –   FFD-show         –   M-player         –   Myth-TV         –  ...
Installazione di FF-mpeg - 1    ●   Data la natura sperimentale di FF-mpeg, solo versioni        recenti (snapshot SVN) so...
Installazione di FF-mpeg - 2    ●   Christian Marillat mantiene dei pacchetti deb per        sistemi basati su Debian:    ...
ffmpeg: cosa è possibile fare    ●   ffmpeg: coltellino svizzero per processare un flusso/file        multimediale    ●   ...
ffmpeg - autodocumentazione    ●   RTFM:         –   man ffmpeg         –   ffmpeg -h    ●   RTFS (Read The Fine Source)  ...
ffmpeg – determinare il tipo di un         file multimediale    ●   ffmpeg -i <input file>    ●   ffprobe -show_files -sho...
ffmpeg – processazione di file         audio    ●   Conversione a MP3 (-ab fino a 32Kbps):         –   ffmpeg -i file.wav ...
ffmpeg – processazione di file  audio    ●   Estrazione della traccia audio di un file multimediale:         –   ffmpeg -i...
ffmpeg – processazione di file  video      ●   Estrarre le immagioni da un flusso video:           –   Estrazione di tutti...
Transcodifica di file multimediali    ●   Conversione di un file multimedia a un formato        riproducibile da un telefo...
Processazione di file multimediali    ●   Codifica a qualità costante         –   ffmpeg -i movie.avi -qscale 2 movie.mp4 ...
Filtraggio di contenuti         multimediali    ●   Applicare degli effetti (filtri) al video in input:         –   V-hook...
Acquisizione da sorgenti    ●   libavsources: non esiste ma esistono implementate in        libavformat funzionalità di ac...
Google Summer of Code e FF-      mpeg●   Da un paio di anni FF-mpeg partecipa al Progetto Google    Summer of Code:      –...
Link utili    ●   Sito web di FFmpeg:        http://ffmpeg.mplayerhq.hu/index.html    ●   Mailing list di FFmpeg (ffmpeg-u...
Grazie per lattenzione!Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007                                  ...
Upcoming SlideShare
Loading in …5
×

Multimedia con FFmpeg

1,352 views

Published on

Introduzione al multimedia e a FFmpeg.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,352
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
14
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Multimedia con FFmpeg

  1. 1. ● Multimedia con FF-mpeg ● Introduzione ad alcuni concetti della compressione video – contenitore multimediale e flussi monomediali – compressione video ● Introduzione a FF-mpeg (storia, modello di sviluppo) ● Esempi duso di FF-mpegStefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 1
  2. 2. Compressione video ● Principi di base – I metodi di compressione generici (huffman, compressione basata su vocabolario) da soli non sono sufficienti/efficienti – Sfrutta le ridondanze spaziali (e.g. sfondo con colore uniforme) e temporali (e.g. sfondo fisso) presenti in un generico flusso video. – Rende limmagazzinamento e la trasmissione dei flussi video fattibile dal punto di vista economico e tecnologico – Può essere con perdita di informazione o senza perdita di informazione – Realizza un compromesso tra risorse computazionali richieste, livello di compressione ottenuto, qualitàStefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 2
  3. 3. Contenitori multimediali e flussi ● Il formato del contenitore multimediale definisce come “multiplexare” molti flussi monomediali in ununico flusso o file “Multimediale” ● Ciascun contenitore multimediale presenta delle limitazioni ● Esempi: Avi, Mpeg-4:14 (Quicktime, 3GP), ASF, Matroska, Nut, Ogg ● Strumenti diagnostici: ffmpeg -i, mpeg4ipStefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 3
  4. 4. FF-mpeg ● Caratteristiche - 1 – Nasce nel 2000 (Fabrice Bellard), inizialmente per implementare una libreria di codifica/decodifica Mpeg – Libreria multipiattaforma (Linux, Be-OS, Mac, Windows) – Strumenti a linea di comando che usano le librerie: ffmpeg, ffplay, ffserver – Software libero (GPL/LGPL) – Efficiente (ottimizzata per varie piattaforme) – Progettata per supportare potenzialmente tutti i possibili formati multimediali (contenitori e flussi audio/video/testuali) e fornire uno strato di astrazione generico per gestire flussi multimedialiStefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 4
  5. 5. FF-mpeg ● Caratteristiche – 2 – Uno degli obiettivi del progetto è quello di fornire documentazione e supporto per il maggior numero possibile di formati fornendo al tempo stesso unimplementazione funzionante di codifica/decodifica dei vari formati (preservazione dei contenuti digitali nei secoli a venire) – Ingegnerizzazione a rovescio (reverse enginnering) di molti formati proprietari (e.g. WMV, RV) – Progetti innovativi: ● Snow ● NutStefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 5
  6. 6. FF-mpeg ● Modello di sviluppo – Non vengono rilasciate release formali, lultima “versione” è considerato lultimo checkout SVN – Le patch sono discusse e approvate nella mailing-list ffmpeg-devel, quindi (eventualmente) applicate ffmpeg-devel – I manutentori principali si occupano di effetuare la revisione delle patch proposte ed eventualmente della loro applicazione – Si può diventare sviluppatori “ufficiali” (permesso di scrittura SVN) per richiesta esplicita di mantenimento di un modulo o per “investitura” diretta – Dal 2006 partecipa al progetto “Google Summer of Code”Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 6
  7. 7. FF-mpeg ● Alcuni progetti che usano FF-mpeg – FFD-show – M-player – Myth-TV – Open-H323 – Video-lan (VLC media player) – Xine – Molti servizi commerciali (YouTube?)Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 7
  8. 8. Installazione di FF-mpeg - 1 ● Data la natura sperimentale di FF-mpeg, solo versioni recenti (snapshot SVN) sono considerate “supportate”; per questo è necessario installare da sorgenti. – Procedura: ● svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg ● ./configure --help; ./configure --bla-bla ● make ● make install ● In molti casi è necessario installare librerie ed header esterni per abilitare il supporto a formati non supportati nativamente: ● es.: sudo apt-get install libmp3lame-dev libmp3lame libvorbis libvorbis-devStefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 8
  9. 9. Installazione di FF-mpeg - 2 ● Christian Marillat mantiene dei pacchetti deb per sistemi basati su Debian: – deb http://www.debian-multimedia.org/ lenny mainStefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 9
  10. 10. ffmpeg: cosa è possibile fare ● ffmpeg: coltellino svizzero per processare un flusso/file multimediale ● muxing, demuxing, transcodifica ● acquisizione da sorgenti varie (/dev/audio, x11grab) ● riproduzione con ffplay (player multimediale minimale) ● streaming con ffstream (attualmente non funziona!!) ● filtraggio a livello di transcodifica con filtri video (V- hook: deprecati, libavfilter): es. watermarking ● non è uno editor multimediale (vedi cinelerra, kino)Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 10
  11. 11. ffmpeg - autodocumentazione ● RTFM: – man ffmpeg – ffmpeg -h ● RTFS (Read The Fine Source) ● Ottenere la lista dei formati (contenitori multimediali e flussi media) supportati: – ffmpeg -formats – ffmpeg -pix_fmt listStefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 11
  12. 12. ffmpeg – determinare il tipo di un file multimediale ● ffmpeg -i <input file> ● ffprobe -show_files -show_streams <input files>Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 12
  13. 13. ffmpeg – processazione di file audio ● Conversione a MP3 (-ab fino a 32Kbps): – ffmpeg -i file.wav -ab 128k -acodec libmp3lame file.mp3 – conversione con downmixing: ● ffmpeg -i file.wav -ab 128k -acodec libmp3lame -ac 1 file.mp3 ● Conversione a vorbis (VBR: -aq variabile) – ffmpeg -i file.wav -aq 30 -acodec vorbis file.vorbis ● Conversione ad AAC (Advanced Audio Codec file): – ffmpeg -i file.wav -ab 128k -acodec libfaac file.aacStefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 13
  14. 14. ffmpeg – processazione di file audio ● Estrazione della traccia audio di un file multimediale: – ffmpeg -i “Kylie Minogue – Slow.flv” -vn -acodec vorbis -sameq “Kylie Minogue – Slow.ogg” – vedi anche youtube-download: http://thread.gmane.org/gmane.comp.video.ffmpeg.user/11723 ● non è attualmente supportata la possibilità di filtrare flussi audio (patches are welcome)Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 14
  15. 15. ffmpeg – processazione di file video ● Estrarre le immagioni da un flusso video: – Estrazione di tutti i frame video: ● ffmpeg -i movie.avi -sameq -f image2 movie- images/image-%03d.jpeg – Con framerate diverso dalloriginale: ● ffmpeg -i movie.avi -f image2 -sameq -r 1 movie- images/image-%03d.jpeg ● Da immagini a un flusso video: – ffmpeg -f image2 -i images-%d03.jpeg -r 1 -vcodec mpeg4 movie.aviStefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 15
  16. 16. Transcodifica di file multimediali ● Conversione di un file multimedia a un formato riproducibile da un telefono cellulare (video: H263, audio: AMR NB o AMR WB, contenitore: 3GP): – ffmpeg -i movie.avi -b 37k -vcodec h263 -acodec libamr_nb -s qcif movie.3gp ● Conversione di un file multimediale a un formato riproducibile da un I-pod (video: Mpeg-4:2, audio: AAC, contenitore: Mpeg-4:14): – ffmpeg -i movie.avi -acodec libfaac -ab 128k -vcodec mpeg4 -flags trell+mv4 -s 320x180 movie.mp4Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 16
  17. 17. Processazione di file multimediali ● Codifica a qualità costante – ffmpeg -i movie.avi -qscale 2 movie.mp4 ● Codifica a bitrate costante – ffmpeg -i movie.avi -b 1000k -minrate 1000k -maxrate 1000k -bufsize 2000k movie.mp4 ● ffmpeg dispone di centinaia di opzioni per controllare nel dettaglio il processo di transcodificaStefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 17
  18. 18. Filtraggio di contenuti multimediali ● Applicare degli effetti (filtri) al video in input: – V-hook filter (deprecati!! Vedi libavfilter) ● null filter ● watermarking filter ● imlib filter (ad esempio per generare sottotitoli) – libavfilter: ancora non inserita nel ramo principale del codice di FF-mpeg: ● svn checkout svn://svn.mplayerhq.hu/soc/libavfilter ● Lattuale architettura di libavfilter non supporta ancora il filtraggio di flussi audio (e neanche testuali)Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 18
  19. 19. Acquisizione da sorgenti ● libavsources: non esiste ma esistono implementate in libavformat funzionalità di acquisizione da vari dispositivi. Esempi: – ffmpeg -f x11grab -s 1280x800 -i :0.0 -r 5 xgrab.avi – ffmpeg -f oss -i /dev/audio audiograb.avi – ffmpeg -f oss -i /dev/audio -f x11grab -s 1650x1050 -r 5 -i :0.0 screencast.avi ● lettura da pipe: – ffmpeg -t 10 -s qcif -f rawvideo -pix_fmt rgb24 -r 25 -i /dev/urandom -y noise.mpegStefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 19
  20. 20. Google Summer of Code e FF- mpeg● Da un paio di anni FF-mpeg partecipa al Progetto Google Summer of Code: – http://code.google.com/soc/2007 – http://wiki.multimedia.cx/index.php?title=Summer_Of_Code_2007Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 20
  21. 21. Link utili ● Sito web di FFmpeg: http://ffmpeg.mplayerhq.hu/index.html ● Mailing list di FFmpeg (ffmpeg-user e ffmpeg-devel) (English only!): http://ffmpeg.mplayerhq.hu/mailinglists.html ● Wiki di Mike Melanson sul multimedia: http://wiki.multimedia.cx/index.php?title=Main_Page ● Pagina di wikipedia sul multimedia: http://en.wikipedia.org/wiki/MultimediaStefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 21
  22. 22. Grazie per lattenzione!Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007 22

×