Захват потока DVB-T в файл фильма - PullRequest
7 голосов
/ 24 ноября 2010

У меня есть форма с прямой трансляцией телевизионного сигнала (с флешки dvb-t).У меня есть пример проекта "DTViewer" из http://directshownet.sourceforge.net/about.html. Теперь я пытаюсь записать поток в файл фильма, нажав кнопку, но как?Я использую C # и DirectShow.NET.

Я пытался искать во многих выборочных проектах, но они сделаны для видеовходов, а не для флешки dvb-t с интерфейсом BDA (Broadcast Driver Architecture).

Help!

Ответы [ 3 ]

3 голосов
/ 06 декабря 2010

Не знаю, что именно вы подразумеваете под «фильм-файлом», но я могу рассказать вам, как захватить весь MUX (транспортный поток).

Создать график с Сетевой поставщик Microsoft DVBT , You_Name_It BDA DVBT Tuner , You_Name_It Цифровой захват BDA и MPEG-2 Демультиплексор фильтры.
После их подключения , перечислите все выходные выводы на демультиплексоре MPEG-2 и выполните их рендеринг. Настройте частоту по вашему выбору (put_TuneRequest).

На данный момент все готово для запуска графика, но не запускайте его!
Перечислите все фильтры в графике. Отключите все фильтры, кроме Microsoft DVBT Network Provider , You_Name_It BDA DVBT Tuner и You_Name_It Цифровой захват BDA .

Удалите все эти отключенные фильтры из график, кроме демультиплексора MPEG-2 (он должен быть на графике, хотя он не подключен). Добавьте Sample Grabber фильтр и NULL Renderer фильтр. Подключите фильтр Digital Capture к Grabber для образцов и Grabber для образцов к NULL Renderer . Вы можете запустить график сейчас. Через обратный вызов в фильтре Sample Grabber вы получите весь MUX. Конечно, есть еще работа по демультиплексированию данных, но как только вы это сделаете, вы можете захватывать все телевизионные программы в одном MUX одновременно. Самый простой способ - захватить его в формате TS, поскольку TS транслируется (пакеты длиной 188 байт).

2 голосов
/ 03 декабря 2010

Мне кажется, что VLC имеет поддержку BDA ( ссылка на файл BDA.c ), может быть, вы можете что-то подхватить из их кода?

1 голос
/ 06 декабря 2010

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

Во-первых, вам нужно понять, что тюнер dvb-t илиСтик не дает видеокадры в классическом смысле, но декодирование выполняется на ПК, на процессоре.Внешняя карта будет предоставлять вам только сжатые данные, поскольку она извлекает их из эфира.

Далее - данные, которые будут доставлены вам, будут в формате транспортного потока MPEG2 или MPEG4.Который подходит для потоковой передачи или вещания, а не для сохранения в файл.VLC может воспроизводить TS, записанные в файл, но для записи правильного видеофайла вам придется либо перекодировать файл, либо перепаковать его в Program Stream.Подумайте немного, вы найдете различия.

Больше - одна частота в эфире состоит из множества каналов, и эта упаковка каналов называется «мультиплексором».Итак, из тюнера / устройства захвата BDA вы получите ВСЕ данные, и вам придется демультиплексировать их вручную или позволить демодулятору BDA сделать это за вас.

Надеюсь, этого достаточно, чтобы вы могли начать работуотправлю вам несколько интересных ссылок, когда я доберусь до настоящей клавиатуры.

...