2015-05-20 3 views
2

Я занимаюсь видеозаписью с использованием библиотеки DirectShow (.NET), у меня есть аналоговое устройство, которое выводит видео через BNC, я подключил его к оборудованию FrameGrabber (http://www.videohome.com.tw/eng/products-detail.php?p_id=72&level1_id=18), подключив через USB к моему компьютеру, я был сказал, что аналоговое устройство выводит видео на 720x576, однако я получаю видео на 640x480, на сайте он говорит, что FrameGrabber поддерживает 720x576.Изменение размера выборки видео

Для простоты я попытался сделать то, что описано далее в примере DxLogo (я использую что-то более обычное, не совсем уверенное, почему сейчас - может изменить использование Capture из DxLogo), и я получаю тот же результат, что и моя программа, просто подумал, что это будет лучшая ссылка на код.

Я отправил класс Capture для отображения в 720 x 576, он входит и устанавливает SetFormat на IAMStreamConfig, который возвращает 0 (успех), однако при вызове метода RenderStream он возвращает: -2147024809 и не работает. Я не мог найти слишком много информации о том, почему это происходит.

В моем другом коде я использовал GetNumberOfCapabilities, и, перейдя через них с помощью GetStreamCaps, я нашел один из них 720x576, я использовал SetFormat для IAMStreamConfig, и он преуспел, но получил то же самое от RenderStream.

ответ

0

Текущий режим по умолчанию - 640x480, и без его изменения вы снимаете видео, и вы получаете его 640x480. Так что вам нужно до change capture mode using IAMStreamConfig::SetFormat получить 720x576, и, похоже, вы пытаетесь это сделать, но также похоже, что вы выбираете какой-то формат, рекламируемый драйвером захвата кадров, и он не был принят дальше. Вам нужно проверить формат (подробности типа носителя), возможно, что-то там не так (особенно это означает чересстрочный контент) или просто создайте свой собственный тип медиафайла и передайте его с вызовом IAMStreamConfig::SetFormat.

+0

Я попытался создать свой собственный MediaType, я взял большинство настроек из рабочей конфигурации 640x480 и изменил соответствующие записи в соответствии с 720x576, есть ли какие-либо объяснения, что еще я должен делать? – user2012707

+0

Вы можете обновить вопрос с помощью информации о типе носителя. –

Смежные вопросы