Я хочу узнать, как работает современное кодирование видео, и я читал, что крупные компании переходят на бесплатное и открывают webm / av1 (или vp9), и это, как правило, «то, что разработчики захотят придерживаться».
Итак, чтобы лучше понять, как все работает, я хочу накатить простое приложение для кодирования, которое выдает поток webm. Вход и выход не имеют значения. Учтите, что у вас уже есть некоторые кадры, распакованные в памяти, и теперь вы хотите их кодировать и инкапсулировать в поток в памяти.
Насколько я знаю, webm - это подмножество формата контейнера / потока mkv, только с ограничениями кодека. Но есть множество десятков! различных библиотек, и я просто не могу понять, с чего мне начать. Самое первое, что я не могу понять - почему у каждого своя библиотека? Каковы цели / функции / отношения / (мотивация существования) следующих библиотек:
- libebml
- libmatroska
- libebml2
- libmatroska2
- libwebm
- libvpx (неужели он сказал , что его заставили разбирать и использовать части lib только для создания потока!?)
Кажется, что все они поддерживаются (в течение дней ~ месяца), поэтому для новичка совершенно не очевидно, какой из них взять и использовать.
Что за беспорядок ... Есть ли пример приложения "Привет мир", который действительно хорош, чтобы начать изучать потоковую передачу через веб?