VideoLAN VideoLAN & VLC Jean-Baptiste Kempf jeudi 15 janvier - - PowerPoint PPT Presentation

videolan videolan vlc
SMART_READER_LITE
LIVE PREVIEW

VideoLAN VideoLAN & VLC Jean-Baptiste Kempf jeudi 15 janvier - - PowerPoint PPT Presentation

VideoLAN VideoLAN & VLC Jean-Baptiste Kempf jeudi 15 janvier 2015 Ecole Centrale Paris VIA VIA Centrale Rseaux Campus student association Internet acces through RENATER Token Ring Network Upgrade How to pay for our new


slide-1
SLIDE 1

VideoLAN VideoLAN & VLC

Jean-Baptiste Kempf

jeudi 15 janvier 2015

slide-2
SLIDE 2
slide-3
SLIDE 3
slide-4
SLIDE 4

Ecole Centrale Paris

slide-5
SLIDE 5

15 janv. 2015 Jean-Baptiste Kempf 5

VIA

VIA Centrale Réseaux

➣ Campus student association ➣ Internet acces through RENATER ➣ Token Ring

Network Upgrade

➣ How to pay for our new network? ➣ How to justify the needs for a faster network? ➣ 1995 : let's do video streaming!

slide-6
SLIDE 6

15 janv. 2015 Jean-Baptiste Kempf 6

Early history

1995 – 96 fjrst project

➣ 2 years to complete

1998 project reboot

➢ Open Source ➢ Modularity ➢ Cross-Platform ➢ Network oriented ➢ Student project

2001 License Change

➣ ECP headmaster Agreement ➣ GPL v2 (or later)

slide-7
SLIDE 7

15 janv. 2015 Jean-Baptiste Kempf 7

VideoLAN Projects

VideoLan Client, VLC media player, VLC VideoLan Server, VLS (dead) VLCS (dead) libdvdcss (DVD CSS decryption) libdts, libdca (DTS decoding) x264 (H.264 encoding) libdvbpsi (TS fjles management) libdvdplay (dead) libdvbcsa (dvb encryption decoding) VLMA (VLC automation) VLC Skin designer libbluray, libaacs (BluRay playback) DVBlast, Multicat (DVB streaming solution) VLMC (Video editor) x262, x265

slide-8
SLIDE 8

8

Streaming Solution

slide-9
SLIDE 9

15 janv. 2015 Jean-Baptiste Kempf 9

Multimedia

Working with Multimedia

slide-10
SLIDE 10

Stupidity level : Over 9000

STUPIDITY At MAX

slide-11
SLIDE 11

Rule #1 Rule #1

In multimedia, if there is a stupid way to do something, someone will do it (badly) and complain until it is standard and supported.

slide-12
SLIDE 12

Rule #2 Rule #2

In multimedia, everyone thinks he understands everything... But actually noone does...

slide-13
SLIDE 13

15 janv. 2015 Jean-Baptiste Kempf 13

Everything is broken

NIH syndrom 42 ways ! Container

➣ All containers are between complete crap to somehow broken, except mp4 /

mkv

➣ The worst are AVI, FLV and Ogg

Codec

➣ Many codecs have bad designs ➣ Most codecs are badly encoded ➣ Wrong containers ➣ Too many codecs and profjles

slide-14
SLIDE 14

15 janv. 2015 Jean-Baptiste Kempf 14

Everything is broken 2

Metadata

➣ Ogg, FLV ➣ H.264 NAL SPS/PPS

Subtitles

➣ WebVTT ➣ Line-21 CC

Protocols

➣ HTTP everywhere ➣ Websocket RTP

DRM

➣ All layers

So many other fails...

slide-15
SLIDE 15

15 janv. 2015 Jean-Baptiste Kempf 15

FLOSS and multimedia

FLOSS in multimedia

– Widely used in some domains – Large functional domains

Numerous projets, but...

– USA... – A lot are abandonned – Easy to use... – Professionnal and broacast

slide-16
SLIDE 16

The Cone

slide-17
SLIDE 17

VLC

slide-18
SLIDE 18
slide-19
SLIDE 19

1 every 6 Mac Top 15 Windows 1M per day More than 2B over VLC lifetime Most used French software

slide-20
SLIDE 20

15 janv. 2015 Jean-Baptiste Kempf 20

VLC

Support for DVDs

➣ Region independent ➣ Prevents forced subtitles (if desired)

… Blu Rays

➣ By default, non-encrypted only

… network streams

➣ Unicast, multicast, adaptive streaming

… external hardware

➣ Cameras, TV input, Satellite, ASI/SDI ...

slide-21
SLIDE 21
slide-22
SLIDE 22

VLC 0.6.1

slide-23
SLIDE 23
slide-24
SLIDE 24
slide-25
SLIDE 25
slide-26
SLIDE 26

VLC 0.9

slide-27
SLIDE 27
slide-28
SLIDE 28

VideoLAN VLC

Volunteers

slide-29
SLIDE 29

15 janv. 2015 Jean-Baptiste Kempf 29

Association VideoLAN

Creation

➣ 2009, decided in the VDD '08 ➣ Libre/Free Software and Multimedia

Members

➣ VLC's core developers ➣ Important members

Supports

➣ Hardware for development ➣ Travel, Servers, Legal ➣ VideoLAN Dev Days

slide-30
SLIDE 30

15 janv. 2015 Jean-Baptiste Kempf 30

Collaboration

Collaboration

➢ Teams meeting twice per year ➢ FOSDEM ➢ VideoLAN Dev Days ➢ Using git since early 2007 ➢ Use of trac, phpBB and mediawiki ➢ IRC and Mailing Lists ➢ Simple rules ➢ Code of conduct

slide-31
SLIDE 31

15 janv. 2015 Jean-Baptiste Kempf 31

Decisions

VLC Contributors

➢ Core Team 5~10 people ➢ 600 over the lifetime ➢ 150 per year

Decisions

➢ Maintenable ! ➢ Technical and standard compliant ➢ 0 marketing, 0 legal ➢ Code = > Power ➢ Consensus or Fork

slide-32
SLIDE 32

15 janv. 2015 Jean-Baptiste Kempf 32

Code

➢ Stable, Dev, OldStable ➢ Always rebase !

slide-33
SLIDE 33

33

Why is VLC popular ? Technical reasons:) Modules C-- Network oriented

slide-34
SLIDE 34

libVLC libVLCcore VLC VLMC Applications Interface MKV Ogg Mux Demuxer x264 Vorbis Theora Decoder Filters Aout Vout Modules Modules Modules Modules

slide-35
SLIDE 35

15 janv. 2015 Jean-Baptiste Kempf 35

Architecture

Small Core

➣ libVLCCore ➣ Light ➣ Memory, Network and Threads handling ➣ Module loading ➣ Clock / Synchronization

Simple Multimedia Framework

➣ LibVLC ➣ bindings for C++, C#, Objective-C, Java,

lua, Perl, Python, Node.JS

slide-36
SLIDE 36

15 janv. 2015 Jean-Baptiste Kempf 36

VLC

Completely modularized

➣ About 300 modules in a default installation

➣ Codecs, IO, outputs, (de)muxers, fjlters, ...

➣ Interested in adding new features ? Add a module.

820,000 lines of code

➣ 120k in the core ➣ 700k for modules

80 external librairies

➣ Codecs, Output, Efgects, Network ➣ 7M lines of code

➣ 50 % C, 41 % C++

slide-37
SLIDE 37

15 janv. 2015 Jean-Baptiste Kempf 37

Also C99, C++, Obj-C, ASM, Lua

C-Object (C--)

slide-38
SLIDE 38

15 janv. 2015 Jean-Baptiste Kempf 38

Protocol Format Video Codec Subtitles Codec Audio Codec MetaData Video Output Audio Output Video Filters Audio Filters Text Renderer Codec Muxer Encoder Encoder Stream Interfaces

Network-oriented graph

slide-39
SLIDE 39

15 janv. 2015 Jean-Baptiste Kempf 39

Module Probing

Capability

➣ Access ➣ Demux ➣ Codec ➣ Filter

Score

➣ Open module

➣ Right capability ➣ Decreasing score order

➣ Probe function

➣ Yes/No

➣ Cache

slide-40
SLIDE 40

15 janv. 2015 Jean-Baptiste Kempf 40

libVLC

Full (!) multimedia framework

➣ Playback ➣ Filters ➣ Control ➣ Very Limited Streaming ➣ DVD Ripper, Thumbnailer

Used in

➣ VLC Android, iOS, Windows Phone ➣ Phonon (KDE) ➣ External projects

slide-41
SLIDE 41

15 janv. 2015 Jean-Baptiste Kempf 41

LibVLC example

Creation

libvlc_instance_t * vlc_inst = libvlc_new(0, NULL); libvlc_media_player_t *media_player = libvlc_media_player_new(vlc_inst);

Media Creation

libvlc_media_t *media; media = libvlc_media_new_location(vlc_inst, uri); libvlc_media_player_set_media(media_player, media);

Media Playback

libvlc_media_player_play(media_player);

Profjt !

slide-42
SLIDE 42

42

What you don't know

What you don't know about VLC

– Transcoding, Streaming

  • latency

– Mosaic/PiP generation – Wall display – Screencasting – TS encryption and decryption (DVB-CSA) – DVD and CD ripper – Headless versions – Karaoke, Midi, hardware decoder – Scriptable and extensions – Modules

slide-43
SLIDE 43

15 janv. 2015 Jean-Baptiste Kempf 43

VLC's extensions

Use cases:

➣ Automatic subtitle downloads ➣ Context information from Wikipedia, IMDB or Allociné ➣ Sharing on Twitter

Highly customizable

➣ Written in lua ➣ Publish and get them from addons.videolan.org

slide-44
SLIDE 44

15 janv. 2015 Jean-Baptiste Kempf 44

Service discoveries

Detects media automatically:

➣ Local fjles ➣ Network services

➣ UPnP / DLNA

➣ Internet services

➣ Resolves links to YouTube, Dailymotion, Vimeo, Apple Trailers ...

Highly customizable

➣ Written in lua ➣ Publish and get them from addons.videolan.org

slide-45
SLIDE 45

45

Content Integration

slide-46
SLIDE 46

15 janv. 2015 Jean-Baptiste Kempf 46

VLC's screen casting

slide-47
SLIDE 47

15 janv. 2015 Jean-Baptiste Kempf 47

Mosaic

slide-48
SLIDE 48

15 janv. 2015 Jean-Baptiste Kempf 48

Picture in Picture

Dual webcam with alpha mask:

slide-49
SLIDE 49

15 janv. 2015 Jean-Baptiste Kempf 49

Wall Filter & netsync

slide-50
SLIDE 50

15 janv. 2015 Jean-Baptiste Kempf 50

Karaoke & MIDI

slide-51
SLIDE 51

15 janv. 2015 Jean-Baptiste Kempf 51

Console & headless

slide-52
SLIDE 52

15 janv. 2015 Jean-Baptiste Kempf 52

Libcaca

slide-53
SLIDE 53

15 janv. 2015 Jean-Baptiste Kempf 53

Web interface

slide-54
SLIDE 54

15 janv. 2015 Jean-Baptiste Kempf 54

Android

slide-55
SLIDE 55

15 janv. 2015 Jean-Baptiste Kempf 55

100 % Open Source

➢ 2.1+

Full video player

➢ All codecs, formats, protocols ➢ Hardware and multicore decoding

Full audio player

➢ Media library & Indexing ➢ Audio Background service

VLC for Android

slide-56
SLIDE 56

15 janv. 2015 Jean-Baptiste Kempf 56

VLC for Android issues

➢ Shared Modules ➢ Bionic ➢ pthread ➢ wchar_t, off_t ➢ Audio modules ➢ lipsync ➢ YUV / RGB ➢ Size ➢ Arch ➢ FPU / NEON

Technical issues

slide-57
SLIDE 57

15 janv. 2015 Jean-Baptiste Kempf 57

Release in July 2012

➣ Beta on Google Play ➣ Limited countries ➣ ARMv7 only ➣ Numerous crashes ➣ Good feedback ➣ GPLv3

Release

slide-58
SLIDE 58

15 janv. 2015 Jean-Baptiste Kempf 58

slide-59
SLIDE 59

15 janv. 2015 Jean-Baptiste Kempf 59

Evolution

slide-60
SLIDE 60

15 janv. 2015 Jean-Baptiste Kempf 60

Audio v2

slide-61
SLIDE 61

15 janv. 2015 Jean-Baptiste Kempf 61

Video v2

slide-62
SLIDE 62

15 janv. 2015 Jean-Baptiste Kempf 62

Release 1.0.0 !

➢ Numbers ➢ 37M installed ➢ 20M active ➢ Next ➢ Hardware acceleration ➢ OMX ➢ Mediacodec native ➢ SMB, UpnP, Facebook ➢ Android TV ➢ Android-L

Now

slide-63
SLIDE 63

15 janv. 2015 Jean-Baptiste Kempf 63

VLC for iOS

VLC for iOS

➣ Requires iOS 5.1 or later device ➣ iPhone 3GS ➣ iPad ➣ iPod touch 3rd gen.

slide-64
SLIDE 64

15 janv. 2015 Jean-Baptiste Kempf 64

VLC for iOS

VLC for iOS features

➣ Faster ➣ Multi-core decoding ➣ OpenGL shaders ➣ Retina Display ➣ Higher audio quality ➣ 10bits support

slide-65
SLIDE 65

15 janv. 2015 Jean-Baptiste Kempf 65

VLC for WinRT

slide-66
SLIDE 66

15 janv. 2015 Jean-Baptiste Kempf 66

Future projects

VLC for Mobile OS

➣ Win8 / WinRT / WP8 ➣ VLC for Firefox OS ➣ VLC for Ubuntu Phone ? ➣ BB10 ? ➣ Chrome OS ?

slide-67
SLIDE 67

15 janv. 2015 Jean-Baptiste Kempf 67

Contribute

Use it!

➣ Promote to friends, family, groups ➣ Spread the word

Report bugs Translations

➣ New and fjxes

Code on VLC

➣ Extensions ➣ Modules

Code with libVLC

slide-68
SLIDE 68

Thank You jb@videolan.org Jean-Baptiste Kempf