v4l2 очень либеральна, когда дело доходит до форматов: например. устройства захвата могут поставлять кадры практически в любом формате.
Так что, если вы пишете инструмент пользовательской земли (приложение, библиотека, ..., в отличие от драйвера ядра), , хотя и не играйте с кодеками (если можно его избежать). Представьте каждое приложение в мире, который хочет читать v4l2-потоки, имеющие добавить код для декодирования кадров в SQ905C
или MJPEG
или этажерку кодека (каждое приложение, добавив свой собственный набор реализации багги)
Вместо, умные люди создала библиотеку, которая будет распаковывать кадры, доставленные вашим устройством захвата, и предоставлять эти кадры стандартным образом: libv4l2.
Кстати, если вы настаиваете на написании собственного кода, то libv4l2
- хорошая ссылочная реализация.
О, и если вы подумывали о том, чтобы загрузить модуль в кодировку/декодирование в пространстве ядра (например, , у вас есть веб-камера «foo», которая поставляет изображения в формате «XYZ», но вы хотите, чтобы она доставляла изображения в формат «ABC» с помощью добавления модуля ядра), тогда вам не повезло.
Linus T. был совершенно ясен [отсутствует ссылка], что код преобразования кодека не должен запускаться в пространстве ядра.
Вопросы просят нас, чтобы рекомендовать или найти инструмент, библиотеку или любимый вне площадки ресурса является вне темы для стека Переполнение, поскольку они имеют тенденцию привлекать упрямые ответы и спам. Вместо этого опишите проблему и то, что было сделано до сих пор, чтобы ее решить. –
Что вы хотите усвоить? что вы пробовали? –
Я пытаюсь узнать, как использовать драйвер кодека v4l2. Как передать входное изображение и как получить выходное изображение? – michael