Заголовок потока H.264 - PullRequest
       39

Заголовок потока H.264

4 голосов
/ 28 октября 2011

У меня поврежден видеопоток с этим заголовком / параметрами в начале.

00 00 00 01 67 64 00 1E AC D9 40 B0 33 FB C0 44  
00 00 03 00 04 00 00 03 00 C8 3C 58 B6 58 00 00  
00 01 68 EB EC B2 2C  

Я пытаюсь выяснить фактические значения, но все, что я догадался, это то, что

67 – AVC / H264 
64 00 - High Profile
1E – Level 30 (in decimal)  

Кто-нибудь знает, что означают другие байты?

Как минимум, как рассчитать размеры видео (ширина х высота).Я думал, что это должны быть десятичные числа, но, видимо, это не так.Или я все не прав, и это так не работает?

Ответы [ 2 ]

6 голосов
/ 28 октября 2011

Вы найдете ответы здесь:

Ваши данные декодируются так:

Набор параметров последовательности

profile_idc 100 
constraint_set0_flag 0 
constraint_set1_flag 0 
constraint_set2_flag 0 
constraint_set3_flag 0 
level_idc 30 
seq_parameter_set_id 0 
chroma_format_idc 1 
// ... 
num_ref_frames 4 
gaps_in_frame_num_value_allowed_flag 0 
pic_width_in_mbs_minus1 43 
pic_height_in_map_units_minus1 24 
frame_mbs_only_flag 1 
direct_8x8_inference_flag 1 
frame_cropping_flag 1 
frame_crop_left_offset 0 
frame_crop_right_offset 0 
frame_crop_top_offset 0 
frame_crop_bottom_offset 2 
vui_parameters_present_flag 1 
// ... 

Набор параметров изображения

pic_parameter_set_id 0 
seq_parameter_set_id 0 
entropy_coding_mode_flag 1 
num_slice_groups_minus1 0 
// ... 
0 голосов
/ 13 сентября 2012

Если frame_cropping_flag равен 1, чтобы получить размеры, которые вы делаете:

width = ((pic_width_in_mbs_minus1 +1)*16) - frame_crop_left_offset*2 - frame_crop_right_offset*2;
height= ((2 - frame_mbs_only_flag)* (pic_height_in_map_units_minus1 +1) * 16) - (frame_crop_top_offset * 2) - (frame_crop_bottom_offset * 2)
...