Прямая трансляция видео с использованием фрагментов видео OGG

В настоящее время мы разрабатываем приложение для прямой трансляции, которое включает в себя:

  • клиент, написанный на C#, который будет захватывать кадры с веб-камеры и должен кодировать их в видеоблоке (более подробная информация в будущем)

  • Потоковый сервер, написанный нами в Node.js, который в основном должен принимать только фрагменты видео от вышеуказанного клиента и отправлять их в веб-приложение, используя Socket.io в качестве основного протокола передачи.

  • Веб-приложение, которое будет использовать тег VIDEO + API MediaSource для воспроизведения видео.

Из-за ограничений, накладываемых как поддерживаемыми видеоформатами MediaSource API, так и API-интерфейсами кодировщика C# для этих видеоформатов (MPEG-DASH, WebM, OGG+Theora), мы пришли к этому решению:

Клиент C# будет кодировать 1 или 2 секунды видео в видео OGG, используя Theora в качестве видеокодека. Когда чанк готов, он отправляется на потоковый сервер, который отправит его в веб-приложение. Веб-приложение будет считывать этот фрагмент видео (который на самом деле представляет собой автономное видео продолжительностью 1-2 секунды) из сети, как если бы он читал из файла, а фрагмент после фрагмента веб-приложения воспроизводит их, как если бы это был один поток.

К сожалению, ни я, ни другие ребята из моей команды не имеют никакого опыта в кодировании / потоковой передаче видео, поэтому мой вопрос: кто-нибудь знает хорошую библиотеку C#, которая может создавать видео в формате OGG из последовательности кадров, снятых с веб-камеры, так что можно прочитать из MediaSource API без каких-либо проблем?

Любое другое решение, если оно использует тег видео, API MediaSource в веб-приложении и C# на клиенте, является приемлемым.

2 ответа

Я не верю, что есть много популярных библиотек для кодирования OGG. Однако, вероятно, было бы лучше создать свой собственный. Я бы начал здесь: http://tools.ietf.org/html/rfc5334

Мне повезло с Gstreamer, но я не уверен, что он будет работать, учитывая ваш язык и требования к кодировке. Тем не менее стоит посмотреть.

http://gstreamer.freedesktop.org/

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