VgDASH @Directive
Component to stream with DASH an mpd
file.
You can combine VgDashDirective
and VgHlsDirective
. If you pass a VOD file (that means, not HLS or DASH) it will fallback to the native video implementation.
VgDashDirective
is exported as vgDash
in case you want to access to it from your template.
In this example currentStream
can contain either an mpd
, m3u8
or mp4
file.
<vg-player>
<video #media
#vgDash="vgDash"
[vgMedia]="media"
[vgDash]="currentStream"
[vgHls]="currentStream"
id="singleVideo"
controls
crossorigin>
</video>
</vg-player>
This module is dependant of dashjs
library and you need to install via npm install dashjs --save
and include it on your .angular-cli.json
config file:
{
...
"apps": [
{
...
"scripts": [
"../node_modules/dashjs/dist/dash.all.min.js"
],
...
}
],
...
}
Inputs
Input | Description |
---|---|
vgDash | Url to DASH mpd file. |
vgDRMLicenseServer | An object with IDRMLicenseServer signature with the license servers. |
vgDRMToken | Token to validate on license server. |
Outputs
Output | Description |
---|---|
onGetBitrates | Emitted when a list of bitrates is retrieved from the file. Sends an Array of BitrateOptions . |
HTML Definition
<vg-player>
<video #myMedia
[vgDash]="stream.source"
[vgDRMLicenseServer]="stream.licenseServers"
[vgDRMToken]="stream.token"
(onGetBitrates)="dashBitrates = $event"
id="my-video"
type="video/mp4"
controls>
</video>
</vg-player>
In your component create a stream
property
stream = {
source: 'https://storage.googleapis.com/shaka-demo-assets/angel-one-widevine/dash.mpd',
licenseServers: {
'com.widevine.alpha': {
serverURL: 'https://widevine-proxy.appspot.com/proxy'
}
},
token: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...'
}