VLC & Subtitles Rants Jean-Baptiste Kempf Thursday, May 24, - - PowerPoint PPT Presentation

vlc subtitles
SMART_READER_LITE
LIVE PREVIEW

VLC & Subtitles Rants Jean-Baptiste Kempf Thursday, May 24, - - PowerPoint PPT Presentation

VLC & Subtitles Rants Jean-Baptiste Kempf Thursday, May 24, 2018 Ecole Centrale Paris The Cone VLC 1.000.000 downloads per day 450.000.000 users on all platforms! * 2.800.000.000 + downloads since the early days VideoLAN VideoLAN Dev


slide-1
SLIDE 1

VLC & Subtitles

Rants

Jean-Baptiste Kempf

Thursday, May 24, 2018

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

Ecole Centrale Paris

slide-5
SLIDE 5

The Cone

slide-6
SLIDE 6

VLC

slide-7
SLIDE 7
slide-8
SLIDE 8

1.000.000

downloads per day

450.000.000

users on all platforms! *

2.800.000.000+

downloads since the early days

slide-9
SLIDE 9

VideoLAN Dev Days 2014

VideoLAN

slide-10
SLIDE 10

VLC 3.0 10

What did we put in 3.0

VLC 3.0

slide-11
SLIDE 11

VLC 3.0 11

3.0 highlights

  • HW decoding on by default everywhere
  • 360 video and 3D Audio
  • Network shares browsing (+passwords)
  • Common codebase
  • 10bits / 12bits / HDR support
  • Audio HDMI rework passthrough
  • HTTP/2
  • Lots of new formats (adaptive, subtitles)
  • OpenGL and Wayland
  • New subtitle rendering stack
  • One last thing: Chromecast
slide-12
SLIDE 12

VLC 3.0 12

Platform support

  • Windows
  • XP

10 RS3 →

  • macOS
  • 10.7

10.13 64bits →

  • Android
  • Android 2.3 (API-10)

8.0 Oreo (API-4212) →

  • iOS
  • iOS 7

iOS 11 →

  • Linux
  • All distributions
slide-13
SLIDE 13

13

New CTL

slide-14
SLIDE 14

14

New CTL support

slide-15
SLIDE 15

VLC 3.0 15

VLC - VR 15

VLC VR

slide-16
SLIDE 16

16

3.0.0 Android TV

slide-17
SLIDE 17

17

3.0.0 Tizen

slide-18
SLIDE 18

3.0.0

slide-19
SLIDE 19

VLC 3.0 19

VLC Subtitles support

Image based

  • DVD subtitles, including HD-DVD
  • Blu-ray subtitles
  • DVB subtitles
  • DivX subtitles
  • Vobsub fjles
  • CVD
slide-20
SLIDE 20

VLC 3.0 20

VLC Subtitles support

Text based

  • SRT (subrip)

– Extensions ({\an}, {\h}, \h) – Similar: mpl2, dks, aqt, mpsub, smi, microdvd, jacosub, vplayer

  • SSA/ASS
  • Teletext (full rendering + subtitles)
  • Closed-Captioning: EIA-608/EIA-708 (sic!)

– Including Rollup

  • TTML

– EBU-TT, EBU-TT-D, SMPTE-TT, ISMC-1

  • ARIB B24, SCTE-27, STL
  • SCC, SBV, Kate, USF
slide-21
SLIDE 21

VLC 3.0 21

Complaints

  • New Standards

– WebVTT

  • SRT, but not really

– TTML

  • Which one?
  • Not even all the features of SSA

– New does not mean better! – Ignore things that were done before – Big Mess

  • VLC 3.0

– Support both, or some part of those.

  • EBU-TT-D should be complete
slide-22
SLIDE 22

VLC 3.0 22

VLC

  • Standards in multimedia are borderline insane

– Design by committee

  • MPEG...

– Mafja-style patents enforcement

  • Dolby, MPEG-LA…

– NIH syndrom – Broadcasters forget the real world…

  • VLC implementation

– Reverse engineering – Samples based

slide-23
SLIDE 23

VLC 3.0 23

Complaints, part 1

Generic complaints about new formats

  • Not done for streaming

– Created for the web, with separated fjles.

  • No care about non-browser implementations

– Every implementation is in JS…

  • Timings

– Timing overlaps make some cases very complex to implement,

  • r even impossible the streaming and make duplication of data necessary

– Timings inside samples makes retiming impossible without reparsing the whole bitstream – Lots of overhead in samples, notably for empty samples – Timings can DropFrame

  • Difgerent payload format or base timing requires reparsing on remux
slide-24
SLIDE 24

VLC 3.0 24

WebVTT

  • Based on the worst format

– SRT…

  • Web Browser

– Stylings are done in CSS

full CSS requirement →

– Requirement for a DOM representation, a CSS parser, but also a CSS rules management – CSS inheritance for little needs – Requirement for support of ::cue() selectors, who are de-facto functions ::cue(params) which requires to extend

existing engines (Not even supported by Firefox)

  • Positioning system makes no sense

– Mix of anchors, scroll windows and coordinates – Clear after-thought

  • RTL layout

– Almost as bad as positioning – After-thought, once again…

  • Incomplete
slide-25
SLIDE 25

VLC 3.0 25

TTML

  • TTML

– Which one:

  • SMPTE-TT? MSTT? DVB TTML? QTTT? EBU-TT, EBU-TT-D, IMSC-1?
  • Profjles

– XML

  • Because we’ve had soo much success with other XML formats…

– W3C

  • Both TTML and WebVTT are W3C standards…

– Every feature under the world

  • Most of them makes no-sense, and I can’t understand them

– 8 #length-*, #markerMode…, 6 #styling, #clockMode.., stufg that are just 608 backports...

  • Except Ruby…
  • VLC

– Need to support all :-)

slide-26
SLIDE 26

VLC 3.0 26

TTML rants

  • TTML rants

– XML – XML header makes probing very hard, unless you load a big chunk of the document

  • It’s even worse with comments allowed

– Namespaces are hard <tt <tt:tt <foo:tt

  • Sizes

– Mix between screen in % and fjxed font size or fjxed font size and region in % makes rendering very hard to predict (notably cuts) – depending on the system-font or the video resolution – Mix between %, cell and pixels – Baseline size depends on the font

layout is hard, notably for for zones and positioning →

  • Image profjles

– Seriously? – Specifjc to one video resolution, and will be lost, of course, after reencoding and so on

  • Image profjle only not enforced

– Suggests people will mix images and text profjles

  • Timings

– Multiple relative or absolute timings: smpte-time, wall-clock-time, media-time

  • SMTPE-TT stores id in prefjx # (notation jQuery/javascript)

– Not valid for XML internal node reference – Cannot be verifjed or transformed with XSL easily

slide-27
SLIDE 27

VLC 3.0 27

Questions?

Thanks!

VLC 4.0