Есть ли способ изменить свойства Capture Pin? - PullRequest
1 голос
/ 20 июня 2011

Я занимаюсь разработкой приложения для захвата видео в C ++ с использованием DirectShow.Когда я проверил подтип медиа структуры AM_MEDIA_TYPE вывода вывода фильтра захвата, я увидел, что разные веб-камеры захватывают данные в разных форматах, таких как MEDIASUBTYPE_RGB24, MEDIASUBTYPE_MJPG и т. Д.

Есть ли способ сообщить выходконтакт для вывода данных в общем формате, как MEDIASUBTYPE_RGB24?Я не хочу включать дешифрование всех возможных подтипов.

Просим вас сообщить мне, если у меня есть возможность сделать все захваченные с веб-камеры данные общего типа, прежде чем передавать их вКодер.

Ответы [ 2 ]

0 голосов
/ 15 марта 2013

Как правило, каждая камера создает данные в своем особом (ых) формате (ах) без гарантии того, что она может транскодировать в драйвере захвата в RGB24 или любой другой формат. Из всех форматов вариации YUV являются наиболее распространенными, поскольку эти форматы могут отображаться как непосредственно на экране, так и подаваться в нисходящий фильтр сжатия.

Пример, указанный @Christopher, на самом деле не решает вопрос о том, как управлять форматом захвата. Фильтры захвата видео используют уникальный набор интерфейсов для управления множеством возможностей выходного формата.

Используйте IAMStreamConfig.SetFormat () , чтобы выбрать частоту кадров, размеры, цветовое пространство и сжатие выходных потоков (захват и предварительный просмотр) из устройства захвата.

Используйте IAMStreamConfig.GetStreamCaps () , чтобы определить, какие частоты кадров, размеры, цветовые пространства и форматы сжатия доступны. Большинство камер предоставляют несколько различных форматов.

0 голосов
/ 20 июня 2011

Вы прикрепляете приемник к выводу, который фиксируется в формате, который вы хотите получить, а затем DirectShow вставляет фильтры для преобразования типа входа в тип, который вы хотите.

См. пример .

...