Hi,
I need to capture an hd video source (hi def tv for instance) and show it in a pc. What should I use? I would prefer a solution with windows and c# but I am open to other options.
Thank you in advance
Hi,
I need to capture an hd video source (hi def tv for instance) and show it in a pc. What should I use? I would prefer a solution with windows and c# but I am open to other options.
Thank you in advance
Hauppage makes several solutions for capturing video, including capturing HD video. I believe they have drivers for C#.
I would recommend VLC or mplayer/mencoder (win32 versions). They can be command-line driven from your C# application. VLC supports any DirectShow capture device and has a significant number of advanced capture, transcoding and publishing options.
Another option is ffmpeg, which is available as a command-line tool or as a binding to C#.
I personally would recommend using a command-line version of one of these tools over the C# binding because all of these programs tend to develop patches and features quite quickly. It's entirely likely the C# binding will be out-of-date relative to the current stable (let alone SVN) build of any of these programs. In addition you will find a lot more documentation in command-line format since this is normally how these tools are used.
Finally it is possible to do this by building your own DirectShow Capture Filter. This option comes with my BIG FAT WARNING that even when using tools like Capture Graph Builder DirectShow is an extremely complex and temperamental beast and requires a lot of experience to do correctly. It also suffers from regular API changes, differences in Windows platforms and poor documentation. Go down this path at your own peril.
First I would look at existing software to do this. For example, Windows Movie Maker can display and capture the output of an HD video camera. mplayer should be able to display a live feed from most capture-cards/cameras (and has a fullscreen option). There are other more complete systems, like ScopeBox, OnLocation, UltraScope, or any NLE software (Adobe Premiere, Final Cut Pro etc). These are aimed at video production, but you don't really mention why you are displaying or capturing the video.
If you want to write something from scratch, the DirectShow API should be a good starting point.
I need to capture an hd video source (hi def tv for instance)
You can't capture from a HD-TV, since it's just a display..
You can capture from a HD video-camera, but you'd need a capture card - Blackmagic Design make a lot of these, the cheapest is their ~$150 "Video Recorder", which can capture via component, their ~$200 "Intensity" card will capture via HDMI (and about any other analogue connection)
You should then be able to record from the BlackMagic card using DirectShow or QuickTime API (support page regarding this). The same should be true for other capture cards (I'm just mentioning BlackMagic because they are one of the better known brands)
One thing to note, if you are capturing HD video (1920x1080p), you are dealing with a lot of data. Most recent computers should handle it fine, but it still requires a lot of CPU and IO speed.
Another thing, you cannot capture from something like a Bluray player, as the HDCP (High-bandwidth Digital Content Protection) system prevents this.
Hi Artur,
what is you intended source? A realtime TV-signal, that you want to grab and use, or something allready stored? When you want to use a realtime TV-signal itwillbe difficult, because some TV-channels don't want us to grab it and uses HDCP as a signal protection or other copyprotection methods. You should be awareof that