Как добавить кодек - PullRequest
1 голос
/ 10 ноября 2011

Я работаю над двумя приложениями: одно работает под Windows, обрабатывает собственное видео в режиме реального времени и отправляет его по TCPIP;другое приложение получает его в Linux и играет.Сейчас он работает с несжатыми видеокадрами, для которых требуется гигабитная сеть.Я хотел бы сжать видео.Можете ли вы порекомендовать кодек, который (а) доступен как в Windows, так и в Linux, (б) может использоваться как API - что-то живое CompressFrame (), UncompressFrame ()?

Ответы [ 2 ]

2 голосов
/ 10 ноября 2011

Intel Integrated Performance Primitives предоставит вам возможность выбора кодировщиков и декодеров как в Windows, так и в Linux.Другой вариант - ffmpeg / libvacodec .

Чтобы быть более открытым для взаимодействия, вы можете предпочесть реализовать какой-либо известный протокол для потоковой передачи данных по сети, такой как RTSP / RTP.

1 голос
/ 10 ноября 2011

libavcodec , libavformat и другие ffmpeg проекты - широкий спектр используемых кодеков.

Windows Media Format SDK - может кодировать видео в потоки WMV. Связанные технологии Windows включают DirectShow и Media Foundation.

Ogg Theora - не самый качественный по сравнению кодек, но он бесплатный и простой в использовании. Требуется конвертация RGB в YUV. У меня есть пример кода для этого, я мог бы найти для вас, как это сделать.

VP8 и WebM от Google.

MJPG - это не более чем простое кодирование каждого кадра в формате JPG. Высокая загрузка процессора и высокая скорость передачи данных, но проще всего реализовать. Любой кодировщик JPG, который вы можете найти, подойдет.

Одна заметка об API кодеков. Интуитивно, вы просто хотите иметь функции, которые «сжимают» и «распаковывают». (MJPG отвечает этому требованию) Но видео сложнее, чем просто сжатие отдельных кадров. Большинство буферов сжатых кадров основаны на разностях предыдущего кадра без повторного кодирования всего изображения. Они имеют настройки для различных целевых битрейтов, сетей с потерями (UDP) и сетей без потерь (TCP), частоты кадров, интерфейсов I-кадров и т. Д. Некоторые продвинутые кодеки даже ожидают получить информацию о QOS от приемника, чтобы они могли самостоятельно - настроить их вывод в соответствии с условиями сети.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...