Поток байтов в единицы NAL — декодирование видео

Я работаю над фильтром прямого показа декодера H.265. Я использую lide265 для этой цели.

Кодер возвращает поток байтов. Мне нужно преобразовать его в единицу NAL согласно требованию декодера. Как мне это сделать.

Потому что простой поток байтов не декодируется.

-1

Решение

Кажется, что синтаксис потока байтов H.265 очень похож на H.264. Если вы посмотрите спецификацию Вот:

H.265 Синтаксис блока NAL для потока байтов!

leading_zero_8bits это байт, равный 0x00.

ПРИМЕЧАНИЕ. — Синтаксический элемент lead_zero_8bits может присутствовать только в первом блоке NAL потока битов битового потока, поскольку (как показано на диаграмме синтаксиса в пункте B.2.1) любые байты, равные 0x00, следуют за синтаксической структурой блока NAL и предшествуют Четырехбайтовая последовательность 0x00000001 (которая должна интерпретироваться как ноль_байт, за которым следует start_code_prefix_one_3bytes) будет
считаются элементами синтаксиса trailing_zero_8bits, которые являются частью блока NAL предыдущего байтового потока.

zero_byte это один байт, равный 0x00.

Если выполняется одно или несколько из следующих условий, должен присутствовать синтаксический элемент zero_byte:

— nal_unit_type в структуре синтаксиса nal_unit () равен VPS_NUT, SPS_NUT или PPS_NUT.

— Синтаксическая структура блока NAL потока байтов содержит первый блок NAL блока доступа в порядке декодирования, как указано в пункте 7.4.2.4.4.

Это должно дать вам представление о том, когда ожидать 0x00000001, а когда ожидать 0x000001, и вы сможете анализировать поток битов, отыскивая стартовые коды и извлекая блоки NAL между ними.

3

Другие решения


По вопросам рекламы [email protected]