-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* First working rendering using parts of vtt.js * First working version using video.js version of vtt.js including coloring and highlighting * Adjust vtt library * Remove tracks on cue exit * Add basic test page * Working version on LG * Manual rendering independent of onenter and onexit * Manual rendering for multiple tracks * Fix wrong ref to vtt caption container * Fix a bug that causes wrong selection of initial WebVTT track and therefor mapping of wrong text data to a certain track * Move dependencies to contrib folder * Enable/disable custom VTT rendering via settings flag * Update the setting for custom vtt rendering before initializing the player. This is important otherwise the setting has no effect. * Remove remote parsing server setting for now as this is not implemented * Fix unit tests * Add vttjs demo to sample section * Add missing parameters to Typescript and Settins files * Remove vtt.js from reference page * Set log level to 4 * Use minified version of vtt library * Remove non required css attributes
- Loading branch information
Showing
15 changed files
with
2,467 additions
and
92 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,134 @@ | ||
<!doctype html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="utf-8"> | ||
<title>WebVTT Custom Rendering</title> | ||
<script src="../../contrib/videojs-vtt.js/vtt.min.js"></script> | ||
<script class="code" src="../../contrib/akamai/controlbar/ControlBar.js"></script> | ||
<script src="../../dist/dash.all.debug.js"></script> | ||
|
||
<!-- Bootstrap core CSS --> | ||
<link href="../lib/bootstrap/bootstrap.min.css" rel="stylesheet"> | ||
<link href="../lib/main.css" rel="stylesheet"> | ||
<link rel="stylesheet" href="../../contrib/akamai/controlbar/controlbar.css"> | ||
|
||
<style> | ||
video { | ||
width: 100%; | ||
} | ||
|
||
.dash-video-player { | ||
position: relative; /* This position relative is needed to position the menus */ | ||
margin: 0 auto; | ||
line-height: 1.0; | ||
} | ||
</style> | ||
|
||
<script class="code"> | ||
function init() { | ||
var url = 'https://dash.akamaized.net/akamai/test/caption_test/ElephantsDream/elephants_dream_480p_heaac5_1_https.mpd', | ||
video = document.querySelector('video'), | ||
vttRenderingDiv, | ||
player; | ||
|
||
vttRenderingDiv = document.querySelector("#vtt-rendering-div"); | ||
player = dashjs.MediaPlayer({}).create(); | ||
player.updateSettings({ | ||
debug: { | ||
logLevel: 5 | ||
}, | ||
streaming: { | ||
text: { | ||
webvtt: { | ||
customRenderingEnabled: true | ||
} | ||
} | ||
} | ||
}) | ||
player.initialize(video, url, true); | ||
player.attachVttRenderingDiv(vttRenderingDiv) | ||
controlbar = new ControlBar(player); | ||
controlbar.initialize(); | ||
} | ||
</script> | ||
</head> | ||
<body> | ||
|
||
<main> | ||
<div class="container py-4"> | ||
<header class="pb-3 mb-4 border-bottom"> | ||
<img class="" | ||
src="../lib/img/dashjs-logo.png" | ||
width="200"> | ||
</header> | ||
<div class="row"> | ||
<div class="col-md-4"> | ||
<div class="h-100 p-5 bg-light border rounded-3"> | ||
<h3>WebVTT Custom Rendering Demo</h3> | ||
<p>This example shows how content with VTT captions can be played back by the dash.js player using | ||
the external vtt.js library. This enables VTT support on devices that do not provide native VTT | ||
support. <p>The first | ||
captions appear at the 15s mark.</p> | ||
<p>Note: This sample will only work when using http as the subtitles are not hosted via https.</p> | ||
</div> | ||
</div> | ||
<div class="col-md-8"> | ||
<div class="dash-video-player code"> | ||
<div class="videoContainer" id="videoContainer"> | ||
<video preload="auto" muted></video> | ||
<div style="position: relative"> | ||
<div id="vtt-rendering-div" style="min-width: 600px; min-height: 100px;"></div> | ||
</div> | ||
<div id="videoController" class="video-controller unselectable"> | ||
<div id="playPauseBtn" class="btn-play-pause" title="Play/Pause"> | ||
<span id="iconPlayPause" class="icon-play"></span> | ||
</div> | ||
<span id="videoTime" class="time-display">00:00:00</span> | ||
<div id="fullscreenBtn" class="btn-fullscreen control-icon-layout" title="Fullscreen"> | ||
<span class="icon-fullscreen-enter"></span> | ||
</div> | ||
<div id="bitrateListBtn" class="control-icon-layout" title="Bitrate List"> | ||
<span class="icon-bitrate"></span> | ||
</div> | ||
<input type="range" id="volumebar" class="volumebar" value="1" min="0" max="1" step=".01"/> | ||
<div id="muteBtn" class="btn-mute control-icon-layout" title="Mute"> | ||
<span id="iconMute" class="icon-mute-off"></span> | ||
</div> | ||
<div id="trackSwitchBtn" class="control-icon-layout" title="A/V Tracks"> | ||
<span class="icon-tracks"></span> | ||
</div> | ||
<div id="captionBtn" class="btn-caption control-icon-layout" title="Closed Caption"> | ||
<span class="icon-caption"></span> | ||
</div> | ||
<span id="videoDuration" class="duration-display">00:00:00</span> | ||
<div class="seekContainer"> | ||
<div id="seekbar" class="seekbar seekbar-complete"> | ||
<div id="seekbar-buffer" class="seekbar seekbar-buffer"></div> | ||
<div id="seekbar-play" class="seekbar seekbar-play"></div> | ||
</div> | ||
</div> | ||
</div> | ||
</div> | ||
</div> | ||
</div> | ||
</div> | ||
<div class="row"> | ||
<div class="col-md-12"> | ||
<div id="code-output"></div> | ||
</div> | ||
</div> | ||
<footer class="pt-3 mt-4 text-muted border-top"> | ||
© DASH-IF | ||
</footer> | ||
</div> | ||
</main> | ||
|
||
|
||
<script> | ||
document.addEventListener('DOMContentLoaded', function () { | ||
init(); | ||
}); | ||
</script> | ||
<script src="../highlighter.js"></script> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.