Показать сообщение отдельно
  #43  
Старый 05.10.2011, 05:22
Lucky192 Lucky192 вне форума
Прохожий
 
Регистрация: 04.10.2011
Сообщения: 28
Репутация: 1351
По умолчанию

Скачайте GraphEdit и попробуйте поработать в нем. Пока не поймете основы - дальше разговаривать бессмысленно.
В меню есть пункт InsertFilters и там куча фильтров. Нас интересуют фильтры DirectShow. Выберите фильтр "File source (Async)" и нажмите кнопку добавить. В открывшемся окне выберите какой-нибудь файл с фильмом. Теперь вызовите контекстное меню, щелкнув правой кнопкой мыши справа от надписи Output, и выберите пункт Renrer Pin. После некоторого раздумья появится схема. Теперь можно запустить фильм (кнопка с треугольником).
А теперь то что хотели разделение потока (для просмотра и записи). Остановите проигрывание. Удалите связь до или после компрессора (как нравится). Добавьте фильтр "Infinite Pin Tee Filter" (это такой универсальный разветвитель). Восстановите удаленную ранее связь, пустив ее через фильтр "Infinite Pin Tee Filter". Сначала надо подключить вход этого фильтра, выходы - потом. Когда подключите выход, увидите что число выходов увеличилось на единицу. Выберите следующий выход и выполните команду "Render Pin...". Появится еще одна цепочка. Теперь, если запустить проигрывание, должно получиться примерно следующая картина:



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

P.S. AVICap32 - давно устаревшая библиотека, пережиток 16-битных версий. Со всеми вытекающими. Она давно уже не поддерживается и жива лишь потому что сама работает через DirectShow. Используйте DirectShow и будет вам счастье. Все современные видеоплеееры работают именнно через DirectShow и ничего. Пакет DSPack вполне работоспособен (насчет новых версий не скажу, но года 3 назад все было хорошо). Если хотите получить прямой регулярный доступ к данным видеопотока, лучше не выцеплять их через Grab-фильтры, а написать свой фильтр и вставить его в нужное место цепочки. DSPack это позволяет, и не так уж это сложно в конце концов.
Ответить с цитированием