Декодирование H264 с использованием произвольного доступа

Я хочу получить доступ к случайным кадрам в файле H264 и отобразить декодированные изображения в текстуру Direct3D. Я использую NVIDIA VIDEO CODEC SDK. Я уже нашел образец NvDecodeD3D11, который был включен в версию 8.0, и разобрал его до медвежьих предметов первой необходимости.

По сути, я хочу реализовать ту же идею, что и в предложении: декодирование H264 из середины файла.

Мой файл может быть только кадрами IDR, но также может содержать P-кадры.

Легкий доступ к образцу: Github

Я понимаю идею в связанном вопросе, но я не знаю, где и как это реализовать.

1 ответ

Отличный вопрос, и я боюсь, что он требует много работы. Вы должны точно ознакомиться с форматом кадров I и P. Далее вы выясните, как искать заголовок фреймов и сформировать буфер с указателями на заголовки I-кадров. После этого вам нужно будет разработать систему, которая будет использоваться в качестве обычного воспроизведения, выполняя воспроизведение при переходе от указателя, который помечает текущий кадр, или сможет двигаться вперед или назад, перематывая индексы указателя буфера. Изучите это, и вы сможете найти решение. Весьма вероятно, что для этого уже есть открытый исходный код, но для этого требуется больше поиска. Вы можете попытаться получить награду за это.

Другие вопросы по тегам