Проект, над которым я сейчас работаю, требует дополнения к уже существующим возможностям VoIP. Ядро для обработки речи находится на C, остальные на C ++ с Qt — аудио обрабатывается через portaudio. Соединение между пользователями в настоящее время установлено через UDP, который, я думаю, должен быть изменен для запланированного видео соединения. Платформой разработки является Windows на VS2012 — однако система кроссплатформенная.
В двух словах, я хочу сделать следующее: захватить видеосигнал с веб-камеры, синхронизировать звук, поступающий с ядра C, и видео с веб-камеры и использовать библиотеку и кодеки для (де) кодирования / мультиплексирования сигналов на соответствующих сторонах и отправка через RTP. Система должна быть способна к многоадресной передаче.
Я провел некоторые исследования для возможных библиотек и наткнулся на ffmpeg и libVLC. Для кодека я думал об использовании x264. И если я прав, ffmpeg и libVLC должны быть способны на то, что я ищу?
Однако я не уверен, что выбрать, и из их документации я действительно не могу извлечь, какая библиотека лучше подходит. Кто-нибудь сталкивался с подобными проблемами и может мне помочь — я новичок, когда дело доходит до обработки и кодирования видео.
Дополнительный вопрос: есть ли у вас какие-либо советы или подходы по синхронизации видео и аудио сигналов?
Если кому-то интересно, это то, что я в итоге сделал:
Я использую формат контейнера WebM, VP8 с Vorbis в настоящее время (но собираюсь вскоре перейти на VP9 с Opus, если выйдет из бета-версии), обработанный библиотеками ffmpeg / libav для кодирования / декодирования / мультиплексирования и т. Д. И SDL для отображения и потоков. ffmpeg / libav был скомпилирован на Unix с поддержкой LGPL, чтобы сохранить наш проект закрытым исходным кодом.
Других решений пока нет …