【发布时间】:2015-03-10 13:27:37
【问题描述】:
我想用从 Android 手机记录的 h.264 数据做一些事情。
我的同事告诉我,mdat 之后应该有 4 个字节,它指定了 NALU 大小,然后是一个字节与 NALU 元数据,然后是原始数据,然后(在 NALU 大小之后),另外 4 个字节与另一个 NALU 大小和以此类推。
但我在mdat 后面有很多零:
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0e00000000000000000000000000000000000000000000000000000000000000
8100000000000000000000000000000000000000000000000000000000000000
65b84f0f87fa890001022e7fcc9feef3e7fabb8e0007a34000f2bbefffd07c3c
bfffff08fbfefff04355f8c47bdfd05fd57b1c67c4003e89fe1fe839705a699d
c6532fb7ecacbfffe82d3fefc718d15ffffbc141499731e666f1e4c5cce8732f
bf7eb0a8bd49cd02637007d07d938fd767cae34249773bf4418e893969b8eb2c
mdat 之前的原子只是 ftyp mp42、isom mp42 和 free 原子。所有其他原子(moov,...)都在文件的末尾(这就是 Android 所做的,当它写入套接字而不是文件时)。但是如果有必要,我已经从其他文件中获取了 PPS 和 SPS,并在此之前记录了相同的相机和编码器设置,只是为了获取这些 PPS 和 SPS 数据。
那么我究竟如何从中获得 NALU?
【问题讨论】: