Это ТАКАЯ копия моего (уже набитого) вопроса от Gamedev SE: https://gamedev.stackexchange.com/questions/176119/how-to-encode-captured-rgba-frames-with-h-264-h-265-nv-codec-sdk-amd-amf.
У меня есть настольное приложение, которое фиксирует содержимое экрана. В результате получаются двухмерные текстуры DirectX 11 в формате BGRA8.
Моя цель - передавать этот захваченный контент на мобильное устройство с ОС Android (скажем, не ниже 7.0). Я заметил, что Android поддерживает декодер H.264 (и даже H.265, если я не ошибаюсь) из коробки, поэтому, имея в виду пропускную способность и задержку, я пойду с этим.
Для достиженияМаксимальная производительность, я хочу использовать выделенные медиа-SDK для кодирования на основе GPU (Codec SDK от NVidia и AMD AMF). У меня есть несколько вопросов о том, что мне следует сделать, чтобы правильно выполнить эту задачу.
(1) Какой наилучший (с точки зрения производительности кодирования) формат данных я должен предоставитькодер? Я спрашиваю о формате пикселей, цветовом пространстве и т. Д.
(2) Я помню, что H.264 - это анализ группы кадров для достижения наилучших результатов сжатия. Будет ли кодирование отдельных кадров достаточно эффективным?
(3) И, наконец, какие-либо идеи / комментарии / примеры / предложения о том, как правильно использовать эти кодировщики для каждого кадра? Самая большая проблема для меня сейчас заключается в том, какую обработку исходной текстуры нужно выполнить и как использовать ее в качестве источника для кодировщика.
Спасибо за потраченное время!