Skip to content

Commit bfd962e

Browse files
committed
update
1 parent 6910f48 commit bfd962e

File tree

2 files changed

+76
-11
lines changed

2 files changed

+76
-11
lines changed

VideoDevelopment/流媒体协议/DASH.md

Lines changed: 73 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,32 @@ DASH的整个流程:
2424

2525
![image-20200406164238038](https://raw.githubusercontent.com/CharonChui/Pictures/master/mpd_hierarchical_data.png)
2626

27+
28+
29+
```xml
30+
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
31+
<MPD id="0564e940-122b-42bb-9d56-98f3def67247" profiles="urn:mpeg:dash:profile:isoff-main:2011" type="static" availabilityStartTime="2016-01-14T09:30:35.000Z" publishTime="2016-01-14T09:31:33.000Z" mediaPresentationDuration="P0Y0M0DT0H2M17.000S" minBufferTime="P0Y0M0DT0H0M1.000S" bitmovin:version="1.6.0" xmlns:ns2="http://www.w3.org/1999/xlink" xmlns="urn:mpeg:dash:schema:mpd:2011" xmlns:bitmovin="http://www.bitmovin.net/mpd/2015">
32+
<Period>
33+
<AdaptationSet mimeType="video/mp4" codecs="avc1.42c00d">
34+
<SegmentTemplate media="../video/$RepresentationID$/dash/segment_$Number$.m4s" initialization="../video/$RepresentationID$/dash/init.mp4" duration="120119" startNumber="0" timescale="30000"/>
35+
<Representation id="1920_9000000" bandwidth="9000000" width="3840" height="1920" frameRate="30"/>
36+
<Representation id="1080_5000000" bandwidth="5000000" width="2160" height="1080" frameRate="30"/>
37+
<Representation id="720_3000000" bandwidth="3000000" width="1440" height="720" frameRate="30"/>
38+
<Representation id="540_1500000" bandwidth="1500000" width="1080" height="540" frameRate="30"/>
39+
<Representation id="360_1000000" bandwidth="1000000" width="720" height="360" frameRate="30"/>
40+
</AdaptationSet>
41+
<AdaptationSet lang="en" mimeType="audio/mp4" codecs="mp4a.40.2" bitmovin:label="english stereo">
42+
<AudioChannelConfiguration schemeIdUri="urn:mpeg:dash:23003:3:audio_channel_configuration:2011" value="2"/>
43+
<SegmentTemplate media="../audio/$RepresentationID$/dash/segment_$Number$.m4s" initialization="../audio/$RepresentationID$/dash/init.mp4" duration="191472" startNumber="0" timescale="48000"/>
44+
<Representation id="1_stereo_128000" bandwidth="128000" audioSamplingRate="48000"/>
45+
</AdaptationSet>
46+
</Period>
47+
</MPD>
48+
49+
```
50+
51+
52+
2753
### MPD
2854

2955
DASH采用3GPP AHS中定义的MPD(Media Presentation Description)作为媒体文件的描述文件(manifest),作用类似HLS的m3u8文件。MPD文件以XML格式组织,用于描述segment的信息,比如时间、url、视频分辨率、码率等。
@@ -79,14 +105,6 @@ Segments可以包含任何媒体数据,关于容器,官方提供了两种建
79105

80106

81107

82-
## DASH地址
83-
84-
http://ftp.itec.aau.at/datasets/mmsys12/BigBuckBunny/MPDs/BigBuckBunnyNonSeg_2s_isoffmain_DIS_23009_1_v_2_1c2_2011_08_30.mpd
85-
86-
http://www-itec.uni-klu.ac.at/ftp/datasets/mmsys12/BigBuckBunny/bunny_2s/bunny_2s_50kbit/bunny_50kbit_dashNonSeg.mp4
87-
88-
89-
90108
## fMP4
91109

92110
fMP4(fragmented MP4),可以简单理解为分片化的MP4,是DASH采用的媒体文件格式,文件扩展名通常为(.m4s或直接用.mp4)。
@@ -147,6 +165,53 @@ DASH和HLS之间的另一个关键区别是它支持DRM。可是,在DASH中不
147165

148166

149167

168+
### 测试流
169+
170+
- HEVC HLS with fMP4: [http://bitmovin-a.akamaihd.net/content/dataset/multi-codec/hevc/stream_fmp4.m3u8](https://bitmovin-a.akamaihd.net/content/dataset/multi-codec/hevc/stream_fmp4.m3u8)
171+
172+
173+
174+
- HEVC HLS with TS (not supported by Apple): [http://bitmovin-a.akamaihd.net/content/dataset/multi-codec/hevc/stream_ts.m3u8](https://bitmovin-a.akamaihd.net/content/dataset/multi-codec/hevc/stream_ts.m3u8)
175+
176+
[https://bitmovin-a.akamaihd.net/content/playhouse-vr/m3u8s/105560.m3u8](https://bitmovin-a.akamaihd.net/content/playhouse-vr/m3u8s/105560.m3u8)
177+
178+
- HEVC MPEG-DASH: [http://bitmovin-a.akamaihd.net/content/dataset/multi-codec/hevc/stream.mpd](https://bitmovin-a.akamaihd.net/content/dataset/multi-codec/hevc/stream.mpd)
179+
180+
- Multi-Codec MPEG-DASH (AVC/H.264, HEVC/H.265, VP9): http://bitmovin-a.akamaihd.net/content/dataset/multi-codec/stream.mpd
181+
182+
https://bitmovin-a.akamaihd.net/content/playhouse-vr/mpds/105560.mpd
183+
184+
- VP9 MPEG-DASH: http://bitmovin-a.akamaihd.net/content/dataset/multi-codec/stream_vp9.mpd
185+
186+
187+
188+
189+
190+
191+
192+
193+
194+
195+
196+
197+
198+
199+
200+
201+
202+
203+
204+
205+
206+
207+
208+
209+
210+
在线测试播放器:
211+
212+
http://demo.theoplayer.com/test-your-stream-with-statistics
213+
214+
150215

151216

152217

VideoDevelopment/流媒体协议/HLS.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
HLS协议规定:
66

7-
- 视频的封装格式是TS
8-
- 视频的编码格式为H264,音频编码格式为MP3、AAC或者AC-3
7+
- 视频的封装格式是ts(16年发布也支持了fMP4)
8+
- 视频的编码格式为H264、H265、VP9(17年支持H265、VP9),音频编码格式为MP3、AAC或者AC-3
99
- 除了TS视频文件本身,还定义了用来控制播放的m3u8文件(文本文件)
1010

1111
HLS协议由三部分组成:
@@ -41,7 +41,7 @@ TS(Transport Stream),全程为MPEG2-TS。它的特点就是要求从视频流
4141

4242
### 多码率适配流(Master Playlist)
4343

44-
<img src="https://raw.githubusercontent.com/CharonChui/Pictures/master/indexing_2x.png" style="zoom:70%;" />
44+
<img src="https://raw.githubusercontent.com/CharonChui/Pictures/master/adaptive_bitratestreaming_HLS.jpg" style="zoom:70%;" />
4545

4646
客户端播放HLS视频流的逻辑其实非常简单,先下载一级Index file,它里面记录了二级索引文件(Alternate-A、Alternate-B、Alternate-C)的地址,然后客户端再去下载二级索引文件,二级索引文件中又记录了TS文件的下载地址,这样客户端就可以按顺序下载TS视频文件并连续播放。
4747

0 commit comments

Comments
 (0)