Directshow, передавая поток в программу типа ffmpeg - PullRequest
0 голосов
/ 12 апреля 2011

Я новичок в DirectShow.У меня есть устройство ASI / SDI Dectek, DTU-225 и относительный SDK: http://www.dektec.com/products/USB2/DTU-225/index.asp.В этом SDK есть фильтр Directshow.Мне нужно передать вывод, сгенерированный этим фильтром, в ffmpeg, mencoder o vlc для дальнейшей обработки в режиме реального времени (промежуточные файлы не создаются).Как я могу это сделать?Для интерфейса SDI выходной контактный вывод фильтра:

Type1

  • Majortype: MEDIATYPE_Video
  • Подтип: MEDIASUBTYPE_UYVY
  • Тип формата: FORMAT_VIDEOINFO2

Тип2

  • MEDIATYPE_Video
  • MEDIASUBTYPE_UYVY
  • FORMAT_VideoInfo

Я думаю, что более удобно использовать DirectShowпотому что следующим шагом будет: сделать то же самое не в режиме SDI, а в режиме DVB-ASI, транспортный поток mpeg2;поэтому я должен проанализировать поток и извлечь другой PID.Я думаю, что DirectShow поможет мне в этом процессе.Может быть.Спасибо.

Ответы [ 3 ]

1 голос
/ 05 августа 2011

ffmpeg может принимать входные данные "dshow"

ffmpeg / ffplay также может принимать входные данные avisynth, avisynth может принимать входные файлы graphedit, вы можете добавлять свои фильтры в файл graphedit и воспроизводить их.Это единственный способ захвата фильтров «без источника».

1 голос
/ 13 апреля 2011

Windows vlc будет захватывать из фильтра DirectShow.Смотрите ссылку ниже.Хорошо работает на моей системе Windows, захватив со встроенной веб-камеры и микрофона.В диалоговом окне «Открыть устройство захвата» вы можете выбрать «показать больше параметров», чтобы увидеть параметры, которые вы можете использовать в командной строке vlc, чтобы открыть это устройство захвата и выполнить потоковое / транскодирование и т. Д.

http://www.videolan.org/doc/play-howto/en/ch03.html

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

: dshow-vdev = USB-видеоустройство: dshow-adev = Микрофон (Realtek High Definition): dshow-caching = 200

Я не очень хорошо знаю vlc, и мне не удалось заставить это работать из командной строки.Есть некоторые тревожные сообщения о невозможности использовать устройства DirectShow с пробелами в имени из командной строки, но могут быть обходные пути.

http://trac.videolan.org/vlc/ticket/1654

Если вы готовы сделать этонекоторые программы DirectShow или использование Windows Media Player, а в DirectShow есть бесконечное множество вариантов обработки видео.Посмотрите страницу Википедии на DirectShow, чтобы получить обзор.

Другой вариант - написать плагин для vlc, ffmpeg или mencode, который напрямую обращается к DirectShow, чтобы получить данные из фильтра для вашего устройства, хотя это не так просто, как использовать вход DirectShow для vlc.

0 голосов
/ 19 апреля 2011

Просто используйте ffdshow, это ffmpeg в форме фильтра DirectShow.

...