c - mp4 文件中间的随机编解码器信息
问题描述
我正在尝试使用 C 从 mp4 文件中获取 NAL 单元。我进入“mdat”原子并尝试提取 NAL 单元。前 3 个是“大小,数据”,其中大小是数据的大小(以字节为单位)。在那之后,我继续寻找下一个单位。大小为 0xde02004c,太大了。当我用十六进制编辑器检查它时,我发现确实如此。但后来我注意到旁边写着“Lavc”。
00004930 92 43 19 61 93 4e de 02 00 4c 61 76 63 35 38 2e |.C.a.N...Lavc58.|
00004940 35 34 2e 31 30 30 00 42 20 08 c1 18 38 00 00 00 |54.100.B ...8...|
00004950 c9 01 9e 41 79 09 7f 7a 03 ed 3f 54 39 fb c2 01 |...Ay..z..?T9...|
00004960 c4 53 76 51 2d bf 57 5f 04 25 00 b9 fb df 43 67 |.SvQ-.W_.%....Cg|
00004970 f3 27 b9 f5 d7 e7 95 e9 b4 06 14 6b 4a c7 4e ff |.'.........kJ.N.|
00004980 23 ed 8f 17 d0 4d d4 21 a7 b3 84 0e 65 60 41 67 |#....M.!....e`Ag|
00004990 ec db 10 c9 b3 4c 3f 71 df 6b 73 c2 df cd fe 85 |.....L?q.ks.....|
前一个 NAL 单元正好在字节“de 02 00 4c”之前结束,所以这应该是下一个的大小。但事实并非如此。它看起来像编解码器信息。为什么?
编辑:第一个 nalu 的第一个字节:
00 00 02 af 06 05 ff ff ┊ ab dc 45 e9 bd e6 d9 48 │00•×••××┊××E××××H│
b7 96 2c d8 20 d9 23 ee ┊ ef 78 32 36 34 20 2d 20 │××,× ×#×┊×x264 - │
第二:
00 00 41 80 65 ┊ 88 84 01 ff 5e e7 6f ea
36 23 b7 5d 16 f8 5f 54 ┊ a3 5d 7c 9e ac d1 9b f6
第三个:
00 04 cb 41 9a 22 6c 5f
6e 75 69 b0 e3 e1 d9 c9 ┊ d4 71 cb 05 a3 60 09 71 ```
解决方案
推荐阅读
- python - 如何在python中将任意长度的位串写入二进制文件
- php - 为什么我的 eloquent 查询在以后使用时会被覆盖?
- kubernetes - ISTIO sidecar 使用 Jaegar 进行分布式跟踪
- python - Python - 命令行参数提取为字符串 ImportError
- python - 如何修复 ImportError:scipy.spatial 模块的 DLL 加载失败?
- java - 有没有办法访问在 openid 连接过程中设置的会话数据?
- sass - 如何在 SASS 函数中根据屏幕尺寸动态生成
- excel - 在 Excel 文档中搜索和处理多个匹配项
- python-3.x - 我想把字典作为输入,比如学生的roll和cgpa,我想对值进行排序,而不是对键进行排序
- annotations - Dymola 中的多个 MSL 版本