SlideShare une entreprise Scribd logo
1  sur  31
Télécharger pour lire hors ligne
Presentazione
e storia

Introduzione
                  FFmpeg - lo strumento multimediale
ai concetti del
multimedia                    universale
Architettura
del progetto

Installazione                Stefano Sabatini
Esempi d’uso
dei progammi
                       mailto:stefasab@gmail.com
a linea di
comando
                             Java User Group Sardegna
Introduzione
ai filtri di
FFmpeg

Esempi d’uso
                      JUGS Summer Labs - 1 Luglio 2011
della libreria

Sviluppi futuri

Appendici

                                                         1 / 31
Sommario


                  1   Presentazione e storia
Presentazione
e storia          2   Introduzione ai concetti del multimedia
Introduzione
ai concetti del   3   Architettura del progetto
multimedia

Architettura
del progetto
                  4   Installazione
Installazione
                  5   Esempi d’uso dei progammi a linea di comando
Esempi d’uso
dei progammi
a linea di        6   Introduzione ai filtri di FFmpeg
comando

Introduzione      7   Esempi d’uso della libreria
ai filtri di
FFmpeg

Esempi d’uso
                  8   Sviluppi futuri
della libreria

Sviluppi futuri   9   Appendici
Appendici

                                                                     2 / 31
Presentazione



Presentazione
                     Progetto software multipiattaforma (Linux, Mac,
e storia             Windows, embedded, Android, etc...)
Introduzione
ai concetti del      Contiene strumenti a linea di comando che usano le
multimedia
                     librerie: ffmpeg, ffplay, ffprobe, ffserver
Architettura
del progetto
                     Contiene librerie in C per gestire il multimedia
Installazione
                     programmaticamente.
Esempi d’uso
dei progammi         Software libero (LGPL/GPL)
a linea di
comando
                     Efficiente (ottimizzata per varie piattaforme)
Introduzione
ai filtri di          Molti formati sono supportati tramite
FFmpeg

Esempi d’uso
                     ingegnerizzazione a rovescio (reverse engineering)
della libreria       (esempi: WMV, RV)
Sviluppi futuri

Appendici

                                                                        3 / 31
Obiettivi del progetto



Presentazione
e storia

Introduzione
ai concetti del
multimedia
                      Supporto universale e nativo al multimedia:
Architettura
                      supportare potenzialmente tutti i possibili formati
del progetto          multimediali
Installazione

Esempi d’uso
                      Supporto completo a livello di libreria: fornire uno
dei progammi          strato di astrazione completo per gestire flussi
a linea di
comando               multimediali.
Introduzione
ai filtri di
FFmpeg

Esempi d’uso
della libreria

Sviluppi futuri

Appendici

                                                                             4 / 31
Storia

                      2000: nasce il progetto (Fabrice Bellard), inizialmente
                      per implementare una libreria di codifica/decodifica
Presentazione
e storia              MPEG. Viene integrata come motore multimediale di
Introduzione          MPlayer, il progetto è ospite di MPlayer
ai concetti del
multimedia            2003: Fabrice Bellard abbandona il progetto, la
Architettura          maintainership viene passata informalmente a Michael
del progetto

Installazione
                      Niedermayer.
Esempi d’uso
                      Marzo 2009: il primo rilascio ufficiale, corrispondente
dei progammi
a linea di
                      alla versione 0.5
comando
                      Maggio 2010: rilascio della version 0.6
Introduzione
ai filtri di           Gennaio 2011: a seguito di contestazioni verso la
FFmpeg
                      leadership del progetto, un gruppo di sviluppatori prima
Esempi d’uso
della libreria        prende controllo del server e crea un repository Git
Sviluppi futuri       alternativo, in seguito crea un fork (Libav).
Appendici             Giugno 2011: rilascio delle versioni 0.7 e 0.8
                                                                             5 / 31
Status



Presentazione         Attualmente esistono due progetti distinti con
e storia
                      repository distinti, uno per FFmpeg e uno per Libav.
Introduzione
ai concetti del
multimedia
                      Esiste uno scambio di codice tra i due progetti (tutte
Architettura
                      le modifiche su Libav vengono quotidianamente portate
del progetto          su FFmpeg, le modifiche di FFmpeg vengono portate a
Installazione
                      Libav caso per caso)
Esempi d’uso
dei progammi          I due progetti tendono a divergere a livello di API ed ABI
a linea di
comando
                      Possibilità di conflitto a livello di distribuzioni
Introduzione
ai filtri di           (dipende dalla scelta dei vari progetti che scelgono una
FFmpeg
                      dipendenza piuttosto che un’altra, sia per motivi tecnici
Esempi d’uso
della libreria        o politici)
Sviluppi futuri

Appendici

                                                                              6 / 31
Modello di sviluppo



Presentazione         Nonostante le release formali, viene incoraggiato l’uso
e storia
                      dell’ultima versione di sviluppo (Git)
Introduzione
ai concetti del       Il codice sorgente è gestito tramite Git (dal Gennaio del
multimedia

Architettura
                      2011)
del progetto
                      Le patch sono discusse e approvate nella mailing-list
Installazione
                      ffmpeg-devel, quindi (eventualmente) applicate
Esempi d’uso
dei progammi
a linea di
                      I manutentori principali si occupano di effetuare la
comando
                      revisione delle patch proposte ed eventualmente della
Introduzione
ai filtri di           loro applicazione
FFmpeg
                      Dal 2006 partecipa al progetto Google Summer of
Esempi d’uso
della libreria        Code
Sviluppi futuri

Appendici

                                                                                7 / 31
Organizzazione



Presentazione
e storia

Introduzione
ai concetti del
multimedia

Architettura      Non esiste un organismo ufficiale che gestisce il progetto e
del progetto
                  detiene il copyright sul codice, in futuro forse sarà la Free
Installazione
                  Multimedia Technology Foundation (Work in progress)
Esempi d’uso
dei progammi
a linea di
comando

Introduzione
ai filtri di
FFmpeg

Esempi d’uso
della libreria

Sviluppi futuri

Appendici

                                                                              8 / 31
Concetti



Presentazione         pixel (picture element)
e storia
                      audio sample (campione audio)
Introduzione
ai concetti del
multimedia
                      immagine
Architettura          frame A/V
del progetto

Installazione         pacchetto
Esempi d’uso
dei progammi
                      stream (flusso)
a linea di
comando               decoder/encoder
Introduzione
ai filtri di
                      muxer/demuxer
FFmpeg
                      protocollo
Esempi d’uso
della libreria        filtro
Sviluppi futuri

Appendici

                                                      9 / 31
Gerarchia degli elementi multimediali



Presentazione
e storia

Introduzione
ai concetti del       file o flusso o stream multimediale: contiene una
multimedia
                      serie di flussi multimediali (audio, video, testo)
Architettura
del progetto          flusso o stream: contiene pacchetti di dati (codificati)
Installazione
                      pacchetto: contiene uno o piu`
                                                   frame A/V/T
Esempi d’uso
dei progammi
a linea di
                      frame: contiene un’immagine, una sequenza di
comando
                      caratteri, una serie di campioni audio
Introduzione
ai filtri di
FFmpeg

Esempi d’uso
della libreria

Sviluppi futuri

Appendici

                                                                           10 / 31
Librerie



Presentazione
e storia
                      libavutil routine di base
Introduzione
ai concetti del
multimedia
                    libswscale libreria per la conversione e lo scaling di
Architettura
                               immagini
del progetto
                     libavfilter libreria di filtri A/V
Installazione

Esempi d’uso       libavcodec libreria di codifica/decodifica
dei progammi
a linea di         libavformat libreria di muxing/demuxing/streaming
comando

Introduzione       libavdevice libreria per la cattura di flussi e l’output su
ai filtri di
FFmpeg
                               dispositivi
Esempi d’uso
della libreria

Sviluppi futuri

Appendici

                                                                                11 / 31
Relazione tra le librerie



Presentazione
e storia

Introduzione
ai concetti del
multimedia

Architettura
del progetto

Installazione

Esempi d’uso
dei progammi
a linea di
comando

Introduzione
ai filtri di
FFmpeg

Esempi d’uso
della libreria

Sviluppi futuri

Appendici

                                              12 / 31
Programmi



Presentazione
e storia

Introduzione
ai concetti del
multimedia           ffmpeg Usato per effettuare la transcodifica di
Architettura                file/stream
del progetto

Installazione
                       ffplay Semplice player basato su SDL
Esempi d’uso         ffprobe Strumento di analisi di file/stream multimediali
dei progammi
a linea di
comando
                     ffserver Server di transcodifica
Introduzione
ai filtri di
FFmpeg

Esempi d’uso
della libreria

Sviluppi futuri

Appendici

                                                                           13 / 31
Installazione da sorgenti


                      Scaricamento dei sorgenti:
Presentazione
e storia          Example
Introduzione
ai concetti del   git clone git://git.videolan.org/ffmpeg.git ffmpeg
multimedia

Architettura
del progetto          Configurazione
Installazione

Esempi d’uso
                  Example
dei progammi
a linea di        configure –enable-libx264 –enable-frei0r –enable-gpl ...
comando

Introduzione
ai filtri di           Compilazione/Installazione
FFmpeg

Esempi d’uso      Example
della libreria

Sviluppi futuri   make -j4; make install
Appendici

                                                                            14 / 31
Usare l’auto-documentazione


                      Mostra la versione usata
Presentazione
e storia          Example
Introduzione
ai concetti del   ffmpeg -version
multimedia

Architettura
del progetto          Mostra l’aiuto in linea
Installazione
                  Example
Esempi d’uso
dei progammi
a linea di        ffmpeg -h
comando

Introduzione
ai filtri di
                      RTFM
FFmpeg

Esempi d’uso
                  Example
della libreria

Sviluppi futuri
                  man ffmpeg
Appendici

                                                 15 / 31
Mostra i formati supportati



Presentazione
e storia
                  Mostra i formati/codec/formati/filtri supportati
Introduzione
ai concetti del
multimedia        Example
Architettura
del progetto      ffmpeg -pixels
Installazione
                  ffmpeg -codecs
Esempi d’uso
dei progammi      ffmpeg -formats
a linea di
comando
                  ffmpeg -bsfs
Introduzione      ffmpeg -filters
ai filtri di
FFmpeg

Esempi d’uso
della libreria

Sviluppi futuri

Appendici

                                                                    16 / 31
Analizza il contenuto di un file


                      Mosta informazioni di base su un file:
Presentazione
e storia          Example
Introduzione
ai concetti del   ffprobe -show_format FILE
multimedia

Architettura
del progetto          Mosta i flussi contenuti in un file
Installazione
                  Example
Esempi d’uso
dei progammi
a linea di        ffprobe -show_streams FILE
comando

Introduzione          Mostra i pacchetti all’interno di un file
ai filtri di
FFmpeg

Esempi d’uso
                  Example
della libreria

Sviluppi futuri
                  ffprobe -show_packets FILE
Appendici

                                                                 17 / 31
Transcodifica

                      Comando base:
Presentazione
                  Example
e storia

Introduzione
                  ffmpeg -i INPUT OUTPUT
ai concetti del
multimedia
                      Comando generico:
Architettura
del progetto
                  Example
Installazione

Esempi d’uso      ffmpeg INPUT_OPTIONS -i INPUT OUTPUT_OPTIONS
dei progammi
a linea di        OUTPUT
comando

Introduzione
ai filtri di
                      Esempio concreto:
FFmpeg

Esempi d’uso
                  Example
della libreria

Sviluppi futuri
                  ffmpeg -ss 10 -t 10 -i INPUT.avi -vcodec libx264 -acodec
Appendici
                  libmp3lame out.mpg
                                                                             18 / 31
Cattura da dispositivo di input



Presentazione
e storia

Introduzione
ai concetti del   Example
multimedia

Architettura
del progetto
                  ffmpeg -f video4linux2 -i /dev/video0 OUTPUT
Installazione

Esempi d’uso      Example
dei progammi
a linea di
comando           ffmpeg -f x11grab -video_size vga -i :0.0 OUTPUT
Introduzione
ai filtri di
FFmpeg

Esempi d’uso
della libreria

Sviluppi futuri

Appendici

                                                                     19 / 31
Introduzione



Presentazione
e storia

Introduzione          libavfilter nasce come sostituto di VHOOK, progetto
ai concetti del
multimedia            GSoC 2007
Architettura
del progetto          integrazione recente, integrato in ffmpeg a partire
Installazione         dalla release 0.7/0.8
Esempi d’uso
dei progammi
                      ancora in fase sperimentale, API/ABI instabile
a linea di
comando               l’integrazione audio è ancora in via di sviluppo (GSoC
Introduzione          2010, GSoC 2011)
ai filtri di
FFmpeg

Esempi d’uso
della libreria

Sviluppi futuri

Appendici

                                                                               20 / 31
Caratteristiche



Presentazione
e storia

Introduzione
ai concetti del       sistema di negoziazione dei formati - minimizza
multimedia
                      conversioni
Architettura
del progetto          permette di gestire grafi di filtri
Installazione
                      supporta la generazione di flussi video (mediante
Esempi d’uso
dei progammi          sorgenti) e elementi lavandino (sink)
a linea di
comando
                      transmedia filtering
Introduzione
ai filtri di
FFmpeg

Esempi d’uso
della libreria

Sviluppi futuri

Appendici

                                                                         21 / 31
Anatomia di un filtro



Presentazione
e storia

Introduzione
ai concetti del       Ogni filtro contiene 0 o più input and output pad
multimedia

Architettura
                      Ogni pad è associato a un tipo di input e supporta uno
del progetto          o più formati (A/V)
Installazione
                      Input e output possono essere difformi (differenti
Esempi d’uso
dei progammi          media, differente grandezza / formato gestito)
a linea di
comando
                      input e output pad sono uniti da link
Introduzione
ai filtri di
FFmpeg

Esempi d’uso
della libreria

Sviluppi futuri

Appendici

                                                                           22 / 31
Esempi di grafi di filtri


                  Example
Presentazione
e storia
                  color,vflip,hflip,nullsink
Introduzione
ai concetti del
multimedia

Architettura
                  Example
del progetto

Installazione
                  movie=logo.png [logo]; color=blue [color];
Esempi d’uso
                  [color][logo] overlay [out]
dei progammi
a linea di
comando
                  Example
Introduzione
ai filtri di
FFmpeg            movie=input.flv, split[in1][in2];
Esempi d’uso      [in1] scale=100:-1 [out1];
della libreria
                  [in2] negate [out2]
Sviluppi futuri

Appendici

                                                               23 / 31
Overlay di un logo



Presentazione
e storia

Introduzione
ai concetti del   Overlay di un logo:
multimedia

Architettura      Example
del progetto

Installazione     ffplay -vf
Esempi d’uso
dei progammi
                  movie=jugs-logo.png, scale=50:-1 [logo]
a linea di        [in][logo] overlay -f video4linux2 /dev/video0
comando

Introduzione
ai filtri di
FFmpeg

Esempi d’uso
della libreria

Sviluppi futuri

Appendici

                                                                   24 / 31
Esempi di overlay di video sintetico



Presentazione
e storia

Introduzione
ai concetti del
multimedia

Architettura
                  Example
del progetto

Installazione
                  ffplay -vf testsrc=100x100, format=rgba, lut=a=128 [logo];
Esempi d’uso      [in][logo] overlay -f video4linux2 /dev/video0
dei progammi
a linea di
comando

Introduzione
ai filtri di
FFmpeg

Esempi d’uso
della libreria

Sviluppi futuri

Appendici

                                                                               25 / 31
Corrispondenze tra elementi multimediali e
                  strutture di libav*


Presentazione
e storia
                      pacchetto -> AVPacket
Introduzione
ai concetti del       frame video -> AVFrame
multimedia

Architettura          codec -> AVCodec
del progetto

Installazione
                      contesto di un codec -> AVCodecContext
Esempi d’uso          demuxer/input device -> AVInputFormat
dei progammi
a linea di
comando
                      muxer/output device -> AVOutputFormat
Introduzione          contesto di un de/muxer -> AVFormatContext
ai filtri di
FFmpeg                filtro -> AVFilter
Esempi d’uso
della libreria

Sviluppi futuri

Appendici

                                                                   26 / 31
Alcuni esempi



Presentazione
e storia

Introduzione
ai concetti del
multimedia            doc/examples/encoding-example.c
Architettura
del progetto          doc/examples/muxing-example.c
Installazione
                      ffprobe.c
Esempi d’uso
dei progammi          libavfilter/vsrc_movie.c
a linea di
comando

Introduzione
ai filtri di
FFmpeg

Esempi d’uso
della libreria

Sviluppi futuri

Appendici

                                                        27 / 31
Sviluppi futuri



Presentazione
e storia              più filtri video (composizione, movie sink, port filtri di
Introduzione          MPlayer)
ai concetti del
multimedia            supporto a filtri audio (GSoC 2011)
Architettura
del progetto          supporto a concatenazione logica dei file (GSoC 2011)
Installazione
                      miglioramento supporto formati di sottotitoli
Esempi d’uso
dei progammi          integrazione testo all’interno di libavfilter
a linea di
comando
                      libavresample
Introduzione
ai filtri di           binding a linguaggi di alto livello (e.g. Haskell, Lisp,
FFmpeg
                      etc...)(?)
Esempi d’uso
della libreria

Sviluppi futuri

Appendici

                                                                                 28 / 31
Licenza di questo documento



Presentazione
e storia

Introduzione
                  Rilasciato con licenza Creative Commons con clausole
ai concetti del
multimedia
                  Attribuzione-NonCommerciale-CondividiAlloStessoModo
Architettura      (vedi: http://creativecommons.org/licenses/
del progetto
                  by-nc-sa/3.0/)
Installazione

Esempi d’uso
dei progammi
a linea di
comando

Introduzione
ai filtri di
FFmpeg

Esempi d’uso
della libreria

Sviluppi futuri

Appendici

                                                                         29 / 31
Risorse



Presentazione        FFmpeg project web site: http://www.ffmpeg.org
e storia

Introduzione
                     Mike Melanson multimedia wiki
ai concetti del      http://wiki.multimedia.cx/ contiene
multimedia

Architettura
                     informazioni su codec, formati, e informazioni relative a
del progetto         FFmpeg
Installazione
                     Digital Image Processing - Gonzalez, Woods - Pearson
Esempi d’uso
dei progammi         2008
a linea di
comando
                     Digital Video Compression - Peter Symes - Mc Graw
Introduzione
ai filtri di          Hills 2003
FFmpeg
                     Video Demystified, a handbook for the digital engineer -
Esempi d’uso
della libreria       Jack Keith - Elsevier 2004
Sviluppi futuri

Appendici

                                                                            30 / 31
Colophon



Presentazione
e storia

Introduzione
ai concetti del
multimedia
                  Per realizzare questo documento sono stati usati i seguenti
Architettura
                  programmi:
del progetto
                       emacs editing dei sorgenti
Installazione

Esempi d’uso
                  A
                  LTEX/Beamer creazione del documento
dei progammi
a linea di                Dia creazione di alcuni diagrammi
comando

Introduzione
ai filtri di
FFmpeg

Esempi d’uso
della libreria

Sviluppi futuri

Appendici

                                                                            31 / 31

Contenu connexe

Similaire à FFmpeg - lo strumento multimediale universale

Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)Francesco Baldassarri
 
Che cosa è il Qt Framework
Che cosa è il Qt FrameworkChe cosa è il Qt Framework
Che cosa è il Qt FrameworkPaolo Sereno
 
7. Applicazioni web e CMS
7. Applicazioni web e CMS7. Applicazioni web e CMS
7. Applicazioni web e CMSRoberto Polillo
 
Progettazione e realizzazione di una piattaforma middleware per la gestione a...
Progettazione e realizzazione di una piattaforma middleware per la gestione a...Progettazione e realizzazione di una piattaforma middleware per la gestione a...
Progettazione e realizzazione di una piattaforma middleware per la gestione a...LucaGre
 
Esame di Stato: idee Hardware e Software
Esame di Stato: idee Hardware e SoftwareEsame di Stato: idee Hardware e Software
Esame di Stato: idee Hardware e SoftwareFabio Mora
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioAntonio Musarra
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGiacomoZorzin
 
Elio Tondo - Linux In Azienda
Elio Tondo - Linux In AziendaElio Tondo - Linux In Azienda
Elio Tondo - Linux In AziendaBetter Software
 
Beni Culturali 2.1 Introduzione Os
Beni Culturali 2.1 Introduzione OsBeni Culturali 2.1 Introduzione Os
Beni Culturali 2.1 Introduzione OsCaterina Policaro
 
Less is more? OmegaT: vantaggi e svantaggi di un approccio essenziale e open ...
Less is more? OmegaT: vantaggi e svantaggi di un approccio essenziale e open ...Less is more? OmegaT: vantaggi e svantaggi di un approccio essenziale e open ...
Less is more? OmegaT: vantaggi e svantaggi di un approccio essenziale e open ...Qabiria
 
Integrating Linux and the real-time ERIKA OS through the Xen hypervisor
Integrating Linux and the real-time ERIKA OS through the Xen hypervisorIntegrating Linux and the real-time ERIKA OS through the Xen hypervisor
Integrating Linux and the real-time ERIKA OS through the Xen hypervisorArianna Avanzini
 
Sviluppo di una piattaforma CLIENT/SERVER per attività didattiche basate su AR
Sviluppo di una piattaforma CLIENT/SERVER per attività didattiche basate su ARSviluppo di una piattaforma CLIENT/SERVER per attività didattiche basate su AR
Sviluppo di una piattaforma CLIENT/SERVER per attività didattiche basate su ARGiacomo Giovanni Delfini
 
Sviluppo di una piattaforma Client/Server per attività didattiche basate su R...
Sviluppo di una piattaforma Client/Server per attività didattiche basate su R...Sviluppo di una piattaforma Client/Server per attività didattiche basate su R...
Sviluppo di una piattaforma Client/Server per attività didattiche basate su R...Giacomo Delfini
 

Similaire à FFmpeg - lo strumento multimediale universale (20)

S354 php-5.x-e-my sql-5.x
S354 php-5.x-e-my sql-5.xS354 php-5.x-e-my sql-5.x
S354 php-5.x-e-my sql-5.x
 
Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)Meego Italian Day 2011 - Francesco Baldassarri (1)
Meego Italian Day 2011 - Francesco Baldassarri (1)
 
Che cosa è il Qt Framework
Che cosa è il Qt FrameworkChe cosa è il Qt Framework
Che cosa è il Qt Framework
 
Flash e software libero
Flash e software liberoFlash e software libero
Flash e software libero
 
7. Applicazioni web e CMS
7. Applicazioni web e CMS7. Applicazioni web e CMS
7. Applicazioni web e CMS
 
Progettazione e realizzazione di una piattaforma middleware per la gestione a...
Progettazione e realizzazione di una piattaforma middleware per la gestione a...Progettazione e realizzazione di una piattaforma middleware per la gestione a...
Progettazione e realizzazione di una piattaforma middleware per la gestione a...
 
Esame di Stato: idee Hardware e Software
Esame di Stato: idee Hardware e SoftwareEsame di Stato: idee Hardware e Software
Esame di Stato: idee Hardware e Software
 
Liferay - Quick Start 1° Episodio
Liferay - Quick Start 1° EpisodioLiferay - Quick Start 1° Episodio
Liferay - Quick Start 1° Episodio
 
Generazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptxGenerazione automatica diagrammi di rete con template pptx
Generazione automatica diagrammi di rete con template pptx
 
Elio Tondo - Linux In Azienda
Elio Tondo - Linux In AziendaElio Tondo - Linux In Azienda
Elio Tondo - Linux In Azienda
 
Beni Culturali 2.1 Introduzione Os
Beni Culturali 2.1 Introduzione OsBeni Culturali 2.1 Introduzione Os
Beni Culturali 2.1 Introduzione Os
 
Less is more? OmegaT: vantaggi e svantaggi di un approccio essenziale e open ...
Less is more? OmegaT: vantaggi e svantaggi di un approccio essenziale e open ...Less is more? OmegaT: vantaggi e svantaggi di un approccio essenziale e open ...
Less is more? OmegaT: vantaggi e svantaggi di un approccio essenziale e open ...
 
Introduzione a .Net Core
Introduzione a .Net CoreIntroduzione a .Net Core
Introduzione a .Net Core
 
Integrating Linux and the real-time ERIKA OS through the Xen hypervisor
Integrating Linux and the real-time ERIKA OS through the Xen hypervisorIntegrating Linux and the real-time ERIKA OS through the Xen hypervisor
Integrating Linux and the real-time ERIKA OS through the Xen hypervisor
 
Grasso Frameworks Ajax
Grasso Frameworks AjaxGrasso Frameworks Ajax
Grasso Frameworks Ajax
 
Sviluppo di una piattaforma CLIENT/SERVER per attività didattiche basate su AR
Sviluppo di una piattaforma CLIENT/SERVER per attività didattiche basate su ARSviluppo di una piattaforma CLIENT/SERVER per attività didattiche basate su AR
Sviluppo di una piattaforma CLIENT/SERVER per attività didattiche basate su AR
 
Sviluppo di una piattaforma Client/Server per attività didattiche basate su R...
Sviluppo di una piattaforma Client/Server per attività didattiche basate su R...Sviluppo di una piattaforma Client/Server per attività didattiche basate su R...
Sviluppo di una piattaforma Client/Server per attività didattiche basate su R...
 
Reportage Delphi Day 2012
Reportage Delphi Day 2012Reportage Delphi Day 2012
Reportage Delphi Day 2012
 
DDive11 - Mastella modello aperto-openntf-ddive11
DDive11 - Mastella modello aperto-openntf-ddive11DDive11 - Mastella modello aperto-openntf-ddive11
DDive11 - Mastella modello aperto-openntf-ddive11
 
Ddive11 modelloaperto
Ddive11 modelloapertoDdive11 modelloaperto
Ddive11 modelloaperto
 

Plus de Stefano Sabatini

FFmpeg - the universal multimedia toolkit
FFmpeg - the universal multimedia toolkitFFmpeg - the universal multimedia toolkit
FFmpeg - the universal multimedia toolkitStefano Sabatini
 
Software libero: verso un modello di business
Software libero: verso un modello di businessSoftware libero: verso un modello di business
Software libero: verso un modello di businessStefano Sabatini
 
Introduzione al software libero
Introduzione al software liberoIntroduzione al software libero
Introduzione al software liberoStefano Sabatini
 
Ekiga - telefonare con GNU/Linux
Ekiga - telefonare con GNU/LinuxEkiga - telefonare con GNU/Linux
Ekiga - telefonare con GNU/LinuxStefano Sabatini
 

Plus de Stefano Sabatini (8)

FFmpeg - the universal multimedia toolkit
FFmpeg - the universal multimedia toolkitFFmpeg - the universal multimedia toolkit
FFmpeg - the universal multimedia toolkit
 
Software libero: verso un modello di business
Software libero: verso un modello di businessSoftware libero: verso un modello di business
Software libero: verso un modello di business
 
Vulnerabilità exploit
Vulnerabilità exploitVulnerabilità exploit
Vulnerabilità exploit
 
Libavfilter
LibavfilterLibavfilter
Libavfilter
 
Introduzione al software libero
Introduzione al software liberoIntroduzione al software libero
Introduzione al software libero
 
Multimedia con GNU/Linux
Multimedia con GNU/LinuxMultimedia con GNU/Linux
Multimedia con GNU/Linux
 
Multimedia con FFmpeg
Multimedia con FFmpegMultimedia con FFmpeg
Multimedia con FFmpeg
 
Ekiga - telefonare con GNU/Linux
Ekiga - telefonare con GNU/LinuxEkiga - telefonare con GNU/Linux
Ekiga - telefonare con GNU/Linux
 

Dernier

Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Associazione Digital Days
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Associazione Digital Days
 
ScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIinfogdgmi
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Associazione Digital Days
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Associazione Digital Days
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Associazione Digital Days
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Associazione Digital Days
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Associazione Digital Days
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Associazione Digital Days
 

Dernier (9)

Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
Alessio Mazzotti, Aaron Brancotti; Writer, Screenwriter, Director, UX, Autore...
 
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
Mael Chiabrera, Software Developer; Viola Bongini, Digital Experience Designe...
 
ScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AIScrapeGraphAI: a new way to scrape context with AI
ScrapeGraphAI: a new way to scrape context with AI
 
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
Gabriele Mittica, CEO @Corley Cloud – “Come creare un’azienda “nativa in clou...
 
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
Alessandro Nasi, COO @Djungle Studio – “Cosa delegheresti alla copia di te st...
 
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
Edoardo Di Pietro – “Virtual Influencer vs Umano: Rubiamo il lavoro all’AI”
 
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
Daniele Lunassi, CEO & Head of Design @Eye Studios – “Creare prodotti e servi...
 
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
Federico Bottino, Lead Venture Builder – “Riflessioni sull’Innovazione: La Cu...
 
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
Luigi Di Carlo, CEO & Founder @Evometrika srl – “Ruolo della computer vision ...
 

FFmpeg - lo strumento multimediale universale

  • 1. Presentazione e storia Introduzione FFmpeg - lo strumento multimediale ai concetti del multimedia universale Architettura del progetto Installazione Stefano Sabatini Esempi d’uso dei progammi mailto:stefasab@gmail.com a linea di comando Java User Group Sardegna Introduzione ai filtri di FFmpeg Esempi d’uso JUGS Summer Labs - 1 Luglio 2011 della libreria Sviluppi futuri Appendici 1 / 31
  • 2. Sommario 1 Presentazione e storia Presentazione e storia 2 Introduzione ai concetti del multimedia Introduzione ai concetti del 3 Architettura del progetto multimedia Architettura del progetto 4 Installazione Installazione 5 Esempi d’uso dei progammi a linea di comando Esempi d’uso dei progammi a linea di 6 Introduzione ai filtri di FFmpeg comando Introduzione 7 Esempi d’uso della libreria ai filtri di FFmpeg Esempi d’uso 8 Sviluppi futuri della libreria Sviluppi futuri 9 Appendici Appendici 2 / 31
  • 3. Presentazione Presentazione Progetto software multipiattaforma (Linux, Mac, e storia Windows, embedded, Android, etc...) Introduzione ai concetti del Contiene strumenti a linea di comando che usano le multimedia librerie: ffmpeg, ffplay, ffprobe, ffserver Architettura del progetto Contiene librerie in C per gestire il multimedia Installazione programmaticamente. Esempi d’uso dei progammi Software libero (LGPL/GPL) a linea di comando Efficiente (ottimizzata per varie piattaforme) Introduzione ai filtri di Molti formati sono supportati tramite FFmpeg Esempi d’uso ingegnerizzazione a rovescio (reverse engineering) della libreria (esempi: WMV, RV) Sviluppi futuri Appendici 3 / 31
  • 4. Obiettivi del progetto Presentazione e storia Introduzione ai concetti del multimedia Supporto universale e nativo al multimedia: Architettura supportare potenzialmente tutti i possibili formati del progetto multimediali Installazione Esempi d’uso Supporto completo a livello di libreria: fornire uno dei progammi strato di astrazione completo per gestire flussi a linea di comando multimediali. Introduzione ai filtri di FFmpeg Esempi d’uso della libreria Sviluppi futuri Appendici 4 / 31
  • 5. Storia 2000: nasce il progetto (Fabrice Bellard), inizialmente per implementare una libreria di codifica/decodifica Presentazione e storia MPEG. Viene integrata come motore multimediale di Introduzione MPlayer, il progetto è ospite di MPlayer ai concetti del multimedia 2003: Fabrice Bellard abbandona il progetto, la Architettura maintainership viene passata informalmente a Michael del progetto Installazione Niedermayer. Esempi d’uso Marzo 2009: il primo rilascio ufficiale, corrispondente dei progammi a linea di alla versione 0.5 comando Maggio 2010: rilascio della version 0.6 Introduzione ai filtri di Gennaio 2011: a seguito di contestazioni verso la FFmpeg leadership del progetto, un gruppo di sviluppatori prima Esempi d’uso della libreria prende controllo del server e crea un repository Git Sviluppi futuri alternativo, in seguito crea un fork (Libav). Appendici Giugno 2011: rilascio delle versioni 0.7 e 0.8 5 / 31
  • 6. Status Presentazione Attualmente esistono due progetti distinti con e storia repository distinti, uno per FFmpeg e uno per Libav. Introduzione ai concetti del multimedia Esiste uno scambio di codice tra i due progetti (tutte Architettura le modifiche su Libav vengono quotidianamente portate del progetto su FFmpeg, le modifiche di FFmpeg vengono portate a Installazione Libav caso per caso) Esempi d’uso dei progammi I due progetti tendono a divergere a livello di API ed ABI a linea di comando Possibilità di conflitto a livello di distribuzioni Introduzione ai filtri di (dipende dalla scelta dei vari progetti che scelgono una FFmpeg dipendenza piuttosto che un’altra, sia per motivi tecnici Esempi d’uso della libreria o politici) Sviluppi futuri Appendici 6 / 31
  • 7. Modello di sviluppo Presentazione Nonostante le release formali, viene incoraggiato l’uso e storia dell’ultima versione di sviluppo (Git) Introduzione ai concetti del Il codice sorgente è gestito tramite Git (dal Gennaio del multimedia Architettura 2011) del progetto Le patch sono discusse e approvate nella mailing-list Installazione ffmpeg-devel, quindi (eventualmente) applicate Esempi d’uso dei progammi a linea di I manutentori principali si occupano di effetuare la comando revisione delle patch proposte ed eventualmente della Introduzione ai filtri di loro applicazione FFmpeg Dal 2006 partecipa al progetto Google Summer of Esempi d’uso della libreria Code Sviluppi futuri Appendici 7 / 31
  • 8. Organizzazione Presentazione e storia Introduzione ai concetti del multimedia Architettura Non esiste un organismo ufficiale che gestisce il progetto e del progetto detiene il copyright sul codice, in futuro forse sarà la Free Installazione Multimedia Technology Foundation (Work in progress) Esempi d’uso dei progammi a linea di comando Introduzione ai filtri di FFmpeg Esempi d’uso della libreria Sviluppi futuri Appendici 8 / 31
  • 9. Concetti Presentazione pixel (picture element) e storia audio sample (campione audio) Introduzione ai concetti del multimedia immagine Architettura frame A/V del progetto Installazione pacchetto Esempi d’uso dei progammi stream (flusso) a linea di comando decoder/encoder Introduzione ai filtri di muxer/demuxer FFmpeg protocollo Esempi d’uso della libreria filtro Sviluppi futuri Appendici 9 / 31
  • 10. Gerarchia degli elementi multimediali Presentazione e storia Introduzione ai concetti del file o flusso o stream multimediale: contiene una multimedia serie di flussi multimediali (audio, video, testo) Architettura del progetto flusso o stream: contiene pacchetti di dati (codificati) Installazione pacchetto: contiene uno o piu` frame A/V/T Esempi d’uso dei progammi a linea di frame: contiene un’immagine, una sequenza di comando caratteri, una serie di campioni audio Introduzione ai filtri di FFmpeg Esempi d’uso della libreria Sviluppi futuri Appendici 10 / 31
  • 11. Librerie Presentazione e storia libavutil routine di base Introduzione ai concetti del multimedia libswscale libreria per la conversione e lo scaling di Architettura immagini del progetto libavfilter libreria di filtri A/V Installazione Esempi d’uso libavcodec libreria di codifica/decodifica dei progammi a linea di libavformat libreria di muxing/demuxing/streaming comando Introduzione libavdevice libreria per la cattura di flussi e l’output su ai filtri di FFmpeg dispositivi Esempi d’uso della libreria Sviluppi futuri Appendici 11 / 31
  • 12. Relazione tra le librerie Presentazione e storia Introduzione ai concetti del multimedia Architettura del progetto Installazione Esempi d’uso dei progammi a linea di comando Introduzione ai filtri di FFmpeg Esempi d’uso della libreria Sviluppi futuri Appendici 12 / 31
  • 13. Programmi Presentazione e storia Introduzione ai concetti del multimedia ffmpeg Usato per effettuare la transcodifica di Architettura file/stream del progetto Installazione ffplay Semplice player basato su SDL Esempi d’uso ffprobe Strumento di analisi di file/stream multimediali dei progammi a linea di comando ffserver Server di transcodifica Introduzione ai filtri di FFmpeg Esempi d’uso della libreria Sviluppi futuri Appendici 13 / 31
  • 14. Installazione da sorgenti Scaricamento dei sorgenti: Presentazione e storia Example Introduzione ai concetti del git clone git://git.videolan.org/ffmpeg.git ffmpeg multimedia Architettura del progetto Configurazione Installazione Esempi d’uso Example dei progammi a linea di configure –enable-libx264 –enable-frei0r –enable-gpl ... comando Introduzione ai filtri di Compilazione/Installazione FFmpeg Esempi d’uso Example della libreria Sviluppi futuri make -j4; make install Appendici 14 / 31
  • 15. Usare l’auto-documentazione Mostra la versione usata Presentazione e storia Example Introduzione ai concetti del ffmpeg -version multimedia Architettura del progetto Mostra l’aiuto in linea Installazione Example Esempi d’uso dei progammi a linea di ffmpeg -h comando Introduzione ai filtri di RTFM FFmpeg Esempi d’uso Example della libreria Sviluppi futuri man ffmpeg Appendici 15 / 31
  • 16. Mostra i formati supportati Presentazione e storia Mostra i formati/codec/formati/filtri supportati Introduzione ai concetti del multimedia Example Architettura del progetto ffmpeg -pixels Installazione ffmpeg -codecs Esempi d’uso dei progammi ffmpeg -formats a linea di comando ffmpeg -bsfs Introduzione ffmpeg -filters ai filtri di FFmpeg Esempi d’uso della libreria Sviluppi futuri Appendici 16 / 31
  • 17. Analizza il contenuto di un file Mosta informazioni di base su un file: Presentazione e storia Example Introduzione ai concetti del ffprobe -show_format FILE multimedia Architettura del progetto Mosta i flussi contenuti in un file Installazione Example Esempi d’uso dei progammi a linea di ffprobe -show_streams FILE comando Introduzione Mostra i pacchetti all’interno di un file ai filtri di FFmpeg Esempi d’uso Example della libreria Sviluppi futuri ffprobe -show_packets FILE Appendici 17 / 31
  • 18. Transcodifica Comando base: Presentazione Example e storia Introduzione ffmpeg -i INPUT OUTPUT ai concetti del multimedia Comando generico: Architettura del progetto Example Installazione Esempi d’uso ffmpeg INPUT_OPTIONS -i INPUT OUTPUT_OPTIONS dei progammi a linea di OUTPUT comando Introduzione ai filtri di Esempio concreto: FFmpeg Esempi d’uso Example della libreria Sviluppi futuri ffmpeg -ss 10 -t 10 -i INPUT.avi -vcodec libx264 -acodec Appendici libmp3lame out.mpg 18 / 31
  • 19. Cattura da dispositivo di input Presentazione e storia Introduzione ai concetti del Example multimedia Architettura del progetto ffmpeg -f video4linux2 -i /dev/video0 OUTPUT Installazione Esempi d’uso Example dei progammi a linea di comando ffmpeg -f x11grab -video_size vga -i :0.0 OUTPUT Introduzione ai filtri di FFmpeg Esempi d’uso della libreria Sviluppi futuri Appendici 19 / 31
  • 20. Introduzione Presentazione e storia Introduzione libavfilter nasce come sostituto di VHOOK, progetto ai concetti del multimedia GSoC 2007 Architettura del progetto integrazione recente, integrato in ffmpeg a partire Installazione dalla release 0.7/0.8 Esempi d’uso dei progammi ancora in fase sperimentale, API/ABI instabile a linea di comando l’integrazione audio è ancora in via di sviluppo (GSoC Introduzione 2010, GSoC 2011) ai filtri di FFmpeg Esempi d’uso della libreria Sviluppi futuri Appendici 20 / 31
  • 21. Caratteristiche Presentazione e storia Introduzione ai concetti del sistema di negoziazione dei formati - minimizza multimedia conversioni Architettura del progetto permette di gestire grafi di filtri Installazione supporta la generazione di flussi video (mediante Esempi d’uso dei progammi sorgenti) e elementi lavandino (sink) a linea di comando transmedia filtering Introduzione ai filtri di FFmpeg Esempi d’uso della libreria Sviluppi futuri Appendici 21 / 31
  • 22. Anatomia di un filtro Presentazione e storia Introduzione ai concetti del Ogni filtro contiene 0 o più input and output pad multimedia Architettura Ogni pad è associato a un tipo di input e supporta uno del progetto o più formati (A/V) Installazione Input e output possono essere difformi (differenti Esempi d’uso dei progammi media, differente grandezza / formato gestito) a linea di comando input e output pad sono uniti da link Introduzione ai filtri di FFmpeg Esempi d’uso della libreria Sviluppi futuri Appendici 22 / 31
  • 23. Esempi di grafi di filtri Example Presentazione e storia color,vflip,hflip,nullsink Introduzione ai concetti del multimedia Architettura Example del progetto Installazione movie=logo.png [logo]; color=blue [color]; Esempi d’uso [color][logo] overlay [out] dei progammi a linea di comando Example Introduzione ai filtri di FFmpeg movie=input.flv, split[in1][in2]; Esempi d’uso [in1] scale=100:-1 [out1]; della libreria [in2] negate [out2] Sviluppi futuri Appendici 23 / 31
  • 24. Overlay di un logo Presentazione e storia Introduzione ai concetti del Overlay di un logo: multimedia Architettura Example del progetto Installazione ffplay -vf Esempi d’uso dei progammi movie=jugs-logo.png, scale=50:-1 [logo] a linea di [in][logo] overlay -f video4linux2 /dev/video0 comando Introduzione ai filtri di FFmpeg Esempi d’uso della libreria Sviluppi futuri Appendici 24 / 31
  • 25. Esempi di overlay di video sintetico Presentazione e storia Introduzione ai concetti del multimedia Architettura Example del progetto Installazione ffplay -vf testsrc=100x100, format=rgba, lut=a=128 [logo]; Esempi d’uso [in][logo] overlay -f video4linux2 /dev/video0 dei progammi a linea di comando Introduzione ai filtri di FFmpeg Esempi d’uso della libreria Sviluppi futuri Appendici 25 / 31
  • 26. Corrispondenze tra elementi multimediali e strutture di libav* Presentazione e storia pacchetto -> AVPacket Introduzione ai concetti del frame video -> AVFrame multimedia Architettura codec -> AVCodec del progetto Installazione contesto di un codec -> AVCodecContext Esempi d’uso demuxer/input device -> AVInputFormat dei progammi a linea di comando muxer/output device -> AVOutputFormat Introduzione contesto di un de/muxer -> AVFormatContext ai filtri di FFmpeg filtro -> AVFilter Esempi d’uso della libreria Sviluppi futuri Appendici 26 / 31
  • 27. Alcuni esempi Presentazione e storia Introduzione ai concetti del multimedia doc/examples/encoding-example.c Architettura del progetto doc/examples/muxing-example.c Installazione ffprobe.c Esempi d’uso dei progammi libavfilter/vsrc_movie.c a linea di comando Introduzione ai filtri di FFmpeg Esempi d’uso della libreria Sviluppi futuri Appendici 27 / 31
  • 28. Sviluppi futuri Presentazione e storia più filtri video (composizione, movie sink, port filtri di Introduzione MPlayer) ai concetti del multimedia supporto a filtri audio (GSoC 2011) Architettura del progetto supporto a concatenazione logica dei file (GSoC 2011) Installazione miglioramento supporto formati di sottotitoli Esempi d’uso dei progammi integrazione testo all’interno di libavfilter a linea di comando libavresample Introduzione ai filtri di binding a linguaggi di alto livello (e.g. Haskell, Lisp, FFmpeg etc...)(?) Esempi d’uso della libreria Sviluppi futuri Appendici 28 / 31
  • 29. Licenza di questo documento Presentazione e storia Introduzione Rilasciato con licenza Creative Commons con clausole ai concetti del multimedia Attribuzione-NonCommerciale-CondividiAlloStessoModo Architettura (vedi: http://creativecommons.org/licenses/ del progetto by-nc-sa/3.0/) Installazione Esempi d’uso dei progammi a linea di comando Introduzione ai filtri di FFmpeg Esempi d’uso della libreria Sviluppi futuri Appendici 29 / 31
  • 30. Risorse Presentazione FFmpeg project web site: http://www.ffmpeg.org e storia Introduzione Mike Melanson multimedia wiki ai concetti del http://wiki.multimedia.cx/ contiene multimedia Architettura informazioni su codec, formati, e informazioni relative a del progetto FFmpeg Installazione Digital Image Processing - Gonzalez, Woods - Pearson Esempi d’uso dei progammi 2008 a linea di comando Digital Video Compression - Peter Symes - Mc Graw Introduzione ai filtri di Hills 2003 FFmpeg Video Demystified, a handbook for the digital engineer - Esempi d’uso della libreria Jack Keith - Elsevier 2004 Sviluppi futuri Appendici 30 / 31
  • 31. Colophon Presentazione e storia Introduzione ai concetti del multimedia Per realizzare questo documento sono stati usati i seguenti Architettura programmi: del progetto emacs editing dei sorgenti Installazione Esempi d’uso A LTEX/Beamer creazione del documento dei progammi a linea di Dia creazione di alcuni diagrammi comando Introduzione ai filtri di FFmpeg Esempi d’uso della libreria Sviluppi futuri Appendici 31 / 31