Stefano Sabatini, Multimedia con FF-mpeg Cagliari, 27 Ottobre 2007 1 ● Multimedia con FF-mpeg 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 d'uso di FF-mpeg
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007
1
● Multimedia con FF-mpegMultimedia 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 d'uso di FF-mpeg
Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007
2
● Principi di basePrincipi di base– I metodi di compressione generici (huffman, I metodi di compressione generici (huffman,
compressione basata su vocabolario) da soli non sono compressione basata su vocabolario) da soli non sono sufficienti/efficientisufficienti/efficienti
– Sfrutta le ridondanze spaziali (e.g. sfondo con colore Sfrutta le ridondanze spaziali (e.g. sfondo con colore uniforme) e temporali (e.g. sfondo fisso) presenti in uniforme) e temporali (e.g. sfondo fisso) presenti in un generico flusso video.un generico flusso video.
– Rende l'immagazzinamento e la trasmissione dei Rende l'immagazzinamento e la trasmissione dei flussi video fattibile dal punto di vista economico e flussi video fattibile dal punto di vista economico e tecnologicotecnologico
– Può essere con perdita di informazione o senza Può essere con perdita di informazione o senza perdita di informazioneperdita di informazione
– Realizza un compromesso tra risorse computazionali Realizza un compromesso tra risorse computazionali richieste, livello di compressione ottenuto, qualitàrichieste, livello di compressione ottenuto, qualità
Compressione video
Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007
3
Contenitori multimediali e flussi
● Il formato del contenitore multimediale definisce come “multiplexare” molti flussi monomediali in un'unico flusso o file “Multimediale”
● Ciascun contenitore multimediale presenta delle limitazioni
Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007
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 multimediali
Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007
5
FF-mpeg
● Caratteristiche – 2– Uno degli obiettivi del progetto è quello di fornire
documentazionedocumentazione e supporto per il maggior numero possibile di formati fornendo al tempo stesso un'implementazione funzionante di codifica/decodifica dei vari formati (preservazionepreservazione dei contenuti digitali nei secoli a venire)
– Ingegnerizzazione a rovescioIngegnerizzazione a rovescio (reverse enginnering) di molti formati proprietari (e.g. WMV, RV)
– Progetti innovativi:● SnowSnow● NutNut
Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007
6
FF-mpeg● Modello di sviluppo
– Non vengono rilasciate release formali, l'ultima “versione” è considerato l'ultimo checkout SVN
– Le patch sono discusse e approvate nella mailing-list ffmpeg-develffmpeg-devel, quindi (eventualmente) applicate
– 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
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
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:
Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007
9
Installazione di FF-mpeg - 2
● Christian Marillat mantiene dei pacchetti deb per sistemi basati su Debian:– deb http://www.debian-multimedia.org/ lenny main
Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007
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
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 list
Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007
12
ffmpeg – determinare il tipo di un file multimediale
● Da immagini a un flusso video:– ffmpeg -f image2 -i images-%d03.jpeg -r 1 -vcodec mpeg4
movie.avi
Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007
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.mp4
Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007
Stefano Sabatini, Multimedia con FF-mpegCagliari, 27 Ottobre 2007
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_2007