Capturing DVB-T stream to movie file

I have a form with a live view of a television signal (from dvb-t stick). I have a sample DTViewer project from http://directshownet.sourceforge.net/about.html . Now I'm trying to capture a stream into a video file by clicking a button, but how? I am using C # and DirectShow.NET.

I tried to search many sampleprojcets, but they are made for video inputs, not dvb-t with BDA (Broadcast Driver Architecture) interface.

Help!

+7
c # video-capture capture streaming bda
source share
3 answers

I don’t know what exactly you mean by “movie-file”, but I can tell you how to capture the entire MUX (transport stream).

Create a graph using Microsoft DVBT Network Provider , Your_Name_It BDA DVBT Tuner , Filters B_D_Name_It BOD Digital Capture and MPEG-2 Demultiplexer .
Once you plug them in, list all the output pins in the MPEG-2 Demultiplexer and visualize them. Adjust the frequency of your choice (put_TuneRequest).

At this point, everything is ready to run the chart, but do not run it!
List all the filters on the chart. Disable all filters except Microsoft DVBT Network Provider , You_Name_It BDA DVBT Tuner and You_Name_It BD Digital Capture .

Remove all these disabled filters from the graph except for MPEG-2 Demultiplexer (it should be on the graph, although it is not connected). Add a Sample Grabber filter and a NULL Renderer filter. Connect the Digital Capture Filter to the Sample Grabber and Sample Grabber to a NULL Renderer . Now you can run the chart. Through the callback in the Sample Grabber filter, you will receive the entire MUX. Of course, there is still some work to demonstrate the data, but as soon as you do this, you can immediately capture all the TV programs in one MUX. The easiest way is to capture it in TS format, because TS is broadcast (188 byte packets).

+3
source share

It seems to me that VLC has BDA support ( link to the BDA.c file ), maybe you can track something from your code?

+2
source share

There is no easy answer to your question. I started one such project and found that I know very little about it, so here is a little something from my research.

First, you need to understand that a dvb-t tuner card or stick does not produce video frames in the classical sense, but decoding is performed on a PC, on a processor. An external card will provide you only compressed data, since it extracts them from the air.

Next - the data that will be delivered to you will be in MPEG2 or MPEG4 Transport Stream format. This is suitable for streaming or broadcasting, and not for saving files. VLC can play back TSs recorded to a file, but in order to record a proper video file you need to either transcode the file or repackage it in Program Stream. Google is a little, you will find the differences.

Larger - one frequency on the air consists of many channels, and this channel packaging is called "flour". So - from the BDA tuner / hijacker you will get ALL the data and you will have to manually deduce it or let the BDA demultiplexer do it for you.

I hope that there is enough information to get you started, I can publish interesting links for you when I get to the real keyboard.

+1
source share

All Articles