определить возможное местоположение блока доступа h264 - PullRequest
0 голосов
/ 14 апреля 2020

как вы знаете, разделитель единиц доступа в h264 является необязательным

, но иногда мы хотим знать его возможное местоположение, как если бы мы хотели создать контейнер mpeg-ts

я использую https://mradionov.github.io/h264-bitstream-viewer/ для анализа видео. H264

у него есть 5924 nalu как эта последовательность [7,8,6, тогда любой nalu может быть 5 или 1], если я не получаю [7,8,6 , 9] позже только получая 7,8,6 в первом только

это мой video.h264 файл, который я использую, смотрите мои снимки экрана парсера

enter image description here

это последние подробности заголовка nalu, я хочу определить границу для каждого нового кадра
enter image description here

1 Ответ

1 голос
/ 14 апреля 2020

Это на самом деле довольно сложно.

Глядя на этот поток, я вижу два IDR NALus подряд. Если один VCL NAL в AU является IDR, то все они должны быть такими, поэтому первый AU будет , вероятно, SPS / PPS / SEI / IDR / IDR.

Тогда, тогда следующие AU будут вероятно по два среза каждый.

, чтобы знать наверняка, вы должны проанализировать sps, чтобы получить количество макроблоков из pic_width_in_mbs_minus1 + pic_height_in_map_units_minus1 + 2

Затем вы должны проанализировать slice_header() и slice_data() и запустите алгоритм, описанный в ISO 14496-10, чтобы получить список макроблоков в срезе. Когда все макроблоки учтены, вы нашли конец среза.

...