Не найден кодировщик при перечислении имен компонентов и моделей с использованием IOMX, но android может записывать файлы.mp4 с кадрами в кодировке H264

Я пытался перечислить все поддерживаемые кодеки в устройстве Android с помощью IOMX, как показано здесь, связывая с сервисом медиаплеера. Я получил свой код работает и получаю список компонентов. Но я заметил, что не было компонента кодировщика. Только все компоненты декодера были перечислены. Затем я захожу во встроенное приложение камеры, предоставляемое Android, и начинаю записывать видео, которое было сохранено в формате mp4. Когда я проверял информацию о кодеке файла mp4 из плеера VLC, он показывал "H264 mpeg4 part10 avc". Так что тут возникает мое сомнение. Если для кодирования h264/avc нет компонента, то как Android может кодировать кадры в формате h264?

Любое предложение? Благодарю.

1 ответ

В дистрибутиве Android есть набор кодеков, поставляемых Google, которые обычно называют "простыми ванильными кодеками". В случае H.264 в комплекте есть кодер, источники которого находятся на frameworks/av/media/libstagefright/codecs/avc/enc/, Следовательно, при кодировании с камеры этот кодек по умолчанию используется для кодирования кадров. Чтобы проверить то же самое, вы можете включить журналы в OMXCodec или же ACodec и обратите внимание, что имя компонента кодировщика OMX.google.h264.encoder,

Полный список кодеков доступен в SoftOMXPlugin.cpp в frameworks/av/media/libstagefright/omx/

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