SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
L Multimedia                   con GNU/Linux
              o




Stefano Sabatini, Multimedia con GNU/Linux                   1
Cagliari, 25 Ottobre 2008
Multimedia con GNU/Linux
   Nella presentazione verrà data una panoramica
   delle principali librerie e applicazioni usate in
   ambiente GNU/Linux legate al mondo del
   multimedia.




Stefano Sabatini, Multimedia con GNU/Linux             2
Cagliari, 25 Ottobre 2008
FFmpeg
    ●   Il “motore” di tutte le principali applicazioni
        multimediali su GNU/Linux
    ●   Multipiattaforma (GNU/Linux, Solaris, Mac OS,
        Windows...)
    ●   LGPL/GPL
    ●   Supporta mulitiplexing/demultiplexing/streaming
        attraverso libavformat
    ●   Numero impressionante di formati di codifica
        supportati (ffmpeg -formats)


Stefano Sabatini, Multimedia con GNU/Linux                3
Cagliari, 25 Ottobre 2008
FFmpeg
    ●   Cerca di fornire il supporto nativo alla maggior
        parte dei formati
    ●   Reverse engineering di molti formati supportati:
         –   Windows Media Video (WMV 1, 2, 3)
         –   Windows Media Audio (1, 2)
         –   Nellymoser ASAO
         –   QCELP in fase di integrazione
    ●   Librerie esterne supportate: libamr, libfaad,
        libfaac, libmp3lame, libdirac, libschroedinger,
        libogg, libvorbis, libx264, libxvid...
    ●   Formati sperimentali: snow, nut
Stefano Sabatini, Multimedia con GNU/Linux                 4
Cagliari, 25 Ottobre 2008
FFmpeg + MinGW
    ●   MinGW= Minimal GNU for Windows
        http://www.mingw.org/
    ●   FFmpeg == ISO C99 && VisualStudio != ISO C99
    ●   Porting di FFmpeg a VS?
    ●   MinGW fornisce una toolchain GNU per la
        compilazione di FFmpeg in Windows
    ●   Problematico:
         –   Vincoli sulle versioni di mingw-rt/mingw-
             w32api/binutils/gcc/make/bash = bagno di sangue
         –   http://thread.gmane.org/gmane.comp.video.ffmpeg.user
         –   http://oss.netfarm.it/mplayer-win32.php

Stefano Sabatini, Multimedia con GNU/Linux                   5
Cagliari, 25 Ottobre 2008
Libavfilter
    ●   Progetto sperimentale, Gsoc (Google Summer of
        Code) del 2007
    ●   Lista di filtri attualmente supportati: buffer, crop,
        drawbox, fifo, format, fps, hflip, movie, negate,
        noformat, overlay, rotate, scale, setpts, slicify,
        split, transpose, vflip
    ●   Esempio d'uso:
         –   ffplay -f video4linux -s 320x240
             -vfilters=flip,noise,scale=100x200
    ●   Dovrebbe sostituire il motore di filtri attualmente
        supportato da MPlayer/MEncoder

Stefano Sabatini, Multimedia con GNU/Linux                      6
Cagliari, 25 Ottobre 2008
Codec + licensing
    ●   Molti codec patent-free (codec Xiph.org, snow,
        dirac/shroedinger)
    ●   Implementazioni di codec con license varie (public
        domain, LGPL, GPL)
    ●   License d'uso per molti codec necessari per la
        produzione/broadcast di contenuti multimedia
         –   MPEG-LA
    ●   Situazione legale controversa per l'uso di molti
        codec e per il reverse-engineering



Stefano Sabatini, Multimedia con GNU/Linux                   7
Cagliari, 25 Ottobre 2008
Xiph.org
    ●   http://xiph.org/
    ●   Sviluppo di codec patent-free e corrispettive
        librerie:
         –   Ogg (contenitore multimediale)
         –   Vorbis (lossy audio)
         –   Theora (video)
         –   Speex (speech)
         –   Flac (lossless audio)
         –   CMML (text/subtitles)




Stefano Sabatini, Multimedia con GNU/Linux              8
Cagliari, 25 Ottobre 2008
Player multimediali
    ●   MPlayer/Mencoder
         –   basato su FFmpeg
         –   muxer/demuxer nativi (non basati su libavfilter)
         –   Supporto a codec binari
         –   Supporto per una vasta gamma di dispositivi di
             output
         –   Sistema di filtri video (vf_filter)
    ●   VLC
         –   Supporto per lo streaming
         –   Basato su FFmpeg
         –   Live555 viene utilizzata per lo streaming

Stefano Sabatini, Multimedia con GNU/Linux                      9
Cagliari, 25 Ottobre 2008
Player multimediali
    ●   Xine (CD, DVD, VCD) + front-end (gxine, kxine,
        aaxine)
    ●   Kaffeine (KDE) (supporta DVD, DVB)
    ●   Totem (Gnome)




Stefano Sabatini, Multimedia con GNU/Linux               10
Cagliari, 25 Ottobre 2008
ALSA
    ●   ALSA = Advanced Linux Sound Architecture
    ●   Retro compatibile con OSS (Open Sound System),
        obsoleto, molti programmi tuttora utilizzano il
        vecchio front-end (e.g. Ffmpeg)
    ●   Incluso in linux a partire da 2.6.X
    ●   È possibile compilarlo a parte (ad esempio
        compilando i sorgenti del pacchetto
        Debian/Ubuntu alsa-source)




Stefano Sabatini, Multimedia con GNU/Linux                11
Cagliari, 25 Ottobre 2008
ALSA: l'interfaccia di sistema
    ●    Information Interface (/proc/asound)
    ●    Control Interface (/dev/snd/controlCX)
    ●    Mixer Interface (/dev/snd/mixerCXDX)
    ●    PCM Interface (/dev/snd/pcmCXDX)
    ●    Raw MIDI Interface (/dev/snd/midiCXDX)
    ●    Sequencer Interface (/dev/snd/seq)
    ●    Timer Interface (/dev/snd/timer)




Stefano Sabatini, Multimedia con GNU/Linux        12
Cagliari, 25 Ottobre 2008
Video4linux
    ●   1998: Bill Dirks, V4L1 (<linux/videodev.h>)
    ●   2002, linux 2.5.46: V4L2 (<linux/videodev2.h>),
        vecchia API ancora supportata
    ●   API per driver di dispositivi di cattura e output
        analogici (webcam e altri dispositivi di cattura
        video, encoder/decoder MPEG, tuner analogici);
        radio
         –   Video capture interface
         –   Video output interface
         –   Radio access interface (sintonizzatori AM/FM)
    ●   http://v4l2spec.bytesex.org/spec/book1.htm
Stefano Sabatini, Multimedia con GNU/Linux                   13
Cagliari, 25 Ottobre 2008
Video4linux - gspca
    ●   http://thread.gmane.org/gmane.linux.drivers.dvb/4535
    ●   gspca V1
         –   supporto per oltre 220 webcam
         –   sviluppato fuori dal kernel
         –   Supporto a V4L1 API
         –   Esegue encoding/decoding in kernel-space
    ●   gspca V2: riscrittura di gspca V1 con supporto a
        V4l2:
         –   encoding/decoding/resampling non permesso in
             kernel-space quindi rimosso
         –   in-kernel

Stefano Sabatini, Multimedia con GNU/Linux                  14
Cagliari, 25 Ottobre 2008
Video4Linux - libv4l
    ●   Applicazioni che usano V4L eseguono codice per
        effettuare conversione di formato → refactoring →
        implementazione delle utilità di conversione in una
        libreria
    ●   Hans De Goede:
        http://hansdegoede.livejournal.com/3636.html
    ●   open("dev/video0", ...) -> v4l2_open("dev/video0",
        ...), ioctl -> v4l2_ioctl
    ●   libv4l1 / libv4l2
    ●   Sperimentale: ancora non
        pacchettizzato/supportato dalle applicazioni
Stefano Sabatini, Multimedia con GNU/Linux                15
Cagliari, 25 Ottobre 2008
DVB
    ●   DVB (Digital Video Broadcast)
         –   Standard ETSI (European Communication Standards
             Institute), documenti accessibili for-free dopo la
             registrazione su www.etsi.org
         –   Alternativo a ATSC (Advanced Television Standard
             Committee) A/53 (adottato in USA e Canada)
    ●   www.linuxtv.org: sviluppo di driver/moduli per
        schede di acquisizione
    ●   Tipi di dispositivi:
         –   DVB-C (Cable)
         –   DVB-T (Terrestrial)
         –   DVB-S (Satellite)
         –   ATSC

Stefano Sabatini, Multimedia con GNU/Linux                        16
Cagliari, 25 Ottobre 2008
DVB
    ●   Dispositivi PCI, PCMCIA, USB
    ●   Budget/premium (software/hardware decoding)
    ●   Gran parte dei dispositivi usano lo stesso chipset,
        il modulo per un determinato dispositivo dipende
        dal dispositivo
    ●   STB (Set Top Box) basati su kernel linux + DVB-API




Stefano Sabatini, Multimedia con GNU/Linux                    17
Cagliari, 25 Ottobre 2008
DVB: configurazione
    ●   Per poter utilizzare un dispositivo DVB-{C,S,T} é
        necessario disporre di un file di configurazione con
        le frequenze dei vari canali: channels.conf
    ●   Generazione channels.conf:
         –   dvbscan
         –   w_scan (supporta formati per kaffeine, dvbscan)
         –   Molti programmi hanno una funzionalità di scanning
             (e.g. Kaffeine)




Stefano Sabatini, Multimedia con GNU/Linux                        18
Cagliari, 25 Ottobre 2008
DVD authoring
    ●   dvdauthor: linea da comando/batch
    ●   mandvd
    ●   DVDStyler (GTK/Gnome)
    ●   KDE Media Factory (Qt/KDE)
    ●   DVDAuthor Wizard (Qt/KDE)
    ●   Q DVD-Author (Qt/KDE)




Stefano Sabatini, Multimedia con GNU/Linux   19
Cagliari, 25 Ottobre 2008
Esempio di DVD authoring con
   dvdauthor
 # two passes conversion
 for file in `ls *.flv`; do
    ffmpeg -i $file.flv -target pal-dvd -aspect 4:3 -pass 1 -y $file.mpg -passlogfile $file.log
    ffmpeg -i $file.flv -target pal-dvd -aspect 4:3 -pass 2 -y $file.mpg -passlogfile $file.log
 done

 # create the DVD VOB files
 mkdir DVD
 dvdauthor -t *.mpg -o DVD
 dvdauthor -T -o DVD

 # burn the iso
 growisofs -dvd-compat -Z /dev/dvd -dvd-video DVD/




Stefano Sabatini, Multimedia con GNU/Linux                                                        20
Cagliari, 25 Ottobre 2008
Grafica da console
    ●   Libaa/libcaca: fornisce supporto per l'output di
        grafica su console testuale
         –   bb: programma dimostrativo sull'uso di libaa
         –   mplayer/aatv supportano libaa
    ●   Scrittura su FB, scrittura diretta sul FB video (a
        partire da linux 2.6.X)
         –   Impostazione: vga=CODE nei parametri di linux
         –   libsdl (Simple Directmedia Layer)
         –   fbi




Stefano Sabatini, Multimedia con GNU/Linux                   21
Cagliari, 25 Ottobre 2008
Individuazione dei moduli da
   usare
    ●   hotplug/udev: l'hardware supportato dovrebbe
        essere automaticamente riconosciuto e i
        corrispondenti moduli avviati all'avvio del sistema
        o alla connessione della periferica (USB, PCMCIA)
    ●   Debugging
         –   dmesg/{s,k}yslog
         –   lshal/halinfo
         –   lspci/lsusb
    ●   lspci/lsusb + ricerca con Google



Stefano Sabatini, Multimedia con GNU/Linux                    22
Cagliari, 25 Ottobre 2008
Patches are welcome!
                                             ●   Documentazione e/o
                                                 traduzioni
                                             ●   Bug-reporting
                                             ●   Supporto utenti
                                             ●   Sviluppo/bug fixes
                                                 –   Gsoc
                                             ●   Consumo intelligente
                                             ●   Evangelizzazione
                                             ●   Lobbying presso
                                                 produttori HW/SW

Stefano Sabatini, Multimedia con GNU/Linux                              23
Cagliari, 25 Ottobre 2008
Grazie per l'attenzione.




Stefano Sabatini, Multimedia con GNU/Linux      24
Cagliari, 25 Ottobre 2008

Weitere ähnliche Inhalte

Was ist angesagt?

Software libero, pensiero libero
Software libero, pensiero liberoSoftware libero, pensiero libero
Software libero, pensiero liberoGiuseppe Gortan
 
Presentazione Dvd OpenStreetMap versione 1.0
Presentazione Dvd OpenStreetMap versione 1.0 Presentazione Dvd OpenStreetMap versione 1.0
Presentazione Dvd OpenStreetMap versione 1.0 Infoweblan
 
Linux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelanceLinux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelanceFabio Mora
 
Debian translation party 2
Debian translation party 2Debian translation party 2
Debian translation party 2Stefano Canepa
 
Iced tea, la macchina virtuale Java libera
Iced tea, la macchina virtuale Java liberaIced tea, la macchina virtuale Java libera
Iced tea, la macchina virtuale Java liberaVitalij Zadneprovskij
 
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxTrace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxDeveler S.r.l.
 
Lua e MOAI SDK: sviluppiamo videogames!
Lua e MOAI SDK: sviluppiamo videogames!Lua e MOAI SDK: sviluppiamo videogames!
Lua e MOAI SDK: sviluppiamo videogames!Open Makers Italy
 
Cosino Enigma: the encrypted GNU/LINUX system has come true!
Cosino Enigma: the encrypted GNU/LINUX system has come true!Cosino Enigma: the encrypted GNU/LINUX system has come true!
Cosino Enigma: the encrypted GNU/LINUX system has come true!festival ICT 2016
 
Installazione Qt 4.5.3 per Ms Windows
Installazione Qt 4.5.3 per Ms WindowsInstallazione Qt 4.5.3 per Ms Windows
Installazione Qt 4.5.3 per Ms WindowsPaolo Sereno
 
Appunti_01 LPIC-1 Junior Level Linux Certification
Appunti_01 LPIC-1 Junior Level Linux CertificationAppunti_01 LPIC-1 Junior Level Linux Certification
Appunti_01 LPIC-1 Junior Level Linux CertificationVincenzo Argese
 
Introduzione a Linux: differenze con windows e strumenti per la programmazione
Introduzione a Linux: differenze con windows e strumenti per la programmazioneIntroduzione a Linux: differenze con windows e strumenti per la programmazione
Introduzione a Linux: differenze con windows e strumenti per la programmazioneValerio Bruno
 

Was ist angesagt? (20)

Software libero, pensiero libero
Software libero, pensiero liberoSoftware libero, pensiero libero
Software libero, pensiero libero
 
Presentazione Dvd OpenStreetMap versione 1.0
Presentazione Dvd OpenStreetMap versione 1.0 Presentazione Dvd OpenStreetMap versione 1.0
Presentazione Dvd OpenStreetMap versione 1.0
 
Linux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelanceLinux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelance
 
Foss ieri e oggi
Foss ieri e oggiFoss ieri e oggi
Foss ieri e oggi
 
Debian translation party 2
Debian translation party 2Debian translation party 2
Debian translation party 2
 
Iced tea, la macchina virtuale Java libera
Iced tea, la macchina virtuale Java liberaIced tea, la macchina virtuale Java libera
Iced tea, la macchina virtuale Java libera
 
Lab automation
Lab automationLab automation
Lab automation
 
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linuxTrace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
Trace32 lo-strumento-piu-completo-per-il-debug-di-un-sistema-linux
 
Lua e MOAI SDK: sviluppiamo videogames!
Lua e MOAI SDK: sviluppiamo videogames!Lua e MOAI SDK: sviluppiamo videogames!
Lua e MOAI SDK: sviluppiamo videogames!
 
Cosino Enigma: the encrypted GNU/LINUX system has come true!
Cosino Enigma: the encrypted GNU/LINUX system has come true!Cosino Enigma: the encrypted GNU/LINUX system has come true!
Cosino Enigma: the encrypted GNU/LINUX system has come true!
 
Installazione Qt 4.5.3 per Ms Windows
Installazione Qt 4.5.3 per Ms WindowsInstallazione Qt 4.5.3 per Ms Windows
Installazione Qt 4.5.3 per Ms Windows
 
Ogg vorbis
Ogg vorbisOgg vorbis
Ogg vorbis
 
Linux Day 2017 - Italia
Linux Day 2017 - ItaliaLinux Day 2017 - Italia
Linux Day 2017 - Italia
 
Git e GitHub
Git e GitHubGit e GitHub
Git e GitHub
 
Progetto Linux va a scuola
Progetto Linux va a scuolaProgetto Linux va a scuola
Progetto Linux va a scuola
 
Desktop searching
Desktop searchingDesktop searching
Desktop searching
 
Ubuntu Linux - Corso Base
Ubuntu Linux - Corso BaseUbuntu Linux - Corso Base
Ubuntu Linux - Corso Base
 
Ubuntu Linux
Ubuntu LinuxUbuntu Linux
Ubuntu Linux
 
Appunti_01 LPIC-1 Junior Level Linux Certification
Appunti_01 LPIC-1 Junior Level Linux CertificationAppunti_01 LPIC-1 Junior Level Linux Certification
Appunti_01 LPIC-1 Junior Level Linux Certification
 
Introduzione a Linux: differenze con windows e strumenti per la programmazione
Introduzione a Linux: differenze con windows e strumenti per la programmazioneIntroduzione a Linux: differenze con windows e strumenti per la programmazione
Introduzione a Linux: differenze con windows e strumenti per la programmazione
 

Andere mochten auch

Kernel Recipes 2014 - Testing Video4Linux Applications and Drivers
Kernel Recipes 2014 - Testing Video4Linux Applications and DriversKernel Recipes 2014 - Testing Video4Linux Applications and Drivers
Kernel Recipes 2014 - Testing Video4Linux Applications and DriversAnne Nicolas
 
Kernel Recipes 2013 - Overview display in the Linux kernel
Kernel Recipes 2013 - Overview display in the Linux kernelKernel Recipes 2013 - Overview display in the Linux kernel
Kernel Recipes 2013 - Overview display in the Linux kernelAnne Nicolas
 
Embedded Linux Multimedia
Embedded Linux MultimediaEmbedded Linux Multimedia
Embedded Linux MultimediaCaglar Dursun
 
Hidden Camera 3 APIs in Android 4.4 (KitKat)
Hidden Camera 3 APIs in Android 4.4 (KitKat)Hidden Camera 3 APIs in Android 4.4 (KitKat)
Hidden Camera 3 APIs in Android 4.4 (KitKat)Balwinder Kaur
 
Camera 2.0 in Android 4.2
Camera 2.0 in Android 4.2 Camera 2.0 in Android 4.2
Camera 2.0 in Android 4.2 Balwinder Kaur
 
Low Cost HD Surveillance Camera using Raspberry PI
Low Cost HD Surveillance Camera using Raspberry PILow Cost HD Surveillance Camera using Raspberry PI
Low Cost HD Surveillance Camera using Raspberry PIVarun A M
 
Smart Wireless Surveillance Monitoring using RASPBERRY PI
Smart Wireless Surveillance Monitoring using RASPBERRY PISmart Wireless Surveillance Monitoring using RASPBERRY PI
Smart Wireless Surveillance Monitoring using RASPBERRY PIKrishna Kumar
 
De-mystifying DRM
De-mystifying DRMDe-mystifying DRM
De-mystifying DRMcastLabs
 
Linux Performance Analysis and Tools
Linux Performance Analysis and ToolsLinux Performance Analysis and Tools
Linux Performance Analysis and ToolsBrendan Gregg
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great InfographicsSlideShare
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShareKapost
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareEmpowered Presentations
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation OptimizationOneupweb
 

Andere mochten auch (20)

Kernel Recipes 2014 - Testing Video4Linux Applications and Drivers
Kernel Recipes 2014 - Testing Video4Linux Applications and DriversKernel Recipes 2014 - Testing Video4Linux Applications and Drivers
Kernel Recipes 2014 - Testing Video4Linux Applications and Drivers
 
Video Drivers
Video DriversVideo Drivers
Video Drivers
 
Low-level Accesses
Low-level AccessesLow-level Accesses
Low-level Accesses
 
Kernel Recipes 2013 - Overview display in the Linux kernel
Kernel Recipes 2013 - Overview display in the Linux kernelKernel Recipes 2013 - Overview display in the Linux kernel
Kernel Recipes 2013 - Overview display in the Linux kernel
 
Embedded Linux Multimedia
Embedded Linux MultimediaEmbedded Linux Multimedia
Embedded Linux Multimedia
 
Hidden Camera 3 APIs in Android 4.4 (KitKat)
Hidden Camera 3 APIs in Android 4.4 (KitKat)Hidden Camera 3 APIs in Android 4.4 (KitKat)
Hidden Camera 3 APIs in Android 4.4 (KitKat)
 
Camera 2.0 in Android 4.2
Camera 2.0 in Android 4.2 Camera 2.0 in Android 4.2
Camera 2.0 in Android 4.2
 
GStreamer Instruments
GStreamer InstrumentsGStreamer Instruments
GStreamer Instruments
 
Building Digital TV Support in Linux
Building Digital TV Support in LinuxBuilding Digital TV Support in Linux
Building Digital TV Support in Linux
 
Low Cost HD Surveillance Camera using Raspberry PI
Low Cost HD Surveillance Camera using Raspberry PILow Cost HD Surveillance Camera using Raspberry PI
Low Cost HD Surveillance Camera using Raspberry PI
 
Smart Wireless Surveillance Monitoring using RASPBERRY PI
Smart Wireless Surveillance Monitoring using RASPBERRY PISmart Wireless Surveillance Monitoring using RASPBERRY PI
Smart Wireless Surveillance Monitoring using RASPBERRY PI
 
De-mystifying DRM
De-mystifying DRMDe-mystifying DRM
De-mystifying DRM
 
Introduction to Linux Drivers
Introduction to Linux DriversIntroduction to Linux Drivers
Introduction to Linux Drivers
 
File System Modules
File System ModulesFile System Modules
File System Modules
 
Linux Performance Analysis and Tools
Linux Performance Analysis and ToolsLinux Performance Analysis and Tools
Linux Performance Analysis and Tools
 
What Makes Great Infographics
What Makes Great InfographicsWhat Makes Great Infographics
What Makes Great Infographics
 
Masters of SlideShare
Masters of SlideShareMasters of SlideShare
Masters of SlideShare
 
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to SlideshareSTOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
STOP! VIEW THIS! 10-Step Checklist When Uploading to Slideshare
 
You Suck At PowerPoint!
You Suck At PowerPoint!You Suck At PowerPoint!
You Suck At PowerPoint!
 
10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization10 Ways to Win at SlideShare SEO & Presentation Optimization
10 Ways to Win at SlideShare SEO & Presentation Optimization
 

Ähnlich wie Multimedia con GNU/Linux

Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014Janhu Silvio Crispiatico
 
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of ThingsCodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of ThingsMirko Mancin
 
GNU/Linux PowerPC Notebook Linux day 2015 Milano
GNU/Linux PowerPC Notebook Linux day 2015 MilanoGNU/Linux PowerPC Notebook Linux day 2015 Milano
GNU/Linux PowerPC Notebook Linux day 2015 MilanoRoberto Innocenti
 
Docker - virtualizzazione leggera
Docker - virtualizzazione leggeraDocker - virtualizzazione leggera
Docker - virtualizzazione leggeraRoberto Polli
 
Un Pinguino Nel Tuo Modem
Un Pinguino Nel Tuo ModemUn Pinguino Nel Tuo Modem
Un Pinguino Nel Tuo ModemMarco Scaloni
 
Claudio Cardinali - Virtualizzazione. Di tutti. Per tutti. - LINUX LTSP KVM S...
Claudio Cardinali - Virtualizzazione. Di tutti. Per tutti. - LINUX LTSP KVM S...Claudio Cardinali - Virtualizzazione. Di tutti. Per tutti. - LINUX LTSP KVM S...
Claudio Cardinali - Virtualizzazione. Di tutti. Per tutti. - LINUX LTSP KVM S...Claudio Cardinali
 
Hardware Libero - Linux Day 2007
Hardware Libero - Linux Day 2007Hardware Libero - Linux Day 2007
Hardware Libero - Linux Day 2007pino_otto
 
Linux e fs storia e caratteristiche vincenti
Linux e fs   storia e caratteristiche vincentiLinux e fs   storia e caratteristiche vincenti
Linux e fs storia e caratteristiche vincentiMaurizio Antonelli
 
Introduzione ad ubuntu core - Qt day 2017
Introduzione ad ubuntu core  - Qt day 2017Introduzione ad ubuntu core  - Qt day 2017
Introduzione ad ubuntu core - Qt day 2017Marco Trevisan
 
Ekiga - telefonare con GNU/Linux
Ekiga - telefonare con GNU/LinuxEkiga - telefonare con GNU/Linux
Ekiga - telefonare con GNU/LinuxStefano Sabatini
 
Mpc8308 rdb piattaforma di riferimento della freescale - recensione - 2010-10-26
Mpc8308 rdb piattaforma di riferimento della freescale - recensione - 2010-10-26Mpc8308 rdb piattaforma di riferimento della freescale - recensione - 2010-10-26
Mpc8308 rdb piattaforma di riferimento della freescale - recensione - 2010-10-26Ionela
 
Amministrazione base dei sistemi Linux
Amministrazione base dei sistemi LinuxAmministrazione base dei sistemi Linux
Amministrazione base dei sistemi LinuxPaolo Campegiani
 
Ekiga: telefonare con Gnu/Linux
Ekiga: telefonare con Gnu/LinuxEkiga: telefonare con Gnu/Linux
Ekiga: telefonare con Gnu/Linuxliviux76
 
RiminiLUG. Mini Corso su Linux p1: Installazione & Configurazione
RiminiLUG. Mini Corso su Linux p1: Installazione & ConfigurazioneRiminiLUG. Mini Corso su Linux p1: Installazione & Configurazione
RiminiLUG. Mini Corso su Linux p1: Installazione & ConfigurazioneAlessandro Carichini
 
Formati aperti vs formati proprietari
Formati aperti vs formati proprietariFormati aperti vs formati proprietari
Formati aperti vs formati proprietariRiccardo Zanella
 
Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embeddedDaniele Costarella
 
Agrillo Fedora 11 release party 18 giugno 2009
Agrillo Fedora 11 release party 18 giugno 2009Agrillo Fedora 11 release party 18 giugno 2009
Agrillo Fedora 11 release party 18 giugno 2009Giuseppe Agrillo
 

Ähnlich wie Multimedia con GNU/Linux (20)

Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
 
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of ThingsCodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
 
Linux console
Linux consoleLinux console
Linux console
 
GNU/Linux PowerPC Notebook Linux day 2015 Milano
GNU/Linux PowerPC Notebook Linux day 2015 MilanoGNU/Linux PowerPC Notebook Linux day 2015 Milano
GNU/Linux PowerPC Notebook Linux day 2015 Milano
 
Docker - virtualizzazione leggera
Docker - virtualizzazione leggeraDocker - virtualizzazione leggera
Docker - virtualizzazione leggera
 
Un Pinguino Nel Tuo Modem
Un Pinguino Nel Tuo ModemUn Pinguino Nel Tuo Modem
Un Pinguino Nel Tuo Modem
 
debian gnu linux
debian gnu linuxdebian gnu linux
debian gnu linux
 
Claudio Cardinali - Virtualizzazione. Di tutti. Per tutti. - LINUX LTSP KVM S...
Claudio Cardinali - Virtualizzazione. Di tutti. Per tutti. - LINUX LTSP KVM S...Claudio Cardinali - Virtualizzazione. Di tutti. Per tutti. - LINUX LTSP KVM S...
Claudio Cardinali - Virtualizzazione. Di tutti. Per tutti. - LINUX LTSP KVM S...
 
Hardware Libero - Linux Day 2007
Hardware Libero - Linux Day 2007Hardware Libero - Linux Day 2007
Hardware Libero - Linux Day 2007
 
Linux e fs storia e caratteristiche vincenti
Linux e fs   storia e caratteristiche vincentiLinux e fs   storia e caratteristiche vincenti
Linux e fs storia e caratteristiche vincenti
 
Introduzione ad ubuntu core - Qt day 2017
Introduzione ad ubuntu core  - Qt day 2017Introduzione ad ubuntu core  - Qt day 2017
Introduzione ad ubuntu core - Qt day 2017
 
Ekiga - telefonare con GNU/Linux
Ekiga - telefonare con GNU/LinuxEkiga - telefonare con GNU/Linux
Ekiga - telefonare con GNU/Linux
 
Mpc8308 rdb piattaforma di riferimento della freescale - recensione - 2010-10-26
Mpc8308 rdb piattaforma di riferimento della freescale - recensione - 2010-10-26Mpc8308 rdb piattaforma di riferimento della freescale - recensione - 2010-10-26
Mpc8308 rdb piattaforma di riferimento della freescale - recensione - 2010-10-26
 
Amministrazione base dei sistemi Linux
Amministrazione base dei sistemi LinuxAmministrazione base dei sistemi Linux
Amministrazione base dei sistemi Linux
 
Ekiga: telefonare con Gnu/Linux
Ekiga: telefonare con Gnu/LinuxEkiga: telefonare con Gnu/Linux
Ekiga: telefonare con Gnu/Linux
 
RiminiLUG. Mini Corso su Linux p1: Installazione & Configurazione
RiminiLUG. Mini Corso su Linux p1: Installazione & ConfigurazioneRiminiLUG. Mini Corso su Linux p1: Installazione & Configurazione
RiminiLUG. Mini Corso su Linux p1: Installazione & Configurazione
 
Conferenza Pymaemo
Conferenza PymaemoConferenza Pymaemo
Conferenza Pymaemo
 
Formati aperti vs formati proprietari
Formati aperti vs formati proprietariFormati aperti vs formati proprietari
Formati aperti vs formati proprietari
 
Software libero nei sistemi embedded
Software libero nei sistemi embeddedSoftware libero nei sistemi embedded
Software libero nei sistemi embedded
 
Agrillo Fedora 11 release party 18 giugno 2009
Agrillo Fedora 11 release party 18 giugno 2009Agrillo Fedora 11 release party 18 giugno 2009
Agrillo Fedora 11 release party 18 giugno 2009
 

Mehr von 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 a libavfilter
Introduzione a libavfilterIntroduzione a libavfilter
Introduzione a libavfilterStefano Sabatini
 
FFmpeg - lo strumento multimediale universale
FFmpeg - lo strumento multimediale universaleFFmpeg - lo strumento multimediale universale
FFmpeg - lo strumento multimediale universaleStefano Sabatini
 
Introduzione al software libero
Introduzione al software liberoIntroduzione al software libero
Introduzione al software liberoStefano Sabatini
 

Mehr von Stefano Sabatini (7)

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
 
Introduzione a libavfilter
Introduzione a libavfilterIntroduzione a libavfilter
Introduzione a libavfilter
 
Libavfilter
LibavfilterLibavfilter
Libavfilter
 
FFmpeg - lo strumento multimediale universale
FFmpeg - lo strumento multimediale universaleFFmpeg - lo strumento multimediale universale
FFmpeg - lo strumento multimediale universale
 
Introduzione al software libero
Introduzione al software liberoIntroduzione al software libero
Introduzione al software libero
 

Multimedia con GNU/Linux

  • 1. L Multimedia con GNU/Linux o Stefano Sabatini, Multimedia con GNU/Linux 1 Cagliari, 25 Ottobre 2008
  • 2. Multimedia con GNU/Linux Nella presentazione verrà data una panoramica delle principali librerie e applicazioni usate in ambiente GNU/Linux legate al mondo del multimedia. Stefano Sabatini, Multimedia con GNU/Linux 2 Cagliari, 25 Ottobre 2008
  • 3. FFmpeg ● Il “motore” di tutte le principali applicazioni multimediali su GNU/Linux ● Multipiattaforma (GNU/Linux, Solaris, Mac OS, Windows...) ● LGPL/GPL ● Supporta mulitiplexing/demultiplexing/streaming attraverso libavformat ● Numero impressionante di formati di codifica supportati (ffmpeg -formats) Stefano Sabatini, Multimedia con GNU/Linux 3 Cagliari, 25 Ottobre 2008
  • 4. FFmpeg ● Cerca di fornire il supporto nativo alla maggior parte dei formati ● Reverse engineering di molti formati supportati: – Windows Media Video (WMV 1, 2, 3) – Windows Media Audio (1, 2) – Nellymoser ASAO – QCELP in fase di integrazione ● Librerie esterne supportate: libamr, libfaad, libfaac, libmp3lame, libdirac, libschroedinger, libogg, libvorbis, libx264, libxvid... ● Formati sperimentali: snow, nut Stefano Sabatini, Multimedia con GNU/Linux 4 Cagliari, 25 Ottobre 2008
  • 5. FFmpeg + MinGW ● MinGW= Minimal GNU for Windows http://www.mingw.org/ ● FFmpeg == ISO C99 && VisualStudio != ISO C99 ● Porting di FFmpeg a VS? ● MinGW fornisce una toolchain GNU per la compilazione di FFmpeg in Windows ● Problematico: – Vincoli sulle versioni di mingw-rt/mingw- w32api/binutils/gcc/make/bash = bagno di sangue – http://thread.gmane.org/gmane.comp.video.ffmpeg.user – http://oss.netfarm.it/mplayer-win32.php Stefano Sabatini, Multimedia con GNU/Linux 5 Cagliari, 25 Ottobre 2008
  • 6. Libavfilter ● Progetto sperimentale, Gsoc (Google Summer of Code) del 2007 ● Lista di filtri attualmente supportati: buffer, crop, drawbox, fifo, format, fps, hflip, movie, negate, noformat, overlay, rotate, scale, setpts, slicify, split, transpose, vflip ● Esempio d'uso: – ffplay -f video4linux -s 320x240 -vfilters=flip,noise,scale=100x200 ● Dovrebbe sostituire il motore di filtri attualmente supportato da MPlayer/MEncoder Stefano Sabatini, Multimedia con GNU/Linux 6 Cagliari, 25 Ottobre 2008
  • 7. Codec + licensing ● Molti codec patent-free (codec Xiph.org, snow, dirac/shroedinger) ● Implementazioni di codec con license varie (public domain, LGPL, GPL) ● License d'uso per molti codec necessari per la produzione/broadcast di contenuti multimedia – MPEG-LA ● Situazione legale controversa per l'uso di molti codec e per il reverse-engineering Stefano Sabatini, Multimedia con GNU/Linux 7 Cagliari, 25 Ottobre 2008
  • 8. Xiph.org ● http://xiph.org/ ● Sviluppo di codec patent-free e corrispettive librerie: – Ogg (contenitore multimediale) – Vorbis (lossy audio) – Theora (video) – Speex (speech) – Flac (lossless audio) – CMML (text/subtitles) Stefano Sabatini, Multimedia con GNU/Linux 8 Cagliari, 25 Ottobre 2008
  • 9. Player multimediali ● MPlayer/Mencoder – basato su FFmpeg – muxer/demuxer nativi (non basati su libavfilter) – Supporto a codec binari – Supporto per una vasta gamma di dispositivi di output – Sistema di filtri video (vf_filter) ● VLC – Supporto per lo streaming – Basato su FFmpeg – Live555 viene utilizzata per lo streaming Stefano Sabatini, Multimedia con GNU/Linux 9 Cagliari, 25 Ottobre 2008
  • 10. Player multimediali ● Xine (CD, DVD, VCD) + front-end (gxine, kxine, aaxine) ● Kaffeine (KDE) (supporta DVD, DVB) ● Totem (Gnome) Stefano Sabatini, Multimedia con GNU/Linux 10 Cagliari, 25 Ottobre 2008
  • 11. ALSA ● ALSA = Advanced Linux Sound Architecture ● Retro compatibile con OSS (Open Sound System), obsoleto, molti programmi tuttora utilizzano il vecchio front-end (e.g. Ffmpeg) ● Incluso in linux a partire da 2.6.X ● È possibile compilarlo a parte (ad esempio compilando i sorgenti del pacchetto Debian/Ubuntu alsa-source) Stefano Sabatini, Multimedia con GNU/Linux 11 Cagliari, 25 Ottobre 2008
  • 12. ALSA: l'interfaccia di sistema ● Information Interface (/proc/asound) ● Control Interface (/dev/snd/controlCX) ● Mixer Interface (/dev/snd/mixerCXDX) ● PCM Interface (/dev/snd/pcmCXDX) ● Raw MIDI Interface (/dev/snd/midiCXDX) ● Sequencer Interface (/dev/snd/seq) ● Timer Interface (/dev/snd/timer) Stefano Sabatini, Multimedia con GNU/Linux 12 Cagliari, 25 Ottobre 2008
  • 13. Video4linux ● 1998: Bill Dirks, V4L1 (<linux/videodev.h>) ● 2002, linux 2.5.46: V4L2 (<linux/videodev2.h>), vecchia API ancora supportata ● API per driver di dispositivi di cattura e output analogici (webcam e altri dispositivi di cattura video, encoder/decoder MPEG, tuner analogici); radio – Video capture interface – Video output interface – Radio access interface (sintonizzatori AM/FM) ● http://v4l2spec.bytesex.org/spec/book1.htm Stefano Sabatini, Multimedia con GNU/Linux 13 Cagliari, 25 Ottobre 2008
  • 14. Video4linux - gspca ● http://thread.gmane.org/gmane.linux.drivers.dvb/4535 ● gspca V1 – supporto per oltre 220 webcam – sviluppato fuori dal kernel – Supporto a V4L1 API – Esegue encoding/decoding in kernel-space ● gspca V2: riscrittura di gspca V1 con supporto a V4l2: – encoding/decoding/resampling non permesso in kernel-space quindi rimosso – in-kernel Stefano Sabatini, Multimedia con GNU/Linux 14 Cagliari, 25 Ottobre 2008
  • 15. Video4Linux - libv4l ● Applicazioni che usano V4L eseguono codice per effettuare conversione di formato → refactoring → implementazione delle utilità di conversione in una libreria ● Hans De Goede: http://hansdegoede.livejournal.com/3636.html ● open("dev/video0", ...) -> v4l2_open("dev/video0", ...), ioctl -> v4l2_ioctl ● libv4l1 / libv4l2 ● Sperimentale: ancora non pacchettizzato/supportato dalle applicazioni Stefano Sabatini, Multimedia con GNU/Linux 15 Cagliari, 25 Ottobre 2008
  • 16. DVB ● DVB (Digital Video Broadcast) – Standard ETSI (European Communication Standards Institute), documenti accessibili for-free dopo la registrazione su www.etsi.org – Alternativo a ATSC (Advanced Television Standard Committee) A/53 (adottato in USA e Canada) ● www.linuxtv.org: sviluppo di driver/moduli per schede di acquisizione ● Tipi di dispositivi: – DVB-C (Cable) – DVB-T (Terrestrial) – DVB-S (Satellite) – ATSC Stefano Sabatini, Multimedia con GNU/Linux 16 Cagliari, 25 Ottobre 2008
  • 17. DVB ● Dispositivi PCI, PCMCIA, USB ● Budget/premium (software/hardware decoding) ● Gran parte dei dispositivi usano lo stesso chipset, il modulo per un determinato dispositivo dipende dal dispositivo ● STB (Set Top Box) basati su kernel linux + DVB-API Stefano Sabatini, Multimedia con GNU/Linux 17 Cagliari, 25 Ottobre 2008
  • 18. DVB: configurazione ● Per poter utilizzare un dispositivo DVB-{C,S,T} é necessario disporre di un file di configurazione con le frequenze dei vari canali: channels.conf ● Generazione channels.conf: – dvbscan – w_scan (supporta formati per kaffeine, dvbscan) – Molti programmi hanno una funzionalità di scanning (e.g. Kaffeine) Stefano Sabatini, Multimedia con GNU/Linux 18 Cagliari, 25 Ottobre 2008
  • 19. DVD authoring ● dvdauthor: linea da comando/batch ● mandvd ● DVDStyler (GTK/Gnome) ● KDE Media Factory (Qt/KDE) ● DVDAuthor Wizard (Qt/KDE) ● Q DVD-Author (Qt/KDE) Stefano Sabatini, Multimedia con GNU/Linux 19 Cagliari, 25 Ottobre 2008
  • 20. Esempio di DVD authoring con dvdauthor # two passes conversion for file in `ls *.flv`; do ffmpeg -i $file.flv -target pal-dvd -aspect 4:3 -pass 1 -y $file.mpg -passlogfile $file.log ffmpeg -i $file.flv -target pal-dvd -aspect 4:3 -pass 2 -y $file.mpg -passlogfile $file.log done # create the DVD VOB files mkdir DVD dvdauthor -t *.mpg -o DVD dvdauthor -T -o DVD # burn the iso growisofs -dvd-compat -Z /dev/dvd -dvd-video DVD/ Stefano Sabatini, Multimedia con GNU/Linux 20 Cagliari, 25 Ottobre 2008
  • 21. Grafica da console ● Libaa/libcaca: fornisce supporto per l'output di grafica su console testuale – bb: programma dimostrativo sull'uso di libaa – mplayer/aatv supportano libaa ● Scrittura su FB, scrittura diretta sul FB video (a partire da linux 2.6.X) – Impostazione: vga=CODE nei parametri di linux – libsdl (Simple Directmedia Layer) – fbi Stefano Sabatini, Multimedia con GNU/Linux 21 Cagliari, 25 Ottobre 2008
  • 22. Individuazione dei moduli da usare ● hotplug/udev: l'hardware supportato dovrebbe essere automaticamente riconosciuto e i corrispondenti moduli avviati all'avvio del sistema o alla connessione della periferica (USB, PCMCIA) ● Debugging – dmesg/{s,k}yslog – lshal/halinfo – lspci/lsusb ● lspci/lsusb + ricerca con Google Stefano Sabatini, Multimedia con GNU/Linux 22 Cagliari, 25 Ottobre 2008
  • 23. Patches are welcome! ● Documentazione e/o traduzioni ● Bug-reporting ● Supporto utenti ● Sviluppo/bug fixes – Gsoc ● Consumo intelligente ● Evangelizzazione ● Lobbying presso produttori HW/SW Stefano Sabatini, Multimedia con GNU/Linux 23 Cagliari, 25 Ottobre 2008
  • 24. Grazie per l'attenzione. Stefano Sabatini, Multimedia con GNU/Linux 24 Cagliari, 25 Ottobre 2008