Как закодировать видео с веб-камеры в H.264 на C#?[закрыто]

StackOverflow https://stackoverflow.com/questions/1653001

Вопрос

Как кодировать видео с веб-камеры в H.264 на C#?

Что мне нужно

  • MSDN, если есть какая-либо помощь по этому поводу.
  • Библиотеки/обертки с открытым исходным кодом для кодирования/декодирования.
  • Учебники и статьи в блогах о том, как это сделать.

Некоторые примеры кодирования в 3GP, FLV или что-то еще с небольшим размером файла были бы более чем оценены.

Это было полезно?

Решение

Вам нужно будет изучить DirectShow SDK.

Кодирование в H.264 напрямую невозможно, однако существуют коммерческие элементы управления ActiveX, которые могут вам помочь.Но нужно понять несколько вещей,

DirectShow — это платформа обработки аудио/видео, и вы можете использовать инструмент редактирования графиков, чтобы поместить свои устройства на график и протестировать его.И вам нужно написать аналогичный код для построения графа, граф — это цепочка устройств/объектов, которые взаимодействуют друг с другом для получения конечного результата.

DirectShow можно использовать в .NET, вы можете использовать инструмент GraphEditPlus для создания графика и использовать его в .NET, однако я сомневаюсь, что .NET — лучший способ, поскольку это может привести к неизвестным ошибкам, поскольку DirectShow тесно связан с COM.Если вы создаете элемент управления ActiveX на собственном C++ и используете DirectShow для полной записи, а также используете ActiveX в WPF, это будет более стабильно, но сложно программировать.

Обычно вам понадобится следующий график:

Video Source => Demux -> Audio Stream + Video Stream -> MP4Muxer 

x264 является бесплатным с открытым исходным кодом и имеет хороший MP4Muxer, но нелегальный. Для использования H264 в вашем коде вам необходимы патентные лицензии.

В качестве альтернативы вы можете использовать множество коммерческих элементов управления. Intel IPP на данный момент является лучшей реализацией H264, но разместить его в прямом шоу немного сложно.

Другие советы

Ниже приведены два примера из CodeProject для захвата видео в .NET.

Они не включают конкретно H.264.Для этого вам может потребоваться постобработка видео после захвата с помощью сторонних компонентов. Например:http://www.elecard.com/products/products-pc/sdk/codec-.net-sdk/

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top