Combine some DASH/HLS tests into one
This saves some testing time and also make it easier to compare DASH and HLS test results. Change-Id: Ia4bdb39f1f5ef7ee7b3f8f37f83d7490109380c2
This commit is contained in:
parent
b4ae6561f8
commit
71072d4e6d
|
@ -304,8 +304,8 @@ class PackagerAppTest(unittest.TestCase):
|
||||||
include_pssh_in_stream=True,
|
include_pssh_in_stream=True,
|
||||||
dash_if_iop=True,
|
dash_if_iop=True,
|
||||||
output_media_info=False,
|
output_media_info=False,
|
||||||
output_hls=False,
|
|
||||||
output_dash=False,
|
output_dash=False,
|
||||||
|
output_hls=False,
|
||||||
hls_playlist_type=None,
|
hls_playlist_type=None,
|
||||||
time_shift_buffer_depth=0.0,
|
time_shift_buffer_depth=0.0,
|
||||||
preserved_segments_outside_live_window=0,
|
preserved_segments_outside_live_window=0,
|
||||||
|
@ -370,12 +370,12 @@ class PackagerAppTest(unittest.TestCase):
|
||||||
|
|
||||||
if output_media_info:
|
if output_media_info:
|
||||||
flags.append('--output_media_info')
|
flags.append('--output_media_info')
|
||||||
|
if output_dash:
|
||||||
|
flags += ['--mpd_output', self.mpd_output]
|
||||||
if output_hls:
|
if output_hls:
|
||||||
flags += ['--hls_master_playlist_output', self.hls_master_playlist_output]
|
flags += ['--hls_master_playlist_output', self.hls_master_playlist_output]
|
||||||
if hls_playlist_type:
|
if hls_playlist_type:
|
||||||
flags += ['--hls_playlist_type', hls_playlist_type]
|
flags += ['--hls_playlist_type', hls_playlist_type]
|
||||||
if output_dash:
|
|
||||||
flags += ['--mpd_output', self.mpd_output]
|
|
||||||
|
|
||||||
if time_shift_buffer_depth != 0.0:
|
if time_shift_buffer_depth != 0.0:
|
||||||
flags += ['--time_shift_buffer_depth={0}'.format(time_shift_buffer_depth)]
|
flags += ['--time_shift_buffer_depth={0}'.format(time_shift_buffer_depth)]
|
||||||
|
@ -658,32 +658,36 @@ class PackagerFunctionalTest(PackagerAppTest):
|
||||||
|
|
||||||
def testAudioVideoWithLanguageOverride(self):
|
def testAudioVideoWithLanguageOverride(self):
|
||||||
self.assertPackageSuccess(
|
self.assertPackageSuccess(
|
||||||
self._GetStreams(['audio', 'video'], language='por'),
|
self._GetStreams(['audio', 'video'], language='por', hls=True),
|
||||||
self._GetFlags(default_language='por', output_dash=True))
|
self._GetFlags(default_language='por', output_dash=True,
|
||||||
|
output_hls=True))
|
||||||
self._CheckTestResults('audio-video-with-language-override')
|
self._CheckTestResults('audio-video-with-language-override')
|
||||||
|
|
||||||
def testAudioVideoWithLanguageOverrideUsingMixingCode(self):
|
def testAudioVideoWithLanguageOverrideUsingMixingCode(self):
|
||||||
self.assertPackageSuccess(
|
self.assertPackageSuccess(
|
||||||
self._GetStreams(['audio', 'video'], language='por'),
|
self._GetStreams(['audio', 'video'], language='por', hls=True),
|
||||||
self._GetFlags(default_language='pt', output_dash=True))
|
self._GetFlags(default_language='pt', output_dash=True,
|
||||||
|
output_hls=True))
|
||||||
self._CheckTestResults('audio-video-with-language-override')
|
self._CheckTestResults('audio-video-with-language-override')
|
||||||
|
|
||||||
def testAudioVideoWithLanguageOverrideUsingMixingCode2(self):
|
def testAudioVideoWithLanguageOverrideUsingMixingCode2(self):
|
||||||
self.assertPackageSuccess(
|
self.assertPackageSuccess(
|
||||||
self._GetStreams(['audio', 'video'], language='pt'),
|
self._GetStreams(['audio', 'video'], language='pt', hls=True),
|
||||||
self._GetFlags(default_language='por', output_dash=True))
|
self._GetFlags(default_language='por', output_dash=True,
|
||||||
|
output_hls=True))
|
||||||
self._CheckTestResults('audio-video-with-language-override')
|
self._CheckTestResults('audio-video-with-language-override')
|
||||||
|
|
||||||
def testAudioVideoWithLanguageOverrideUsingTwoCharacterCode(self):
|
def testAudioVideoWithLanguageOverrideUsingTwoCharacterCode(self):
|
||||||
self.assertPackageSuccess(
|
self.assertPackageSuccess(
|
||||||
self._GetStreams(['audio', 'video'], language='pt'),
|
self._GetStreams(['audio', 'video'], language='pt', hls=True),
|
||||||
self._GetFlags(default_language='pt', output_dash=True))
|
self._GetFlags(default_language='pt', output_dash=True,
|
||||||
|
output_hls=True))
|
||||||
self._CheckTestResults('audio-video-with-language-override')
|
self._CheckTestResults('audio-video-with-language-override')
|
||||||
|
|
||||||
def testAudioVideoWithLanguageOverrideWithSubtag(self):
|
def testAudioVideoWithLanguageOverrideWithSubtag(self):
|
||||||
self.assertPackageSuccess(
|
self.assertPackageSuccess(
|
||||||
self._GetStreams(['audio', 'video'], language='por-BR'),
|
self._GetStreams(['audio', 'video'], language='por-BR', hls=True),
|
||||||
self._GetFlags(output_dash=True))
|
self._GetFlags(output_dash=True, output_hls=True))
|
||||||
self._CheckTestResults('audio-video-with-language-override-with-subtag')
|
self._CheckTestResults('audio-video-with-language-override-with-subtag')
|
||||||
|
|
||||||
def testAacHe(self):
|
def testAacHe(self):
|
||||||
|
@ -711,35 +715,9 @@ class PackagerFunctionalTest(PackagerAppTest):
|
||||||
segmented=True,
|
segmented=True,
|
||||||
hls=True,
|
hls=True,
|
||||||
test_files=['bear-640x360.ts']),
|
test_files=['bear-640x360.ts']),
|
||||||
self._GetFlags(output_hls=True, output_dash=True))
|
self._GetFlags(output_dash=True, output_hls=True))
|
||||||
self._CheckTestResults('avc-aac-ts')
|
self._CheckTestResults('avc-aac-ts')
|
||||||
|
|
||||||
def testAvcAacTsLanguage(self):
|
|
||||||
# Currently we only support live packaging for ts.
|
|
||||||
self.assertPackageSuccess(
|
|
||||||
self._GetStreams(
|
|
||||||
['audio', 'video'],
|
|
||||||
output_format='ts',
|
|
||||||
segmented=True,
|
|
||||||
hls=True,
|
|
||||||
language='por',
|
|
||||||
test_files=['bear-640x360.ts']),
|
|
||||||
self._GetFlags(output_hls=True, default_language='por'))
|
|
||||||
self._CheckTestResults('avc-aac-ts-language')
|
|
||||||
|
|
||||||
def testAvcAacTsLanguageUsingTwoCharacterCode(self):
|
|
||||||
# Currently we only support live packaging for ts.
|
|
||||||
self.assertPackageSuccess(
|
|
||||||
self._GetStreams(
|
|
||||||
['audio', 'video'],
|
|
||||||
output_format='ts',
|
|
||||||
segmented=True,
|
|
||||||
hls=True,
|
|
||||||
language='pt',
|
|
||||||
test_files=['bear-640x360.ts']),
|
|
||||||
self._GetFlags(output_hls=True, default_language='pt'))
|
|
||||||
self._CheckTestResults('avc-aac-ts-language')
|
|
||||||
|
|
||||||
def testAvcAc3Ts(self):
|
def testAvcAc3Ts(self):
|
||||||
# Currently we only support live packaging for ts.
|
# Currently we only support live packaging for ts.
|
||||||
self.assertPackageSuccess(
|
self.assertPackageSuccess(
|
||||||
|
@ -803,37 +781,6 @@ class PackagerFunctionalTest(PackagerAppTest):
|
||||||
time_shift_buffer_depth=0.5))
|
time_shift_buffer_depth=0.5))
|
||||||
self._CheckTestResults('avc-ts-event-playlist')
|
self._CheckTestResults('avc-ts-event-playlist')
|
||||||
|
|
||||||
def testAvcTsLivePlaylistWithSegmentDeletion(self):
|
|
||||||
self.assertPackageSuccess(
|
|
||||||
self._GetStreams(
|
|
||||||
['audio'],
|
|
||||||
output_format='mp4',
|
|
||||||
segmented=True,
|
|
||||||
hls=True,
|
|
||||||
test_files=['bear-640x360.ts']),
|
|
||||||
self._GetFlags(
|
|
||||||
output_hls=True,
|
|
||||||
hls_playlist_type='LIVE',
|
|
||||||
segment_duration=0.5,
|
|
||||||
time_shift_buffer_depth=0.5,
|
|
||||||
preserved_segments_outside_live_window=1))
|
|
||||||
self._CheckTestResults('avc-ts-live-playlist-with-segment-deletion')
|
|
||||||
|
|
||||||
def testAvcTsDashDynamicWithSegmentDeletion(self):
|
|
||||||
self.assertPackageSuccess(
|
|
||||||
self._GetStreams(
|
|
||||||
['audio'],
|
|
||||||
output_format='mp4',
|
|
||||||
segmented=True,
|
|
||||||
hls=True,
|
|
||||||
test_files=['bear-640x360.ts']),
|
|
||||||
self._GetFlags(
|
|
||||||
output_dash=True,
|
|
||||||
segment_duration=0.5,
|
|
||||||
time_shift_buffer_depth=0.5,
|
|
||||||
preserved_segments_outside_live_window=1))
|
|
||||||
self._CheckTestResults('avc-ts-dash-dynamic-with-segment-deletion')
|
|
||||||
|
|
||||||
def testAvcTsLivePlaylistAndDashDynamicWithSegmentDeletion(self):
|
def testAvcTsLivePlaylistAndDashDynamicWithSegmentDeletion(self):
|
||||||
self.assertPackageSuccess(
|
self.assertPackageSuccess(
|
||||||
self._GetStreams(
|
self._GetStreams(
|
||||||
|
@ -1017,8 +964,9 @@ class PackagerFunctionalTest(PackagerAppTest):
|
||||||
|
|
||||||
def testEncryptionAndAdCues(self):
|
def testEncryptionAndAdCues(self):
|
||||||
self.assertPackageSuccess(
|
self.assertPackageSuccess(
|
||||||
self._GetStreams(['audio', 'video']),
|
self._GetStreams(['audio', 'video'], hls=True),
|
||||||
self._GetFlags(encryption=True, output_dash=True, ad_cues='1.5'))
|
self._GetFlags(encryption=True, output_dash=True, output_hls=True,
|
||||||
|
ad_cues='1.5'))
|
||||||
self._CheckTestResults('encryption-and-ad-cues')
|
self._CheckTestResults('encryption-and-ad-cues')
|
||||||
|
|
||||||
def testEncryptionAndAdCuesSplitContent(self):
|
def testEncryptionAndAdCuesSplitContent(self):
|
||||||
|
@ -1060,7 +1008,8 @@ class PackagerFunctionalTest(PackagerAppTest):
|
||||||
test_file='bear-subtitle-english.vtt',
|
test_file='bear-subtitle-english.vtt',
|
||||||
output_format='mp4')
|
output_format='mp4')
|
||||||
]
|
]
|
||||||
flags = self._GetFlags(output_hls=True, ad_cues='1.5')
|
flags = self._GetFlags(output_dash=True, output_hls=True,
|
||||||
|
generate_static_mpd=True, ad_cues='1.5')
|
||||||
self.assertPackageSuccess(streams, flags)
|
self.assertPackageSuccess(streams, flags)
|
||||||
self._CheckTestResults('vtt-text-to-mp4-with-ad-cues')
|
self._CheckTestResults('vtt-text-to-mp4-with-ad-cues')
|
||||||
|
|
||||||
|
@ -1350,12 +1299,6 @@ class PackagerFunctionalTest(PackagerAppTest):
|
||||||
self.assertPackageSuccess(streams, flags)
|
self.assertPackageSuccess(streams, flags)
|
||||||
self._CheckTestResults('ec3-packed-audio-encrypted')
|
self._CheckTestResults('ec3-packed-audio-encrypted')
|
||||||
|
|
||||||
def testHlsSingleSegmentMp4EncryptedAndAdCues(self):
|
|
||||||
self.assertPackageSuccess(
|
|
||||||
self._GetStreams(['audio', 'video'], hls=True),
|
|
||||||
self._GetFlags(encryption=True, output_hls=True, ad_cues='1.5'))
|
|
||||||
self._CheckTestResults('hls-single-segment-mp4-encrypted-and-ad-cues')
|
|
||||||
|
|
||||||
# Test HLS with multi-segment mp4 and content in subdirectories.
|
# Test HLS with multi-segment mp4 and content in subdirectories.
|
||||||
def testHlsMultiSegmentMp4WithCustomPath(self):
|
def testHlsMultiSegmentMp4WithCustomPath(self):
|
||||||
test_file = os.path.join(self.test_data_dir, 'bear-640x360.mp4')
|
test_file = os.path.join(self.test_data_dir, 'bear-640x360.mp4')
|
||||||
|
@ -1406,13 +1349,6 @@ class PackagerFunctionalTest(PackagerAppTest):
|
||||||
self._GetFlags(output_dash=True, generate_static_mpd=True))
|
self._GetFlags(output_dash=True, generate_static_mpd=True))
|
||||||
self._CheckTestResults('live-static-profile')
|
self._CheckTestResults('live-static-profile')
|
||||||
|
|
||||||
def testLiveStaticProfileAndAdCues(self):
|
|
||||||
self.assertPackageSuccess(
|
|
||||||
self._GetStreams(['audio', 'video'], segmented=True),
|
|
||||||
self._GetFlags(
|
|
||||||
output_dash=True, generate_static_mpd=True, ad_cues='1.5'))
|
|
||||||
self._CheckTestResults('live-static-profile-and-ad-cues')
|
|
||||||
|
|
||||||
def testLiveProfileAndEncryption(self):
|
def testLiveProfileAndEncryption(self):
|
||||||
self.assertPackageSuccess(
|
self.assertPackageSuccess(
|
||||||
self._GetStreams(['audio', 'video'], segmented=True),
|
self._GetStreams(['audio', 'video'], segmented=True),
|
||||||
|
@ -1532,27 +1468,16 @@ class PackagerFunctionalTest(PackagerAppTest):
|
||||||
self.assertPackageSuccess(streams, flags)
|
self.assertPackageSuccess(streams, flags)
|
||||||
self._CheckTestResults('hls-segmented-webvtt')
|
self._CheckTestResults('hls-segmented-webvtt')
|
||||||
|
|
||||||
def testHlsWithBandwidthOverride(self):
|
def testBandwidthOverride(self):
|
||||||
streams = [
|
streams = [
|
||||||
self._GetStream('audio', segmented=True, bandwidth=11111),
|
self._GetStream('audio', hls=True, bandwidth=11111),
|
||||||
self._GetStream('video', segmented=True, bandwidth=44444)
|
self._GetStream('video', hls=True, bandwidth=44444)
|
||||||
]
|
]
|
||||||
|
|
||||||
flags = self._GetFlags(output_hls=True)
|
flags = self._GetFlags(output_dash=True, output_hls=True)
|
||||||
|
|
||||||
self.assertPackageSuccess(streams, flags)
|
self.assertPackageSuccess(streams, flags)
|
||||||
self._CheckTestResults('hls-with-bandwidth-override')
|
self._CheckTestResults('bandwidth-override')
|
||||||
|
|
||||||
def testDashWithBandwidthOverride(self):
|
|
||||||
streams = [
|
|
||||||
self._GetStream('audio', bandwidth=11111),
|
|
||||||
self._GetStream('video', bandwidth=44444)
|
|
||||||
]
|
|
||||||
|
|
||||||
flags = self._GetFlags(output_dash=True)
|
|
||||||
|
|
||||||
self.assertPackageSuccess(streams, flags)
|
|
||||||
self._CheckTestResults('dash-with-bandwidth-override')
|
|
||||||
|
|
||||||
|
|
||||||
class PackagerCommandParsingTest(PackagerAppTest):
|
class PackagerCommandParsingTest(PackagerAppTest):
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
#EXTM3U
|
||||||
|
#EXT-X-VERSION:6
|
||||||
|
## Generated with https://github.com/google/shaka-packager version <tag>-<hash>-<test>
|
||||||
|
#EXT-X-TARGETDURATION:2
|
||||||
|
#EXT-X-PLAYLIST-TYPE:VOD
|
||||||
|
#EXT-X-MAP:URI="bear-640x360-audio.mp4",BYTERANGE="757@0"
|
||||||
|
#EXTINF:1.022,
|
||||||
|
#EXT-X-BYTERANGE:16655@825
|
||||||
|
bear-640x360-audio.mp4
|
||||||
|
#EXTINF:0.998,
|
||||||
|
#EXT-X-BYTERANGE:16253
|
||||||
|
bear-640x360-audio.mp4
|
||||||
|
#EXTINF:0.743,
|
||||||
|
#EXT-X-BYTERANGE:9963
|
||||||
|
bear-640x360-audio.mp4
|
||||||
|
#EXT-X-ENDLIST
|
|
@ -0,0 +1,17 @@
|
||||||
|
#EXTM3U
|
||||||
|
#EXT-X-VERSION:6
|
||||||
|
## Generated with https://github.com/google/shaka-packager version <tag>-<hash>-<test>
|
||||||
|
#EXT-X-TARGETDURATION:2
|
||||||
|
#EXT-X-PLAYLIST-TYPE:VOD
|
||||||
|
#EXT-X-I-FRAMES-ONLY
|
||||||
|
#EXT-X-MAP:URI="bear-640x360-video.mp4",BYTERANGE="823@0"
|
||||||
|
#EXTINF:1.001,
|
||||||
|
#EXT-X-BYTERANGE:15581@891
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXTINF:1.001,
|
||||||
|
#EXT-X-BYTERANGE:18221@100204
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXTINF:0.734,
|
||||||
|
#EXT-X-BYTERANGE:19663@222011
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXT-X-ENDLIST
|
|
@ -0,0 +1,16 @@
|
||||||
|
#EXTM3U
|
||||||
|
#EXT-X-VERSION:6
|
||||||
|
## Generated with https://github.com/google/shaka-packager version <tag>-<hash>-<test>
|
||||||
|
#EXT-X-TARGETDURATION:2
|
||||||
|
#EXT-X-PLAYLIST-TYPE:VOD
|
||||||
|
#EXT-X-MAP:URI="bear-640x360-video.mp4",BYTERANGE="823@0"
|
||||||
|
#EXTINF:1.068,
|
||||||
|
#EXT-X-BYTERANGE:99313@891
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXTINF:1.001,
|
||||||
|
#EXT-X-BYTERANGE:121807
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXTINF:0.734,
|
||||||
|
#EXT-X-BYTERANGE:79662
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXT-X-ENDLIST
|
9
packager/app/test/testdata/audio-video-with-language-override-with-subtag/output.m3u8
vendored
Normal file
9
packager/app/test/testdata/audio-video-with-language-override-with-subtag/output.m3u8
vendored
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
#EXTM3U
|
||||||
|
## Generated with https://github.com/google/shaka-packager version <tag>-<hash>-<test>
|
||||||
|
|
||||||
|
#EXT-X-MEDIA:TYPE=AUDIO,URI="bear-640x360-audio.m3u8",GROUP-ID="default-audio-group",LANGUAGE="pt-BR",NAME="stream_0",AUTOSELECT=YES,CHANNELS="2"
|
||||||
|
|
||||||
|
#EXT-X-STREAM-INF:BANDWIDTH=1103896,AVERAGE-BANDWIDTH=982641,CODECS="avc1.64001e,mp4a.40.2",RESOLUTION=640x360,AUDIO="default-audio-group"
|
||||||
|
bear-640x360-video.m3u8
|
||||||
|
|
||||||
|
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=214292,AVERAGE-BANDWIDTH=156327,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-video-iframe.m3u8"
|
16
packager/app/test/testdata/audio-video-with-language-override/bear-640x360-audio.m3u8
vendored
Normal file
16
packager/app/test/testdata/audio-video-with-language-override/bear-640x360-audio.m3u8
vendored
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#EXTM3U
|
||||||
|
#EXT-X-VERSION:6
|
||||||
|
## Generated with https://github.com/google/shaka-packager version <tag>-<hash>-<test>
|
||||||
|
#EXT-X-TARGETDURATION:2
|
||||||
|
#EXT-X-PLAYLIST-TYPE:VOD
|
||||||
|
#EXT-X-MAP:URI="bear-640x360-audio.mp4",BYTERANGE="757@0"
|
||||||
|
#EXTINF:1.022,
|
||||||
|
#EXT-X-BYTERANGE:16655@825
|
||||||
|
bear-640x360-audio.mp4
|
||||||
|
#EXTINF:0.998,
|
||||||
|
#EXT-X-BYTERANGE:16253
|
||||||
|
bear-640x360-audio.mp4
|
||||||
|
#EXTINF:0.743,
|
||||||
|
#EXT-X-BYTERANGE:9963
|
||||||
|
bear-640x360-audio.mp4
|
||||||
|
#EXT-X-ENDLIST
|
17
packager/app/test/testdata/audio-video-with-language-override/bear-640x360-video-iframe.m3u8
vendored
Normal file
17
packager/app/test/testdata/audio-video-with-language-override/bear-640x360-video-iframe.m3u8
vendored
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#EXTM3U
|
||||||
|
#EXT-X-VERSION:6
|
||||||
|
## Generated with https://github.com/google/shaka-packager version <tag>-<hash>-<test>
|
||||||
|
#EXT-X-TARGETDURATION:2
|
||||||
|
#EXT-X-PLAYLIST-TYPE:VOD
|
||||||
|
#EXT-X-I-FRAMES-ONLY
|
||||||
|
#EXT-X-MAP:URI="bear-640x360-video.mp4",BYTERANGE="823@0"
|
||||||
|
#EXTINF:1.001,
|
||||||
|
#EXT-X-BYTERANGE:15581@891
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXTINF:1.001,
|
||||||
|
#EXT-X-BYTERANGE:18221@100204
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXTINF:0.734,
|
||||||
|
#EXT-X-BYTERANGE:19663@222011
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXT-X-ENDLIST
|
16
packager/app/test/testdata/audio-video-with-language-override/bear-640x360-video.m3u8
vendored
Normal file
16
packager/app/test/testdata/audio-video-with-language-override/bear-640x360-video.m3u8
vendored
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
#EXTM3U
|
||||||
|
#EXT-X-VERSION:6
|
||||||
|
## Generated with https://github.com/google/shaka-packager version <tag>-<hash>-<test>
|
||||||
|
#EXT-X-TARGETDURATION:2
|
||||||
|
#EXT-X-PLAYLIST-TYPE:VOD
|
||||||
|
#EXT-X-MAP:URI="bear-640x360-video.mp4",BYTERANGE="823@0"
|
||||||
|
#EXTINF:1.068,
|
||||||
|
#EXT-X-BYTERANGE:99313@891
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXTINF:1.001,
|
||||||
|
#EXT-X-BYTERANGE:121807
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXTINF:0.734,
|
||||||
|
#EXT-X-BYTERANGE:79662
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXT-X-ENDLIST
|
|
@ -0,0 +1,9 @@
|
||||||
|
#EXTM3U
|
||||||
|
## Generated with https://github.com/google/shaka-packager version <tag>-<hash>-<test>
|
||||||
|
|
||||||
|
#EXT-X-MEDIA:TYPE=AUDIO,URI="bear-640x360-audio.m3u8",GROUP-ID="default-audio-group",LANGUAGE="pt",NAME="stream_0",DEFAULT=YES,AUTOSELECT=YES,CHANNELS="2"
|
||||||
|
|
||||||
|
#EXT-X-STREAM-INF:BANDWIDTH=1103896,AVERAGE-BANDWIDTH=982641,CODECS="avc1.64001e,mp4a.40.2",RESOLUTION=640x360,AUDIO="default-audio-group"
|
||||||
|
bear-640x360-video.m3u8
|
||||||
|
|
||||||
|
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=214292,AVERAGE-BANDWIDTH=156327,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-video-iframe.m3u8"
|
|
@ -0,0 +1,16 @@
|
||||||
|
#EXTM3U
|
||||||
|
#EXT-X-VERSION:6
|
||||||
|
## Generated with https://github.com/google/shaka-packager version <tag>-<hash>-<test>
|
||||||
|
#EXT-X-TARGETDURATION:2
|
||||||
|
#EXT-X-PLAYLIST-TYPE:VOD
|
||||||
|
#EXT-X-MAP:URI="bear-640x360-audio.mp4",BYTERANGE="757@0"
|
||||||
|
#EXTINF:1.022,
|
||||||
|
#EXT-X-BYTERANGE:16655@825
|
||||||
|
bear-640x360-audio.mp4
|
||||||
|
#EXTINF:0.998,
|
||||||
|
#EXT-X-BYTERANGE:16253
|
||||||
|
bear-640x360-audio.mp4
|
||||||
|
#EXTINF:0.743,
|
||||||
|
#EXT-X-BYTERANGE:9963
|
||||||
|
bear-640x360-audio.mp4
|
||||||
|
#EXT-X-ENDLIST
|
Binary file not shown.
17
packager/app/test/testdata/bandwidth-override/bear-640x360-video-iframe.m3u8
vendored
Normal file
17
packager/app/test/testdata/bandwidth-override/bear-640x360-video-iframe.m3u8
vendored
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#EXTM3U
|
||||||
|
#EXT-X-VERSION:6
|
||||||
|
## Generated with https://github.com/google/shaka-packager version <tag>-<hash>-<test>
|
||||||
|
#EXT-X-TARGETDURATION:2
|
||||||
|
#EXT-X-PLAYLIST-TYPE:VOD
|
||||||
|
#EXT-X-I-FRAMES-ONLY
|
||||||
|
#EXT-X-MAP:URI="bear-640x360-video.mp4",BYTERANGE="823@0"
|
||||||
|
#EXTINF:1.001,
|
||||||
|
#EXT-X-BYTERANGE:15581@891
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXTINF:1.001,
|
||||||
|
#EXT-X-BYTERANGE:18221@100204
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXTINF:0.734,
|
||||||
|
#EXT-X-BYTERANGE:19663@222011
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXT-X-ENDLIST
|
|
@ -0,0 +1,16 @@
|
||||||
|
#EXTM3U
|
||||||
|
#EXT-X-VERSION:6
|
||||||
|
## Generated with https://github.com/google/shaka-packager version <tag>-<hash>-<test>
|
||||||
|
#EXT-X-TARGETDURATION:2
|
||||||
|
#EXT-X-PLAYLIST-TYPE:VOD
|
||||||
|
#EXT-X-MAP:URI="bear-640x360-video.mp4",BYTERANGE="823@0"
|
||||||
|
#EXTINF:1.068,
|
||||||
|
#EXT-X-BYTERANGE:99313@891
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXTINF:1.001,
|
||||||
|
#EXT-X-BYTERANGE:121807
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXTINF:0.734,
|
||||||
|
#EXT-X-BYTERANGE:79662
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXT-X-ENDLIST
|
Binary file not shown.
|
@ -0,0 +1,9 @@
|
||||||
|
#EXTM3U
|
||||||
|
## Generated with https://github.com/google/shaka-packager version <tag>-<hash>-<test>
|
||||||
|
|
||||||
|
#EXT-X-MEDIA:TYPE=AUDIO,URI="bear-640x360-audio.m3u8",GROUP-ID="default-audio-group",NAME="stream_0",AUTOSELECT=YES,CHANNELS="2"
|
||||||
|
|
||||||
|
#EXT-X-STREAM-INF:BANDWIDTH=55555,AVERAGE-BANDWIDTH=982641,CODECS="avc1.64001e,mp4a.40.2",RESOLUTION=640x360,AUDIO="default-audio-group"
|
||||||
|
bear-640x360-video.m3u8
|
||||||
|
|
||||||
|
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=44444,AVERAGE-BANDWIDTH=156327,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-video-iframe.m3u8"
|
|
@ -0,0 +1,23 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--Generated with https://github.com/google/shaka-packager version <tag>-<hash>-<test>-->
|
||||||
|
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" profiles="urn:mpeg:dash:profile:isoff-on-demand:2011" minBufferTime="PT2S" type="static" mediaPresentationDuration="PT2.802799940109253S">
|
||||||
|
<Period id="0">
|
||||||
|
<AdaptationSet id="0" contentType="video" width="640" height="360" frameRate="30000/1001" subsegmentAlignment="true" par="16:9">
|
||||||
|
<Representation id="0" bandwidth="44444" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1">
|
||||||
|
<BaseURL>bear-640x360-video.mp4</BaseURL>
|
||||||
|
<SegmentBase indexRange="823-890" timescale="30000">
|
||||||
|
<Initialization range="0-822"/>
|
||||||
|
</SegmentBase>
|
||||||
|
</Representation>
|
||||||
|
</AdaptationSet>
|
||||||
|
<AdaptationSet id="1" contentType="audio" subsegmentAlignment="true">
|
||||||
|
<Representation id="1" bandwidth="11111" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
||||||
|
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
||||||
|
<BaseURL>bear-640x360-audio.mp4</BaseURL>
|
||||||
|
<SegmentBase indexRange="757-824" timescale="44100">
|
||||||
|
<Initialization range="0-756"/>
|
||||||
|
</SegmentBase>
|
||||||
|
</Representation>
|
||||||
|
</AdaptationSet>
|
||||||
|
</Period>
|
||||||
|
</MPD>
|
|
@ -0,0 +1,21 @@
|
||||||
|
#EXTM3U
|
||||||
|
#EXT-X-VERSION:6
|
||||||
|
## Generated with https://github.com/google/shaka-packager version <tag>-<hash>-<test>
|
||||||
|
#EXT-X-TARGETDURATION:2
|
||||||
|
#EXT-X-PLAYLIST-TYPE:VOD
|
||||||
|
#EXT-X-MAP:URI="bear-640x360-audio.mp4",BYTERANGE="967@0"
|
||||||
|
#EXT-X-KEY:METHOD=SAMPLE-AES-CTR,URI="data:text/plain;base64,MTIzNDU2Nzg5MDEyMzQ1Ng==",KEYFORMAT="identity"
|
||||||
|
#EXTINF:1.022,
|
||||||
|
#EXT-X-BYTERANGE:16655@1047
|
||||||
|
bear-640x360-audio.mp4
|
||||||
|
#EXTINF:0.998,
|
||||||
|
#EXT-X-BYTERANGE:16650
|
||||||
|
bear-640x360-audio.mp4
|
||||||
|
#EXTINF:0.046,
|
||||||
|
#EXT-X-BYTERANGE:1014
|
||||||
|
bear-640x360-audio.mp4
|
||||||
|
#EXT-X-PLACEMENT-OPPORTUNITY
|
||||||
|
#EXTINF:0.697,
|
||||||
|
#EXT-X-BYTERANGE:9415
|
||||||
|
bear-640x360-audio.mp4
|
||||||
|
#EXT-X-ENDLIST
|
19
packager/app/test/testdata/encryption-and-ad-cues/bear-640x360-video-iframe.m3u8
vendored
Normal file
19
packager/app/test/testdata/encryption-and-ad-cues/bear-640x360-video-iframe.m3u8
vendored
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
#EXTM3U
|
||||||
|
#EXT-X-VERSION:6
|
||||||
|
## Generated with https://github.com/google/shaka-packager version <tag>-<hash>-<test>
|
||||||
|
#EXT-X-TARGETDURATION:2
|
||||||
|
#EXT-X-PLAYLIST-TYPE:VOD
|
||||||
|
#EXT-X-I-FRAMES-ONLY
|
||||||
|
#EXT-X-MAP:URI="bear-640x360-video.mp4",BYTERANGE="1091@0"
|
||||||
|
#EXT-X-KEY:METHOD=SAMPLE-AES-CTR,URI="data:text/plain;base64,MTIzNDU2Nzg5MDEyMzQ1Ng==",KEYFORMAT="identity"
|
||||||
|
#EXTINF:1.001,
|
||||||
|
#EXT-X-BYTERANGE:15581@1159
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXTINF:1.001,
|
||||||
|
#EXT-X-BYTERANGE:18754@100472
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXT-X-PLACEMENT-OPPORTUNITY
|
||||||
|
#EXTINF:0.734,
|
||||||
|
#EXT-X-BYTERANGE:20068@222812
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXT-X-ENDLIST
|
|
@ -0,0 +1,18 @@
|
||||||
|
#EXTM3U
|
||||||
|
#EXT-X-VERSION:6
|
||||||
|
## Generated with https://github.com/google/shaka-packager version <tag>-<hash>-<test>
|
||||||
|
#EXT-X-TARGETDURATION:2
|
||||||
|
#EXT-X-PLAYLIST-TYPE:VOD
|
||||||
|
#EXT-X-MAP:URI="bear-640x360-video.mp4",BYTERANGE="1091@0"
|
||||||
|
#EXT-X-KEY:METHOD=SAMPLE-AES-CTR,URI="data:text/plain;base64,MTIzNDU2Nzg5MDEyMzQ1Ng==",KEYFORMAT="identity"
|
||||||
|
#EXTINF:1.068,
|
||||||
|
#EXT-X-BYTERANGE:99313@1159
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXTINF:1.001,
|
||||||
|
#EXT-X-BYTERANGE:122340
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXT-X-PLACEMENT-OPPORTUNITY
|
||||||
|
#EXTINF:0.734,
|
||||||
|
#EXT-X-BYTERANGE:80067
|
||||||
|
bear-640x360-video.mp4
|
||||||
|
#EXT-X-ENDLIST
|
|
@ -0,0 +1,9 @@
|
||||||
|
#EXTM3U
|
||||||
|
## Generated with https://github.com/google/shaka-packager version <tag>-<hash>-<test>
|
||||||
|
|
||||||
|
#EXT-X-MEDIA:TYPE=AUDIO,URI="bear-640x360-audio.m3u8",GROUP-ID="default-audio-group",NAME="stream_0",AUTOSELECT=YES,CHANNELS="2"
|
||||||
|
|
||||||
|
#EXT-X-STREAM-INF:BANDWIDTH=1152421,AVERAGE-BANDWIDTH=987816,CODECS="avc1.64001e,mp4a.40.2",RESOLUTION=640x360,AUDIO="default-audio-group"
|
||||||
|
bear-640x360-video.m3u8
|
||||||
|
|
||||||
|
#EXT-X-I-FRAME-STREAM-INF:BANDWIDTH=218705,AVERAGE-BANDWIDTH=159070,CODECS="avc1.64001e",RESOLUTION=640x360,URI="bear-640x360-video-iframe.m3u8"
|
|
@ -7,16 +7,7 @@
|
||||||
<ContentProtection schemeIdUri="urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b">
|
<ContentProtection schemeIdUri="urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b">
|
||||||
<cenc:pssh>AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA==</cenc:pssh>
|
<cenc:pssh>AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA==</cenc:pssh>
|
||||||
</ContentProtection>
|
</ContentProtection>
|
||||||
<Representation id="0" bandwidth="383593" codecs="avc1.64000d" mimeType="video/mp4" sar="1:1" width="320" height="180">
|
<Representation id="0" bandwidth="2632184" codecs="avc1.64001f" mimeType="video/mp4" sar="1:1" width="1280" height="720">
|
||||||
<SegmentTemplate timescale="30000" initialization="bear-320x180-video-init.mp4" media="bear-320x180-video-$Number$.m4s" startNumber="1">
|
|
||||||
<SegmentTimeline>
|
|
||||||
<S t="0" d="32032"/>
|
|
||||||
<S t="32032" d="30030"/>
|
|
||||||
<S t="62062" d="23023"/>
|
|
||||||
</SegmentTimeline>
|
|
||||||
</SegmentTemplate>
|
|
||||||
</Representation>
|
|
||||||
<Representation id="1" bandwidth="2632184" codecs="avc1.64001f" mimeType="video/mp4" sar="1:1" width="1280" height="720">
|
|
||||||
<SegmentTemplate timescale="30000" initialization="bear-1280x720-video-init.mp4" media="bear-1280x720-video-$Number$.m4s" startNumber="1">
|
<SegmentTemplate timescale="30000" initialization="bear-1280x720-video-init.mp4" media="bear-1280x720-video-$Number$.m4s" startNumber="1">
|
||||||
<SegmentTimeline>
|
<SegmentTimeline>
|
||||||
<S t="0" d="32032"/>
|
<S t="0" d="32032"/>
|
||||||
|
@ -25,7 +16,16 @@
|
||||||
</SegmentTimeline>
|
</SegmentTimeline>
|
||||||
</SegmentTemplate>
|
</SegmentTemplate>
|
||||||
</Representation>
|
</Representation>
|
||||||
<Representation id="3" bandwidth="978382" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360">
|
<Representation id="1" bandwidth="383593" codecs="avc1.64000d" mimeType="video/mp4" sar="1:1" width="320" height="180">
|
||||||
|
<SegmentTemplate timescale="30000" initialization="bear-320x180-video-init.mp4" media="bear-320x180-video-$Number$.m4s" startNumber="1">
|
||||||
|
<SegmentTimeline>
|
||||||
|
<S t="0" d="32032"/>
|
||||||
|
<S t="32032" d="30030"/>
|
||||||
|
<S t="62062" d="23023"/>
|
||||||
|
</SegmentTimeline>
|
||||||
|
</SegmentTemplate>
|
||||||
|
</Representation>
|
||||||
|
<Representation id="2" bandwidth="978382" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1" width="640" height="360">
|
||||||
<SegmentTemplate timescale="30000" initialization="bear-640x360-video-init.mp4" media="bear-640x360-video-$Number$.m4s" startNumber="1">
|
<SegmentTemplate timescale="30000" initialization="bear-640x360-video-init.mp4" media="bear-640x360-video-$Number$.m4s" startNumber="1">
|
||||||
<SegmentTimeline>
|
<SegmentTimeline>
|
||||||
<S t="0" d="32032"/>
|
<S t="0" d="32032"/>
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
<ContentProtection schemeIdUri="urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b">
|
<ContentProtection schemeIdUri="urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b">
|
||||||
<cenc:pssh>AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA==</cenc:pssh>
|
<cenc:pssh>AAAANHBzc2gBAAAAEHfv7MCyTQKs4zweUuL7SwAAAAExMjM0NTY3ODkwMTIzNDU2AAAAAA==</cenc:pssh>
|
||||||
</ContentProtection>
|
</ContentProtection>
|
||||||
<Representation id="2" bandwidth="134015" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
<Representation id="3" bandwidth="134015" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
||||||
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
||||||
<SegmentTemplate timescale="44100" initialization="bear-320x180-audio-init.mp4" media="bear-320x180-audio-$Number$.m4s" startNumber="1">
|
<SegmentTemplate timescale="44100" initialization="bear-320x180-audio-init.mp4" media="bear-320x180-audio-$Number$.m4s" startNumber="1">
|
||||||
<SegmentTimeline>
|
<SegmentTimeline>
|
||||||
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!--Generated with https://github.com/google/shaka-packager version <tag>-<hash>-<test>-->
|
||||||
|
<MPD xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xsi:schemaLocation="urn:mpeg:dash:schema:mpd:2011 DASH-MPD.xsd" xmlns:cenc="urn:mpeg:cenc:2013" profiles="urn:mpeg:dash:profile:isoff-live:2011" minBufferTime="PT2S" type="static" mediaPresentationDuration="PT2.802799940109253S">
|
||||||
|
<Period id="0" duration="PT2.0687333333333333S">
|
||||||
|
<AdaptationSet id="0" contentType="text" segmentAlignment="true">
|
||||||
|
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="subtitle"/>
|
||||||
|
<Representation id="0" bandwidth="27883" codecs="wvtt" mimeType="application/mp4">
|
||||||
|
<SegmentTemplate timescale="1000" initialization="bear-subtitle-english-text-init.mp4" media="bear-subtitle-english-text-$Number$.m4s" startNumber="1">
|
||||||
|
<SegmentTimeline>
|
||||||
|
<S t="0" d="1000" r="1"/>
|
||||||
|
<S t="2000" d="68"/>
|
||||||
|
</SegmentTimeline>
|
||||||
|
</SegmentTemplate>
|
||||||
|
</Representation>
|
||||||
|
</AdaptationSet>
|
||||||
|
<AdaptationSet id="1" contentType="video" width="640" height="360" frameRate="30000/1001" segmentAlignment="true" par="16:9">
|
||||||
|
<Representation id="1" bandwidth="974122" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1">
|
||||||
|
<SegmentTemplate timescale="30000" initialization="bear-640x360-video-init.mp4" media="bear-640x360-video-$Number$.m4s" startNumber="1">
|
||||||
|
<SegmentTimeline>
|
||||||
|
<S t="0" d="32032"/>
|
||||||
|
<S t="32032" d="30030"/>
|
||||||
|
</SegmentTimeline>
|
||||||
|
</SegmentTemplate>
|
||||||
|
</Representation>
|
||||||
|
</AdaptationSet>
|
||||||
|
<AdaptationSet id="2" contentType="audio" segmentAlignment="true">
|
||||||
|
<Representation id="2" bandwidth="175884" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
||||||
|
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
||||||
|
<SegmentTemplate timescale="44100" initialization="bear-640x360-audio-init.mp4" media="bear-640x360-audio-$Number$.m4s" startNumber="1">
|
||||||
|
<SegmentTimeline>
|
||||||
|
<S t="0" d="45056"/>
|
||||||
|
<S t="45056" d="44032"/>
|
||||||
|
<S t="89088" d="2048"/>
|
||||||
|
</SegmentTimeline>
|
||||||
|
</SegmentTemplate>
|
||||||
|
</Representation>
|
||||||
|
</AdaptationSet>
|
||||||
|
</Period>
|
||||||
|
<Period id="1" duration="PT.7340666666666666S">
|
||||||
|
<AdaptationSet id="0" contentType="text" segmentAlignment="true">
|
||||||
|
<Role schemeIdUri="urn:mpeg:dash:role:2011" value="subtitle"/>
|
||||||
|
<Representation id="0" bandwidth="2024" codecs="wvtt" mimeType="application/mp4">
|
||||||
|
<SegmentTemplate timescale="1000" presentationTimeOffset="2068" initialization="bear-subtitle-english-text-init.mp4" media="bear-subtitle-english-text-$Number$.m4s" startNumber="4">
|
||||||
|
<SegmentTimeline>
|
||||||
|
<S t="2068" d="1000" r="2"/>
|
||||||
|
</SegmentTimeline>
|
||||||
|
</SegmentTemplate>
|
||||||
|
</Representation>
|
||||||
|
</AdaptationSet>
|
||||||
|
<AdaptationSet id="1" contentType="video" width="640" height="360" frameRate="30000/1001" segmentAlignment="true" par="16:9">
|
||||||
|
<Representation id="1" bandwidth="869044" codecs="avc1.64001e" mimeType="video/mp4" sar="1:1">
|
||||||
|
<SegmentTemplate timescale="30000" presentationTimeOffset="62062" initialization="bear-640x360-video-init.mp4" media="bear-640x360-video-$Number$.m4s" startNumber="3">
|
||||||
|
<SegmentTimeline>
|
||||||
|
<S t="62062" d="22022"/>
|
||||||
|
</SegmentTimeline>
|
||||||
|
</SegmentTemplate>
|
||||||
|
</Representation>
|
||||||
|
</AdaptationSet>
|
||||||
|
<AdaptationSet id="2" contentType="audio" segmentAlignment="true">
|
||||||
|
<Representation id="2" bandwidth="105634" codecs="mp4a.40.2" mimeType="audio/mp4" audioSamplingRate="44100">
|
||||||
|
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
|
||||||
|
<SegmentTemplate timescale="44100" presentationTimeOffset="91231" initialization="bear-640x360-audio-init.mp4" media="bear-640x360-audio-$Number$.m4s" startNumber="4">
|
||||||
|
<SegmentTimeline>
|
||||||
|
<S t="91136" d="30720"/>
|
||||||
|
</SegmentTimeline>
|
||||||
|
</SegmentTemplate>
|
||||||
|
</Representation>
|
||||||
|
</AdaptationSet>
|
||||||
|
</Period>
|
||||||
|
</MPD>
|
Loading…
Reference in New Issue