paella player 5

33
Paella Player 5 Carlos Turró Universitat Politècnica de València

Upload: carlos-turro-ribalta

Post on 12-Apr-2017

302 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Paella player 5

Paella Player 5Carlos Turró

Universitat Politècnica de València

Page 2: Paella player 5

Paella Player• Opencast-compatible video player

• Dual video• Media packages (slides, multiple language captions, other content)• In-video search

• Standalone video player• Legacy/Non-Opencast video player + Media packages• Compatible look and feel for end-users

• Live Streaming video player• Dual live video streaming• RTMP, MPEG-Dash, HLS*

• GPLv3, source code in Github

Page 3: Paella player 5

http://paellaplayer.upv.es

Page 4: Paella player 5

Paella Player 5 Update• Technical refactoring• Robustness• Easier to maintain

• MPEG-Dash Support• Easier to add new video protocols

• A new API for on-screen drawing• Annotations• Advertising

• As today, we are in 5.0.0 (branch release/5.0.0) finishing issues

Page 5: Paella player 5

Technical refactoring

Page 6: Paella player 5

Paella 4 problems• There are Asynchronous operations in Paella• E.g. load a video

• There is a lot of plugins waiting for those events to finish

Race conditionsNasty bugsDifficult to debug

Page 7: Paella player 5

Events• Paella communications between the core and the plugins is handled

through events• This is a bit odd, because the event both do the task and inform the

plugins paella.events.trigger(PLAY)

• Now the core requires an API call, and it generates the event when ready

paella.player.play()

• Paella 5 also uses Javascript promises to enforce serializable actions

Page 8: Paella player 5

Video Editor as a separate project

Page 9: Paella player 5

Video Editor as a separate project• Paella-editor is a now different Project

github.com/polimediaupv/paella-editor

• Paella will call this or any other editor (from the config file)

• Under development (release before summer)• Angular.js

Page 10: Paella player 5

MPEG-Dash support

Page 11: Paella player 5

MPEG-Dash• Dynamic Adaptive Streaming over HTTP• Breaking the video into a sequence of small segments and download on demand• Automatic or manual bandwidth selection• International standard• Codec agnostic

• Used by Netflix, YouTube, Hulu, Akamai• Available in Wowza, and also in OSS tools like DASHEncoder• Standard javascript video player library (dash.js)

Page 12: Paella player 5

.MPD index file

Page 13: Paella player 5

Multiple quality support in MPEG-Dash

Page 14: Paella player 5

External video plugins• Paella 5 allow defining external video players as plugins• MPEG-dash is using the reference dash.js player

• es.upv.paella.mpegDashPlayer• RTMP is using the paella.swf file

• es.upv.paella.rtmpPlayer

• Now is easier to integrate external players for new/other formats as external plugins

(paella with Vimeo or YouTube?)

Page 15: Paella player 5

New API for on-screen drawing

Page 17: Paella player 5

API for onscreen drawing

• There is a new function to create or edit a canvas on top of Paella5paella.player.videoContainer.overlayContainer.getLayer()

• Then you can paint on top of it using standard HTML5//Draw a horizontal line in Paella

demoLayer = paella.player.videoContainer.overlayContainer.getLayer("demo")demoHR = document.createElement("hr");demoLayer.appendChild(demoHR);

Page 18: Paella player 5

Visual annotations plugin• A plugin to show notes at a predefined time, with a certain duration in a certain

location of the screen

User story: “As a teacher I want to be able to show HTML content to the students on top of the video at a certain playing time”

Activation through the config file{ "es.upv.paella.visualAnnotationPlugin": { "enabled": true, "url": "https://my.media.server/mynotes" }}

Page 19: Paella player 5

Presets

Ad

Page 20: Paella player 5

Presets

Banner

Page 21: Paella player 5

Presets

Note

Page 22: Paella player 5

Presets

Memo

Page 23: Paella player 5

Presets

Full

Page 24: Paella player 5

Annotation data

Page 25: Paella player 5

Caveats• Currently there is no editor to create the visual annotations

• There’s no API for feedback from the visual annotation plugin to the player

Page 26: Paella player 5

Some final comments

Page 27: Paella player 5

Some final comments• Paella 4.2 also released, with a lot of bug fixing

• Some plugins for Paella 4 have to be slightly adapted to work in Paella 5

• We have new docs ;-)Code Examples Cookbook

• Final release in early April (after Easter break)

Page 28: Paella player 5

Special thanks to our supporters and contributors• Suppporters• ETH Zürich

• Contributors• Harvard DCE, Teltek, @djcp, @jjeisig, @spiraleddy, @Alfro, @flyapen,

@rubenrua and all the issue spotters

Page 29: Paella player 5

Thanks!Questions?

[email protected]

Page 30: Paella player 5

PromisesAsynchronous Callbackstarget.operation1(function(result) {    target.operation2(function(result) {        target.operation3(function(restult) {            target.operation4(function(result) {                            });        });    });}); 

Asynchronous Promisestarget.operation1()    .then(function(result) {        return target.operation2();    })        .then(function(result) {        return target.operation3();    })        .then(function(result) {        return target.operation4();    });

Page 31: Paella player 5

Multiple quality support in MPEG-Dash

Page 32: Paella player 5

MPEG-Dash demo• http://paellaplayer.upv.es/demo/player_mpegdash/index.html?id=mp

eg-dash

Page 33: Paella player 5

Video Editor as a separate project• Paella 4 shipped with an integrated editor, using the Opencast

Annotation service• The editor writes a track of elements related to video playing • Start• Stop• Break

• The player is a dependency of the editor, but the reverse is not true