2020/lib/streams/mediaStreams.js (1,350 lines of code) (raw):
/**
* @license
* Copyright 2018 Google Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
'use strict';
var Media = (function() {
const PLAYREADY_SIGNATURE_1 =
'448279561E2755699618BE0A2402189D4A30B03B.0CD6A27286BD2DAF00577FFA21928665DCD320C2';
const SINTEL_PLAYREADY_SIGNATURE =
'97963FB1090C927460E392A517D769E95F90A9C2.71CBD94195457E4E2D885064FDB879C1072AF323';
const WIDEVINE_SIGNATURE_1 =
'9C4BE99E6F517B51FED1F0B3B31966D3C5DAB9D6.6A1F30BB35F3A39A4CA814B731450D4CBD198FFD';
const SINTEL_WIDEVINE_SIGNATURE =
'4511DBFEF4177B5F0DF1FAA23562D4FD7FDE0D1A.457901F5F063B3D9E8252B403D120683BEE47216';
const WIDEVINE_L3NOHDCP_VIDEO_ID = 'f320151fa3f061b2';
const WIDEVINE_L3NOHDCP_SIGNATURE =
'81E7B33929F9F35922F7D2E96A5E7AC36F3218B2.673F553EE51A48438AE5E707AEC87A071B4FEF65';
var AAC = {
streamtype: 'AAC',
mimetype: 'audio/mp4; codecs="mp4a.40.2"',
mediatype: 'audio',
streams: {
AudioTiny: ['car-20120827-8b.mp4', 717502, 181.62],
AudioNormal: [
'car-20120827-8c.mp4', 2884572, 181.58, {
200000: 12.42,
'halfSecondRangeEnd': 10695,
'halfSecondDurationEnd': 7.9,
'halfSecondBytes': [
// Bytes were determined using the command:
// `ffprobe -i car-20120827-8c.mp4 -show_packets`
0, 10695, 18504, 26561, 34310, 42401, 49986, 58167, 65700, 73651,
81704, 89501, 97173, 104745, 112544, 120466, 128435,
],
}
],
AudioHuge: [
'car-20120827-8d.mp4', 5789853, 181.58, {'appendAudioOffset': 17.42}
],
Audio51: ['sintel-trunc.mp4', 813119, 20.05],
Audio1MB: ['car-audio-1MB-trunc.mp4', 1048576, 65.875],
AudioLowExplicitHE: [
'spotlight-tr-heaac-explicit.mp4', 156137, 26.10, {
'mimeType': 'audio/mp4; codecs="mp4a.40.5"',
'sbrSignaling': 'Explicit'
}
],
AudioLowImplicitHE: [
'spotlight-tr-heaac-implicit.mp4', 156138, 26.10, {
'mimeType': 'audio/mp4; codecs="mp4a.40.5"',
'sbrSignaling': 'Implicit'
}
],
AudioForVP9Live: ['vp9-live.mp4', 243930, 14.997],
AudioNormalClearKey: [
'car_cenc-20120827-8c.mp4', 3013084, 181.58, {
'key': util.createUint8ArrayFromJSArray([
0x1a, 0x8a, 0x20, 0x95, 0xe4, 0xde, 0xb2, 0xd2,
0x9e, 0xc8, 0x16, 0xac, 0x7b, 0xae, 0x20, 0x82
]),
'kid': util.createUint8ArrayFromJSArray([
0x60, 0x06, 0x1e, 0x01, 0x7e, 0x47, 0x7e, 0x87,
0x7e, 0x57, 0xd0, 0x0d, 0x1e, 0xd0, 0x0d, 0x1e
])
}
],
AudioSmallCenc: [
'oops_cenc-20121114-148.mp4', 999679, 242.71, {
'video_id': '03681262dc412c06',
'playready_signature': PLAYREADY_SIGNATURE_1,
'widevine_signature': WIDEVINE_SIGNATURE_1
}
],
AudioMeridian: ['meridian_aac_med.mp4', 11638237, 719.08],
},
};
var Opus = {
streamtype: 'Opus',
mimetype: 'audio/webm; codecs="opus"',
mediatype: 'audio',
streams: {
Audio51: ['opus51.webm', 15583281, 300.02],
CarLow: ['car_opus_low.webm', 1205174, 181.48],
CarMed: [
'car_opus_med.webm', 1657817, 181.48, {
200000: 28.221,
'halfSecondRangeEnd': 832,
'halfSecondDurationEnd': 7.9,
'halfSecondBytes': [
// Bytes were determined using the command:
// `mkvinfo car_opus_med.webm -t -v -v`
0, 839, 4914, 9491, 14193, 19465, 24626, 28805, 33149, 36685,
40074, 44151, 47519, 50836, 54544, 58708, 62757,
],
}
],
CarHigh: [
'car_opus_high.webm', 3280103, 181.48, {'appendAudioOffset': 33.221}
],
SantaHigh: ['santa_opus_high.webm', 1198448, 70.861],
SintelEncrypted: [
'sintel_opus_enc.webm', 14956771, 888.04, {
'video_id': '31e1685307acf271',
'widevine_signature': SINTEL_WIDEVINE_SIGNATURE
}
],
},
};
var AC3 = {
streamtype: 'AC3',
mimetype: 'audio/mp4; codecs="ac-3"',
mediatype: 'audio',
streams: {
Audio51: ['spoken_channel_positions_ac3_51.fmp4', 645818, 13.44],
},
};
var EAC3 = {
streamtype: 'EAC3',
mimetype: 'audio/mp4; codecs="ec-3"',
mediatype: 'audio',
streams: {
Audio51: ['spoken_channel_positions_eac3_51.fmp4', 645820, 13.44],
},
};
var H264 = {
streamtype: 'H264',
mimetype: 'video/mp4; codecs="avc1.640028"',
mediatype: 'video',
streams: {
VideoTiny: [
'car-20120827-85.mp4', 6015001, 181.44, {
'videoChangeRate': 11.47,
'mimeType': 'video/mp4; codecs="avc1.4d4015"',
'resolution': '240p'
}
],
VideoNormal: [
'car-20120827-86.mp4', 15593225, 181.44,
{'mimeType': 'video/mp4; codecs="avc1.4d401e"', 'resolution': '360p'}
],
CarMedium: [
'car09222016-med-134.mp4', 10150205, 181.47,
{'mimeType': 'video/mp4; codecs="avc1.4d401e"', 'resolution': '360p'}
],
VideoHuge: [
'car-20120827-89.mp4', 95286345, 181.44,
{'mimeType': 'video/mp4; codecs="avc1.640028"', 'resolution': '1080p'}
],
Video1MB: [
'test-video-1MB.mp4', 1053406, 1.04, {
'mimeType': 'video/mp4; codecs="avc1.4d401f"',
'resolution': '360p',
'width': 480
}
],
VideoNormalClearKey: [
'car_cenc-20120827-86.mp4', 15795193, 181.44, {
'mimeType': 'video/mp4; codecs="avc1.4d401e"',
'key': util.createUint8ArrayFromJSArray([
0x1a, 0x8a, 0x20, 0x95, 0xe4, 0xde, 0xb2, 0xd2,
0x9e, 0xc8, 0x16, 0xac, 0x7b, 0xae, 0x20, 0x82
]),
'kid': util.createUint8ArrayFromJSArray([
0x60, 0x06, 0x1e, 0x01, 0x7e, 0x47, 0x7e, 0x87,
0x7e, 0x57, 0xd0, 0x0d, 0x1e, 0xd0, 0x0d, 0x1e
]),
'resolution': '360p'
}
],
VideoStreamYTCenc: [
'oops_cenc-20121114-145-no-clear-start.mp4', 39980507, 242.71, {
'mimeType': 'video/mp4; codecs="avc1.4d401f"',
'video_id': '03681262dc412c06',
'widevine_signature': WIDEVINE_SIGNATURE_1,
'key': util.createUint8ArrayFromJSArray([
233, 122, 210, 133, 203, 93, 59, 228,
167, 150, 27, 122, 246, 145, 112, 218
]),
'resolution': '720p'
}
],
VideoTinyStreamYTCenc: [
'oops_cenc-20121114-145-143.mp4', 7229257, 30.03,
{'mimeType': 'video/mp4; codecs="avc1.4d401f"', 'resolution': '720p'}
],
VideoSmallStreamYTCenc: [
'oops_cenc-20121114-143-no-clear-start.mp4', 12045546, 242.71, {
'mimeType': 'video/mp4; codecs="avc1.4d401e"',
'key': util.createUint8ArrayFromJSArray([
131, 162, 92, 175, 153, 178, 172, 41,
2, 167, 251, 126, 233, 215, 230, 185
]),
'resolution': '360p'
}
],
VideoSmallCenc: [
'oops_cenc-20121114-142.mp4', 8017271, 242.71, {
'mimeType': 'video/mp4; codecs="avc1.4d4015"',
'video_id': '03681262dc412c06',
'playready_signature': PLAYREADY_SIGNATURE_1,
'widevine_signature': WIDEVINE_SIGNATURE_1,
'resolution': '240p'
}
],
VideoMultiKeyCenc: [
'tears_h264_main_720p_1500.mp4', 105466539, 734.17, {
'mimetype': 'video/mp4; codecs="avc1.4d401f"',
'pssh': util.createUint8ArrayFromJSArray([
0, 0, 0, 68, 112, 115, 115, 104,
0, 0, 0, 0, 237, 239, 139, 169,
121, 214, 74, 206, 163, 200, 39, 220,
213, 29, 33, 237, 0, 0, 0, 36,
8, 1, 18, 1, 49, 26, 13, 119,
105, 100, 101, 118, 105, 110, 101, 95,
116, 101, 115, 116, 34, 10, 50, 48,
49, 53, 95, 116, 95, 49, 54, 107,
42, 2, 83, 68
]),
'license_server': 'https://proxy.staging.widevine.com/proxy',
'width': 1280,
'height': 532
}
],
DrmL3NoHDCP144p30fpsCenc: [
'drml3NoHdcp_h264_144p_30fps_cenc.mp4', 1463083, 101.899, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '144p'
}
],
DrmL3NoHDCP240p30fpsCenc: [
'drml3NoHdcp_h264_240p_30fps_cenc.mp4', 3177191, 101.899, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '240p'
}
],
DrmL3NoHDCP360p30fpsCenc: [
'drml3NoHdcp_h264_360p_30fps_cenc.mp4', 7297992, 101.899, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '360p'
}
],
DrmL3NoHDCP480p30fpsCenc: [
'drml3NoHdcp_h264_480p_30fps_cenc.mp4', 14394742, 101.899, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '480p'
}
],
DrmL3NoHDCP480p30fpsMqCenc: [
'drml3NoHdcp_h264_480p_mq_30fps_cenc.mp4', 22118210, 101.899, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '480p',
'quality': 'MQ'
}
],
DrmL3NoHDCP480p30fpsHqCenc: [
'drml3NoHdcp_h264_480p_hq_30fps_cenc.mp4', 44132909, 101.899, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '480p',
'quality': 'HQ'
}
],
DrmL3NoHDCP720p30fpsCenc: [
'drml3NoHdcp_h264_720p_30fps_cenc.mp4', 28788524, 101.899, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '720p'
}
],
DrmL3NoHDCP720p30fpsMqCenc: [
'drml3NoHdcp_h264_720p_mq_30fps_cenc.mp4', 44199586, 101.899, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '720p',
'quality': 'MQ'
}
],
DrmL3NoHDCP720p30fpsHqCenc: [
'drml3NoHdcp_h264_720p_hq_30fps_cenc.mp4', 73591730, 101.899, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '720p',
'quality': 'HQ'
}
],
DrmL3NoHDCP720p60fpsCenc: [
'drml3NoHdcp_h264_720p_60fps_cenc.mp4', 38436183, 101.899, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 60,
'resolution': '720p'
}
],
DrmL3NoHDCP720p60fpsMqCenc: [
'drml3NoHdcp_h264_720p_mq_60fps_cenc.mp4', 61027135, 101.899, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 60,
'resolution': '720p',
'quality': 'MQ'
}
],
DrmL3NoHDCP1080p30fpsCenc: [
'drml3NoHdcp_h264_1080p_30fps_cenc.mp4', 55005156, 101.899, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '1080p'
}
],
DrmL3NoHDCP1080p30fpsMqCenc: [
'drml3NoHdcp_h264_1080p_mq_30fps_cenc.mp4', 73580599, 101.899, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '1080p',
'quality': 'MQ'
}
],
DrmL3NoHDCP1080p30fpsHqCenc: [
'drml3NoHdcp_h264_1080p_hq_30fps_cenc.mp4', 102970523, 101.899, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '1080p',
'quality': 'HQ'
}
],
DrmL3NoHDCP1080p60fpsCenc: [
'drml3NoHdcp_h264_1080p_60fps_cenc.mp4', 72603681, 101.899, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 60,
'resolution': '1080p'
}
],
DrmL3NoHDCP1080p60fpsMqCenc: [
'drml3NoHdcp_h264_1080p_mq_60fps_cenc.mp4', 95823710, 101.899, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 60,
'resolution': '1080p',
'quality': 'MQ'
}
],
ProgressiveLow: [
'car_20130125_18.mp4', 15477531, 181.55,
{'mimeType': 'video/mp4; codecs="avc1.42c01e"', 'resolution': '360p'}
],
FrameGap: [
'nq-frames24-tfdt23.mp4', 11883895, 242.46,
{'mimeType': 'video/mp4; codecs="avc1.4d401e"', 'resolution': '360p'}
],
FrameOverlap: [
'nq-frames23-tfdt24.mp4', 11883895, 242.46,
{'mimeType': 'video/mp4; codecs="avc1.4d401e"', 'resolution': '360p'}
],
Webgl144p15fps: [
'big-buck-bunny-h264-144p-15fps.mp4', 8620045, 634.60, {
'mimeType': 'video/mp4; codecs="avc1.42c00c"',
'fps': 15,
'resolution': '144p'
}
],
Webgl240p30fps: [
'big-buck-bunny-h264-240p-30fps.mp4', 19406299, 634.57, {
'mimeType': 'video/mp4; codecs="avc1.4d4015"',
'fps': 30,
'resolution': '240p'
}
],
Webgl360p30fps: [
'big-buck-bunny-h264-360p-30fps.mp4', 28791964, 634.57, {
'mimeType': 'video/mp4; codecs="avc1.4d401e"',
'fps': 30,
'resolution': '360p'
}
],
Webgl480p30fps: [
'big-buck-bunny-h264-480p-30fps.mp4', 56238435, 634.57, {
'mimeType': 'video/mp4; codecs="avc1.4d401f"',
'fps': 30,
'resolution': '480p'
}
],
Webgl720p30fps: [
'big-buck-bunny-h264-720p-30fps.mp4', 106822776, 634.57, {
'mimeType': 'video/mp4; codecs="avc1.4d401f"',
'fps': 30,
'resolution': '720p'
}
],
Webgl720p60fps: [
'big-buck-bunny-h264-720p-60fps.mp4', 181505335, 634.57, {
'mimeType': 'video/mp4; codecs="avc1.4d4020"',
'fps': 60,
'resolution': '720p'
}
],
Webgl1080p30fps: [
'big-buck-bunny-h264-1080p-30fps.mp4', 189028629, 634.57, {
'mimeType': 'video/mp4; codecs="avc1.640028"',
'fps': 30,
'resolution': '1080p'
}
],
Webgl1080p60fps: [
'big-buck-bunny-h264-1080p-60fps.mp4', 313230764, 634.57, {
'mimeType': 'video/mp4; codecs="avc1.64002a"',
'fps': 60,
'resolution': '1080p'
}
],
Webgl1440p30fps: [
'big-buck-bunny-h264-1440p-30fps.mp4', 454390604, 634.57, {
'mimeType': 'video/mp4; codecs="avc1.640032"',
'fps': 30,
'resolution': '1440p'
}
],
Webgl2160p30fps: [
'big-buck-bunny-h264-2160p-30fps.mp4', 873983617, 634.57, {
'mimeType': 'video/mp4; codecs="avc1.640033"',
'fps': 30,
'resolution': '2160p'
}
],
Spherical144s30fps: [
'spherical_h264_144s_30fps.mp4', 902503, 149.31, {
'mimeType': 'video/mp4; codecs="avc1.4d400c"',
'fps': 30,
'resolution': '144p',
'spherical': true
}
],
Spherical240s30fps: [
'spherical_h264_240s_30fps.mp4', 2095800, 149.31, {
'mimeType': 'video/mp4; codecs="avc1.4d4015"',
'fps': 30,
'resolution': '240p',
'spherical': true
}
],
Spherical360s30fps: [
'spherical_h264_360s_30fps.mp4', 3344623, 149.31, {
'mimeType': 'video/mp4; codecs="avc1.4d401e"',
'fps': 30,
'resolution': '360p',
'spherical': true
}
],
Spherical480s30fps: [
'spherical_h264_480s_30fps.mp4', 7238157, 149.31, {
'mimeType': 'video/mp4; codecs="avc1.4d401f"',
'fps': 30,
'resolution': '480p',
'spherical': true
}
],
Spherical720s30fps: [
'spherical_h264_720s_30fps.mp4', 15323211, 149.31, {
'mimeType': 'video/mp4; codecs="avc1.4d401f"',
'fps': 30,
'resolution': '720p',
'spherical': true
}
],
Spherical720s60fps: [
'spherical_h264_720s_60fps.mp4', 31284601, 149.29, {
'mimeType': 'video/mp4; codecs="avc1.4d4020"',
'fps': 60,
'resolution': '720p',
'spherical': true
}
],
Spherical1080s30fps: [
'spherical_h264_1080s_30fps.mp4', 46455958, 149.31, {
'mimeType': 'video/mp4; codecs="avc1.640028"',
'fps': 30,
'resolution': '1080p',
'spherical': true
}
],
Spherical1080s60fps: [
'spherical_h264_1080s_60fps.mp4', 59213840, 149.29, {
'mimeType': 'video/mp4; codecs="avc1.64002a"',
'fps': 60,
'resolution': '1080p',
'spherical': true
}
],
Spherical1440s30fps: [
'spherical_h264_1440s_30fps.mp4', 97687330, 149.31, {
'mimeType': 'video/mp4; codecs="avc1.640032"',
'fps': 30,
'resolution': '1440p',
'spherical': true
}
],
Spherical1440s60fps: [
'spherical_h264_1440s_60fps.mp4', 131898628, 149.29, {
'mimeType': 'video/mp4; codecs="avc1.640033"',
'fps': 60,
'resolution': '1440p',
'spherical': true
}
],
Spherical2160s30fps: [
'spherical_h264_2160s_30fps.mp4', 179943784, 149.31, {
'mimeType': 'video/mp4; codecs="avc1.640033"',
'fps': 30,
'resolution': '2160p',
'spherical': true
}
],
Spherical2160s60fps: [
'spherical_h264_2160s_60fps.mp4', 239610178, 149.29, {
'mimeType': 'video/mp4; codecs="avc1.640033"',
'fps': 60,
'resolution': '2160p',
'spherical': true
}
],
},
};
var VP9 = {
streamtype: 'VP9',
mimetype: 'video/webm; codecs="vp9"',
mediatype: 'video',
streams: {
Video1080p1MB: [
'big-buck-bunny-vp9-1080p-1mb.webm', 1184180, 7.00,
{'resolution': '1080p'}
],
Video2160p1MB: [
'big-buck-bunny-vp9-2160p-1mb.webm', 1091680, 3.50,
{'resolution': '2160p'}
],
Video2160pHdr1MB: [
'meridian_vp9_hdr_2160p_1mb.webm', 1479002, 1.01, {
'transferFunction': 'PQ',
'fps': 60,
'resolution': '2160p',
'mimeType': 'video/webm; codecs="vp9.2"'
}
],
VideoTiny: [
'feelings_vp9-20130806-242.webm', 4478156, 135.46,
{'videoChangeRate': 15.35, 'resolution': '240p'}
],
VideoNormal: [
'big-buck-bunny-vp9-360p-30fps.webm', 48362964, 634.53,
{'resolution': '360p'}
],
VideoHuge: [
'feelings_vp9-20130806-247.webm', 27757852, 135.46,
{'resolution': '720p'}
],
Video1MB: ['vp9-video-1mb.webm', 1103716, 1.00, {'resolution': '720p'}],
VideoLive: [
'vp9-live-1080p-30fps.webm', 2328275, 14.997,
{'resolution': '1080p', 'fps': 30}],
VideoNormalClearKey: [
'vid_vp9_encrypted03.webm', 657432, 6.00, {
'key': util.createUint8ArrayFromJSArray([
186, 232, 192, 193, 246, 129, 195, 1,
235, 26, 73, 6, 214, 222, 222, 17
]),
'kid': util.createUint8ArrayFromJSArray([
65, 192, 59, 240, 250, 198, 147, 131,
234, 178, 123, 253, 240, 131, 240, 129
]),
'resolution': '480p',
'width': 640
}
],
VideoStreamYTCenc: [
'vid_vp9_encrypted04.webm', 657432, 6.00, {
'key': util.createUint8ArrayFromJSArray([
186, 232, 192, 193, 246, 129, 195, 1,
235, 26, 73, 6, 214, 222, 222, 17
]),
'kid': util.createUint8ArrayFromJSArray([
65, 192, 59, 240, 250, 198, 147, 131,
234, 178, 123, 253, 240, 131, 240, 129
]),
'resolution': '480p',
'width': 640
}
],
VideoSmallStreamYTCenc: [
'vid_vp9_encrypted05.webm', 657432, 6.00, {
'key': util.createUint8ArrayFromJSArray([
179, 232, 192, 192, 150, 129, 195, 1,
235, 26, 73, 5, 54, 222, 222, 193
]),
'kid': util.createUint8ArrayFromJSArray([
135, 240, 59, 224, 234, 214, 147, 131,
234, 176, 123, 253, 240, 131, 240, 220
]),
'resolution': '480p',
'width': 640
}
],
VideoHighEnc: [
'sintel_enc-20160621-273.webm', 68919485, 887.958, {
'video_id': '31e1685307acf271',
'widevine_signature': SINTEL_WIDEVINE_SIGNATURE,
'width': 854,
'height': 364
}
],
VideoHighSubSampleEnc: [
'sintel_enc_subsample-20161014-318.webm', 80844835, 887.958, {
'video_id': '31e1685307acf271',
'widevine_signature': SINTEL_WIDEVINE_SIGNATURE,
'width': 854,
'height': 364
}
],
Sintel2kEnc: [
'sintel_vp9_2k_enc.webm', 479857063, 887.96, {
'video_id': '31e1685307acf271',
'widevine_signature': SINTEL_WIDEVINE_SIGNATURE,
'fps': 24,
'resolution': '1440p',
'height': 1090
}
],
Sintel4kEnc: [
'sintel_vp9_4k_enc.webm', 1037846120, 887.96, {
'video_id': '31e1685307acf271',
'widevine_signature': SINTEL_WIDEVINE_SIGNATURE,
'fps': 24,
'resolution': '2160p',
'width': 3840,
'height': 1636
}
],
DrmL3NoHDCP240p30fpsEnc: [
'drml3NoHdcp_vp9_240p_30fps_enc.webm', 2637069, 101.9, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '240p'
}
],
DrmL3NoHDCP360p30fpsEnc: [
'drml3NoHdcp_vp9_360p_30fps_enc.webm', 4961622, 101.9, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '360p'
}
],
DrmL3NoHDCP480p30fpsEnc: [
'drml3NoHdcp_vp9_480p_30fps_enc.webm', 9063639, 101.9, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '480p'
}
],
DrmL3NoHDCP480p30fpsMqEnc: [
'drml3NoHdcp_vp9_480p_mq_30fps_enc.webm', 11861551, 101.9, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '480p',
'quality': 'MQ'
}
],
DrmL3NoHDCP480p30fpsHqEnc: [
'drml3NoHdcp_vp9_480p_hq_30fps_enc.webm', 15292527, 101.9, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '480p',
'quality': 'HQ'
}
],
DrmL3NoHDCP720p30fpsEnc: [
'drml3NoHdcp_vp9_720p_30fps_enc.webm', 18557476, 101.9, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '720p'
}
],
DrmL3NoHDCP720p30fpsMqEnc: [
'drml3NoHdcp_vp9_720p_mq_30fps_enc.webm', 26985702, 101.9, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '720p',
'quality': 'MQ'
}
],
DrmL3NoHDCP720p30fpsHqEnc: [
'drml3NoHdcp_vp9_720p_hq_30fps_enc.webm', 27989534, 101.9, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '720p',
'quality': 'HQ'
}
],
DrmL3NoHDCP720p60fpsEnc: [
'drml3NoHdcp_vp9_720p_60fps_enc.webm', 32256950, 101.9, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 60,
'resolution': '720p'
}
],
DrmL3NoHDCP720p60fpsMqEnc: [
'drml3NoHdcp_vp9_720p_mq_60fps_enc.webm', 44497411, 101.9, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 60,
'resolution': '720p',
'quality': 'MQ'
}
],
DrmL3NoHDCP1080p30fpsEnc: [
'drml3NoHdcp_vp9_1080p_30fps_enc.webm', 33327074, 101.9, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '1080p'
}
],
DrmL3NoHDCP1080p30fpsMqEnc: [
'drml3NoHdcp_vp9_1080p_mq_30fps_enc.webm', 52629589, 101.9, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '1080p',
'quality': 'MQ'
}
],
DrmL3NoHDCP1080p30fpsHqEnc: [
'drml3NoHdcp_vp9_1080p_hq_30fps_enc.webm', 55565306, 101.9, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 30,
'resolution': '1080p',
'quality': 'HQ'
}
],
DrmL3NoHDCP1080p60fpsEnc: [
'drml3NoHdcp_vp9_1080p_60fps_enc.webm', 55756449, 101.9, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 60,
'resolution': '1080p'
}
],
DrmL3NoHDCP1080p60fpsMqEnc: [
'drml3NoHdcp_vp9_1080p_mq_60fps_enc.webm', 89414670, 101.9, {
'video_id': WIDEVINE_L3NOHDCP_VIDEO_ID,
'widevine_signature': WIDEVINE_L3NOHDCP_SIGNATURE,
'fps': 60,
'resolution': '1080p',
'quality': 'MQ'
}
],
ProgressiveLow: [
'feelings_vp9-20130806-243.webm', 7902885, 135.46,
{'resolution': '360p'}
],
Webgl144p30fps: [
'big-buck-bunny-vp9-144p-30fps.webm', 7102948, 634.53,
{'fps': 30, 'resolution': '144p'}
],
Webgl240p30fps: [
'big-buck-bunny-vp9-240p-30fps.webm', 15315502, 634.53,
{'fps': 30, 'resolution': '240p'}
],
Webgl360p30fps: [
'big-buck-bunny-vp9-360p-30fps.webm', 28562771, 634.53,
{'fps': 30, 'resolution': '360p'}
],
Webgl480p30fps: [
'big-buck-bunny-vp9-480p-30fps.webm', 48362964, 634.53,
{'fps': 30, 'resolution': '480p'}
],
Webgl720p30fps: [
'big-buck-bunny-vp9-720p-30fps.webm', 91390585, 634.53,
{'fps': 30, 'resolution': '720p'}
],
Webgl720p60fps: [
'big-buck-bunny-vp9-720p-60fps.webm', 151583677, 634.53,
{'fps': 60, 'resolution': '720p'}
],
Webgl1080p30fps: [
'big-buck-bunny-vp9-1080p-30fps.webm', 168727073, 634.53,
{'fps': 30, 'resolution': '1080p'}
],
Webgl1080p60fps: [
'big-buck-bunny-vp9-1080p-60fps.webm', 252622340, 634.53,
{'fps': 60, 'resolution': '1080p'}
],
Webgl1440p30fps: [
'big-buck-bunny-vp9-1440p-30fps.webm', 460158586, 634.53,
{'fps': 30, 'resolution': '1440p'}
],
Webgl1440p60fps: [
'big-buck-bunny-vp9-1440p-60fps.webm', 661242960, 634.53,
{'fps': 60, 'resolution': '1440p'}
],
Webgl2160p30fps: [
'big-buck-bunny-vp9-2160p-30fps.webm', 1089986842, 634.53,
{'fps': 30, 'resolution': '2160p'}
],
Webgl2160p60fps: [
'big-buck-bunny-vp9-2160p-60fps.webm', 1721994529, 634.53,
{'fps': 60, 'resolution': '2160p'}
],
Spherical144s30fps: [
'spherical_vp9_144s_30fps.webm', 1386771, 149.28,
{'fps': 30, 'resolution': '144p', 'spherical': true}
],
Spherical240s30fps: [
'spherical_vp9_240s_30fps.webm', 2164087, 149.28,
{'fps': 30, 'resolution': '240p', 'spherical': true}
],
Spherical360s30fps: [
'spherical_vp9_360s_30fps.webm', 4539259, 149.28,
{'fps': 30, 'resolution': '360p', 'spherical': true}
],
Spherical480s30fps: [
'spherical_vp9_480s_30fps.webm', 8181410, 149.28,
{'fps': 30, 'resolution': '480p', 'spherical': true}
],
Spherical720s30fps: [
'spherical_vp9_720s_30fps.webm', 18142938, 149.28,
{'fps': 30, 'resolution': '720p', 'spherical': true}
],
Spherical720s60fps: [
'spherical_vp9_720s_60fps.webm', 25630410, 149.29,
{'fps': 60, 'resolution': '720p', 'spherical': true}
],
Spherical1080s30fps: [
'spherical_vp9_1080s_30fps.webm', 36208240, 149.28,
{'fps': 30, 'resolution': '1080p', 'spherical': true}
],
Spherical1080s60fps: [
'spherical_vp9_1080s_60fps.webm', 53176311, 149.29,
{'fps': 60, 'resolution': '1080p', 'spherical': true}
],
Spherical1440s30fps: [
'spherical_vp9_1440s_30fps.webm', 98235300, 149.28,
{'fps': 30, 'resolution': '1440p', 'spherical': true}
],
Spherical1440s60fps: [
'spherical_vp9_1440s_60fps.webm', 152948581, 149.29,
{'fps': 60, 'resolution': '1440p', 'spherical': true}
],
Spherical2160s30fps: [
'spherical_vp9_2160s_30fps.webm', 243510558, 149.28,
{'fps': 30, 'resolution': '2160p', 'spherical': true}
],
Spherical2160s60fps: [
'spherical_vp9_2160s_60fps.webm', 393625694, 149.29,
{'fps': 60, 'resolution': '2160p', 'spherical': true}
],
HdrHlgUltralow: [
'motor_vp9_hdr_ultralow.webm', 4093046, 254.462,
{
'transferFunction': 'HLG',
'fps': 30,
'resolution': '144p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrHlgLow: [
'motor_vp9_hdr_low.webm', 6157161, 254.462,
{
'transferFunction': 'HLG',
'fps': 30,
'resolution': '240p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrHlgMed: [
'motor_vp9_hdr_med.webm', 13026706, 254.462,
{
'transferFunction': 'HLG',
'fps': 30,
'resolution': '360p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrHlgHigh: [
'motor_vp9_hdr_high.webm', 24059408, 254.462,
{
'transferFunction': 'HLG',
'fps': 30,
'resolution': '480p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrHlg720p: [
'motor_vp9_hdr_720p.webm', 54591653, 254.462,
{
'transferFunction': 'HLG',
'fps': 30,
'resolution': '720p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrHlg1080p: [
'motor_vp9_hdr_1080p.webm', 96437886, 254.462,
{
'transferFunction': 'HLG',
'fps': 30,
'resolution': '1080p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrHlg2k: [
'motor_vp9_hdr_2k.webm', 304356661, 254.462,
{
'transferFunction': 'HLG',
'fps': 30,
'resolution': '1440p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrHlg4k: [
'motor_vp9_hdr_4k.webm', 631043806, 254.462,
{
'transferFunction': 'HLG',
'fps': 30,
'resolution': '2160p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrHlgUltralowHfr: [
'news_vp9_hdr_ultralow.webm', 2629927, 136.62,
{
'transferFunction': 'HLG',
'fps': 60,
'resolution': '144p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrHlgLowHfr: [
'news_vp9_hdr_low.webm', 3948184, 136.62,
{
'transferFunction': 'HLG',
'fps': 60,
'resolution': '240p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrHlgMedHfr: [
'news_vp9_hdr_med.webm', 8339341, 136.62,
{
'transferFunction': 'HLG',
'fps': 60,
'resolution': '360p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrHlgHighHfr: [
'news_vp9_hdr_high.webm', 15621796, 136.62,
{
'transferFunction': 'HLG',
'fps': 60,
'resolution': '480p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrHlg720pHfr: [
'news_vp9_hdr_720p.webm', 34871072, 136.62,
{
'transferFunction': 'HLG',
'fps': 60,
'resolution': '720p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrHlg1080pHfr: [
'news_vp9_hdr_1080p.webm', 58835191, 136.62,
{
'transferFunction': 'HLG',
'fps': 60,
'resolution': '1080p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrHlg2kHfr: [
'news_vp9_hdr_2k.webm', 156656282, 136.62,
{
'transferFunction': 'HLG',
'fps': 60,
'resolution': '1440p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrHlg4kHfr: [
'news_vp9_hdr_4k.webm', 314053586, 136.62,
{
'transferFunction': 'HLG',
'fps': 60,
'resolution': '2160p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrPqUltralow: [
'roadtrip_vp9_hdr_ultralow.webm', 1561697, 108.358,
{
'transferFunction': 'PQ',
'fps': 30,
'resolution': '144p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrPqLow: [
'roadtrip_vp9_hdr_low.webm', 2662190, 108.358,
{
'transferFunction': 'PQ',
'fps': 30,
'resolution': '240p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrPqMed: [
'roadtrip_vp9_hdr_med.webm', 5719740, 108.358,
{
'transferFunction': 'PQ',
'fps': 30,
'resolution': '360p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrPqHigh: [
'roadtrip_vp9_hdr_high.webm', 10715789, 108.358,
{
'transferFunction': 'PQ',
'fps': 30,
'resolution': '480p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrPq720p: [
'roadtrip_vp9_hdr_720p.webm', 24453226, 108.358,
{
'transferFunction': 'PQ',
'fps': 30,
'resolution': '720p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrPq1080p: [
'roadtrip_vp9_hdr_1080p.webm', 43377155, 108.358,
{
'transferFunction': 'PQ',
'fps': 30,
'resolution': '1080p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrPq2k: [
'roadtrip_vp9_hdr_2k.webm', 121051265, 108.358,
{
'transferFunction': 'PQ',
'fps': 30,
'resolution': '1440p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrPq4k: [
'roadtrip_vp9_hdr_4k.webm', 286332111, 108.358,
{
'transferFunction': 'PQ',
'fps': 30,
'resolution': '2160p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrPqUltralowHfr: [
'meridian_vp9_hdr_ultralow.webm', 12680814, 718.94,
{
'transferFunction': 'PQ',
'fps': 60,
'resolution': '144p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrPqLowHfr: [
'meridian_vp9_hdr_low.webm', 26899101, 718.94,
{
'transferFunction': 'PQ',
'fps': 60,
'resolution': '240p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrPqMedHfr: [
'meridian_vp9_hdr_med.webm', 63165785, 718.94,
{
'transferFunction': 'PQ',
'fps': 60,
'resolution': '360p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrPqHighHfr: [
'meridian_vp9_hdr_high.webm', 132217173, 718.94,
{
'transferFunction': 'PQ',
'fps': 60,
'resolution': '480p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrPq720pHfr: [
'meridian_vp9_hdr_720p.webm', 339235754, 718.94,
{
'transferFunction': 'PQ',
'fps': 60,
'resolution': '720p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrPq1080pHfr: [
'meridian_vp9_hdr_1080p.webm', 531408862, 718.94,
{
'transferFunction': 'PQ',
'fps': 60,
'resolution': '1080p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrPq2kHfr: [
'meridian_vp9_hdr_2k.webm', 1259703408, 718.94,
{
'transferFunction': 'PQ',
'fps': 60,
'resolution': '1440p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
HdrPq4kHfr: [
'meridian_vp9_hdr_4k.webm', 2249443995, 718.94,
{
'transferFunction': 'PQ',
'fps': 60,
'resolution': '2160p',
'mimeType': 'video/webm; codecs="vp9.2"',
},
],
},
};
var AV1 = {
streamtype: 'AV1',
mimetype: `video/mp4; codecs="${util.av1Codec()}"`,
mediatype: 'video',
streams: {
VideoSmall: [
'iPLm0O-flS8-56.62-Vlog_2160_240p.mp4', 338002, 18.08,
{
'fps': 30,
'resolution': '240p',
'mimeType': `video/mp4; codecs="${util.av1Codec('2.0')}"`,
}
],
Video1MB: [
'big-buck-bunny-av1-144p-30fps.mp4', 1000000, 108.33,
{
'fps': 30,
'resolution': '144p',
'mimeType': `video/mp4; codecs="${util.av1Codec('2.0')}"`,
}
],
Bunny144p30fps: [
'big-buck-bunny-av1-144p-30fps.mp4', 5829002, 634.60,
{
'fps': 30,
'resolution': '144p',
'mimeType': `video/mp4; codecs="${util.av1Codec('2.0')}"`,
}
],
Bunny240p30fps: [
'big-buck-bunny-av1-240p-30fps.mp4', 11684317, 634.60,
{
'fps': 30,
'resolution': '240p',
'mimeType': `video/mp4; codecs="${util.av1Codec('2.0')}"`,
'videoChangeRate': 25.37,
}
],
Bunny360p30fps: [
'big-buck-bunny-av1-360p-30fps.mp4', 20805110, 634.60,
{
'fps': 30,
'resolution': '360p',
'mimeType': `video/mp4; codecs="${util.av1Codec('2.1')}"`,
}
],
Bunny480p30fps: [
'big-buck-bunny-av1-480p-30fps.mp4', 36194938, 634.60,
{
'fps': 30,
'resolution': '480p',
'mimeType': `video/mp4; codecs="${util.av1Codec('3.0')}"`,
}
],
Bunny720p30fps: [
'big-buck-bunny-av1-720p-30fps.mp4', 70832592, 634.60,
{
'fps': 30,
'resolution': '720p',
'mimeType': `video/mp4; codecs="${util.av1Codec('3.1')}"`,
}
],
Bunny720p60fps: [
'big-buck-bunny-av1-720p-60fps.mp4', 77454477, 634.57,
{
'fps': 60,
'resolution': '720p',
'mimeType': `video/mp4; codecs="${util.av1Codec('4.0')}"`,
}
],
Bunny1080p30fps: [
'big-buck-bunny-av1-1080p-30fps.mp4', 131929783, 634.60,
{
'fps': 30,
'resolution': '1080p',
'mimeType': `video/mp4; codecs="${util.av1Codec('4.0')}"`,
}
],
Bunny1080p60fps: [
'big-buck-bunny-av1-1080p-60fps.mp4', 132082214, 634.57,
{
'fps': 60,
'resolution': '1080p',
'mimeType': `video/mp4; codecs="${util.av1Codec('4.1')}"`,
}
],
Bunny1440p30fps: [
'big-buck-bunny-av1-1440p-30fps.mp4', 389127462, 624.00,
{
'fps': 30,
'resolution': '1440p',
'mimeType': `video/mp4; codecs="${util.av1Codec('5.0')}"`,
}
],
Bunny1440p60fps: [
'big-buck-bunny-av1-1440p-60fps.mp4', 406942546, 334.40,
{
'fps': 60,
'resolution': '1440p',
'mimeType': `video/mp4; codecs="${util.av1Codec('5.0')}"`,
}
],
Sports2160p30fps: [
'sports_2160p30.mp4', 30760646, 19.99,
{
'fps': 30,
'resolution': '2160p',
'mimeType': `video/mp4; codecs="${util.av1Codec('5.0')}"`,
}
],
},
};
var streamTypes = [AAC, Opus, H264, VP9, AV1, AC3, EAC3];
var defaultWidth = {
'144p': 256,
'240p': 426,
'360p': 640,
'480p': 854,
'720p': 1280,
'1080p': 1920,
'1440p': 2560,
'2160p': 3840
};
var defaultHeight = {
'144p': 144,
'240p': 240,
'360p': 360,
'480p': 480,
'720p': 720,
'1080p': 1080,
'1440p': 1440,
'2160p': 2160
};
var createStreamDefFunc = function(codec, mediaType, mimeType) {
/**
* @param {string} src - path to stream source file
* @param {number} size - size of stream in bytes
* @param {number} duration - duration of stream in seconds
* @param {?Object<string, *> customMap - other stream properties
*/
return function(src, size, duration, customMap) {
var get = function(attribute) {
if (!customMap) {
return null;
}
return attribute in customMap ? customMap[attribute] : null;
};
var mime = mimeType;
if (!!customMap) {
if (customMap.hasOwnProperty('mimeType')) mime = customMap['mimeType'];
// Set default width and height based on resolution.
if ('resolution' in customMap) {
if (!('width' in customMap))
customMap.width = defaultWidth[customMap['resolution']];
if (!('height' in customMap))
customMap.height = defaultHeight[customMap['resolution']];
}
}
return {
codec: codec,
mediatype: mediaType,
mimetype: mime,
size: size,
src: util.getMediaPath(src),
duration: duration,
bps: Math.floor(size / duration),
customMap: customMap,
get: get
};
};
};
var mediaStreams = {};
for (var i in streamTypes) {
var mimeType = streamTypes[i].mimetype;
var mediaType = streamTypes[i].mediatype;
var streamType = streamTypes[i].streamtype;
mediaStreams[streamType] = {};
mediaStreams[streamType].mimetype = mimeType;
var createStreamDef = createStreamDefFunc(streamType, mediaType, mimeType);
var streams = streamTypes[i].streams;
for (var streamName in streams) {
if (streams.hasOwnProperty(streamName)) {
mediaStreams[streamType][streamName] =
createStreamDef.apply(null, streams[streamName]);
}
}
}
return mediaStreams;
})();
try {
exports.media = Media;
} catch (e) {
// do nothing, this function is not supposed to work for browser, but it's for
// Node js to generate json file instead.
}