Может кто-нибудь сказать мне или указать мне раздел спецификации, который ясно демонстрирует, как из элементарного потока с серией NALU, как они должны быть записаны в ISO BMFF mdat?
Iпри просмотре примеров и другого кода я вижу что-то вроде: AUD, SPS, PPS, SEI, VideoSlice, AUD и т. д. и т. д.
Вещи, которые мне не совсем понятны:
- Если SPS и PPS также хранятся вне диапазона в AVCC, требуются ли они в mdat?
- Если они требуются в mdat, когда и где они должны быть записаны?например, непосредственно перед IDR?
- Каковы требования для AUD?
- Если я генерирую размеры выборки для транка, рассчитывается ли это?В примере, который я работаю для воссоздания первого сэмпла в стволе, размер 22817, однако, если я посмотрю на первый сэмпл в mdat, префикс размера NALU будет 22678. Значение в транке, как представляется, является размером всехNALU + размеры до и включая первый образец (см. Мой пример ниже)
>
1 0016E405 (1500165) - box.Size
2 6D646174 (mdat) - box.Type
3 00000002 (2) NAL Size
4 0910 - (2) AUD @ 5187
5 00000025 (37)
6 27640020 AC248C0F 0117EF01 10000003 00100000 078E2800 0F424001 E84EF7B8 0F844229 C0 (37) @ 5193 SPS
7 00000004 (4)
8 28DEBCB0 (4) PPS
9 0000000B (11)
10 06000781 36288029 67C080 (? SEI ?)
11 0000000C (12)
12 06010700 00F00000 03020480 (? SEI is type 6)
13 0000002D (45) @ 5269
14 060429B5 00314741 393403CA FFFC8080 FA0000FA 0000FA00 00FA0000 FA0000FA 0000FA00 00FA0000 FA0000FF 80 (SEI ??)
15 00005896 (22678)
16 25888010 02047843 00580010 08410410 0002….. 22678 bytes video @ 5322