diff --git a/video/videostream_url.md b/video/videostream_url.md index 36e2bc8..bcbd411 100644 --- a/video/videostream_url.md +++ b/video/videostream_url.md @@ -393,12 +393,12 @@ curl -G 'http://api.bilibili.com/x/player/playurl' \ | height | num | 视频高度 | 单位为像素
仅视频有效 | | frameRate | str | 视频帧率 | 仅视频有效 | | frame_rate | str | **同上** | | -| sar | str | 1:1 | 作用尚不明确 | -| startWithSap | num | 1 | 作用尚不明确 | +| sar | str | 1:1 | Sample Aspect Ratio,单个像素的宽高比 | +| startWithSap | num | 1 | Stream Access Point | | start_with_sap | num | **同上** | | -| SegmentBase | obj | ??? | 作用尚不明确 | +| SegmentBase | obj | 见下表 | url 对应 m4s 文件中,头部的位置 | | segment_base | obj | **同上** | | -| codecid | num | 7 | 作用尚不明确 | +| codecid | num | 视频: 7或12
音频: 0 | 7=AVC,12=HEVC
出处是 FLV 格式里 VideoTag 中的 CodecId 域;
FLV 标准不支持 HEVC,但 codecId 值为 12 是各厂共识 | `video`数组中的对象中的`backup_url`数组: @@ -408,12 +408,15 @@ curl -G 'http://api.bilibili.com/x/player/playurl' \ | n | str | 备用视频/音频流url (n+1) | | | …… | str | …… | | -`video`数组中的对象中的`backup_url`对象: +`video`数组中的对象中的`SegmentBase`对象: + +| 字段 | 类型 | 内容 | 备注 | +| -------------- | ---- | --------------------------------------------- | ------------------------------------------------------------ | +| initialization | str | \-\
如:0-821 | ftyp (file type) box 加上 moov box 在 m4s 文件中的范围(单位为 bytes)
如 0-821 表示开头 820 个字节 | +| index_range | str | \-\
如:822-1309 | sidx (segment index) box 在 m4s 文件中的范围(单位为 bytes)
sidx 的核心是一个数组,记录了各关键帧的时间戳及其在文件中的位置,
其作用是索引 (拖进度条) | + +> 常规 MP4 文件的索引信息放在 moov box 中,其中包含每一帧 (不止是关键帧) 的一些信息。在 DASH 方式下,关键帧信息移到了 sidx box 里,其他的则分散到了各个 moof (movie fragment) box 中。
对这里的文件结构感兴趣的,可以参考标准文档 ISO/IEC 14496-12,如果不想那么深入的话可以百度「MP4 文件结构」。 -| 字段 | 类型 | 内容 | 备注 | -| -------------- | ---- | ------ | ------------ | -| index_range | str | ??? | 作用尚不明确 | -| initialization | str | ??? | 作用尚不明确 | **示例:**