Могу ли я использовать ffmpeg для создания видео MPEG-4 с несколькими битрейтами (MBR)? - PullRequest
0 голосов
/ 29 ноября 2011

Я в настоящее время нахожусь в проекте сервера потоковой передачи веб-камеры, которому требуется функция динамического регулирования скорости потока потока в соответствии с настройками клиента (размеры экрана, мощность процессора ...) или пропускной способностью сети. Кодировщик - ffmpeg, поскольку он бесплатный и с открытым исходным кодом, а кодек - MPEG-4 part 2. Мы используем live555 для серверной части.

Как я могу кодировать видео MBR MPEG-4, используя ffmpeg для достижения этой цели?

1 Ответ

0 голосов
/ 05 декабря 2011

Мультибитрейт видео, которое вы описываете, называется «Масштабируемый видеокодек».Посмотрите эту ссылку wiki для базового понимания.

По сути, в масштабируемом видеокодеке сам поток базового слоя полностью декодируется;однако дополнительная информация представляется в виде (одного или нескольких) потоков расширения.Есть несколько способов сделать это, включая более низкое / более высокое разрешение, частоту кадров и изменение в квантовании.В следующих статьях подробно объясняется масштабируемое кодирование видео для MEPG4 и H.264 соответственно.Вот еще одна хорошая статья , которая объясняет, что вы собираетесь делать.

К сожалению, это широко исследуемая тема, и до настоящего времени ни один открытый код (ffmpeg и xvid) не поддерживает такое многослойное кодирование.Я предполагаю, что даже коммерческие кодировщики не поддерживают это также.Это значительно сложнее.Вероятно, вы можете проверить, поддерживает ли опорный кодер для H.264.

Альтернативным (но дорогостоящим) способом может быть перекодировка в реальном времени при передаче пакетов.В этом случае вам следует начать с достаточно хорошего качества для начала.Если вы используете FFMPEG в качестве API, это не должно быть проблемой.Как правило, многократное разрешение все еще может быть грязным, но вы можете продолжать изменять целевую скорость кодирования.

...