2009-05-23 52 views
3

我需要捕获一个高清视频源(例如高清晰电视),并将其显示在电脑中。我应该使用什么?我宁愿与Windows和C#的解决方案,但我打开其他选项。显示高清视频源

预先感谢您

+0

我相信这是不与编程有关。 – 2009-05-30 03:38:03

+0

安德鲁,你知道我的意思是C#吗? – 2009-05-30 12:13:17

回答

15

我会推荐VLCmplayer/mencoder(win32版本)。它们可以通过C#应用程序进行命令行驱动。 VLC支持任何DirectShow捕获设备,并具有大量先进的捕获,转码和发布选项。

另一个选项是ffmpeg,它可以作为命令行工具或binding to C#提供。

我个人建议在C#绑定中使用这些工具的命令行版本,因为所有这些程序都倾向于快速开发补丁和功能。相对于当前稳定版(更不用说SVN)构建任何这些程序,C#绑定完全可能会过时。另外你会在命令行格式中找到更多的文档,因为这通常是如何使用这些工具的。

最后可以通过建立自己的DirectShow Capture Filter来做到这一点。这个选项附带了我的BIG FAT WARNING,即使在使用像Capture Graph Builder这样的工具时,DirectShow也是一种非常复杂和有气质的野兽,需要很多经验才能正确执行。它还经常受到API的变化,Windows平台的差异以及较差的文档记录。沿着这条道路走自己的路。

0

Hauppage使得用于捕获视频,包括捕捉高清视频提供了多种解决方案。我相信他们有C#的驱动程序。

+0

谢谢你的答案McWaffleStix,但我试图找到一个独立于硬件的解决方案。 – 2009-05-25 08:51:19

+3

到底什么是“C#驱动程序”? – SpliFF 2009-05-26 01:56:27

0

首先我会看看现有的软件来做到这一点。例如,Windows Movie Maker可以显示和捕获高清摄像机的输出。 mplayer应该能够显示大多数捕捉卡/相机的实时信号(并且具有全屏选项)。还有其他更完整的系统,如ScopeBox,OnLocation,UltraScope或任何非线性编辑软件(Adobe Premiere,Final Cut Pro等)。这些都是针对视频制作的,但你并没有真正提到你为什么要显示或捕捉视频。

如果你想从头开始写点东西,DirectShow API应该是一个很好的起点。

我需要捕获的高清视频源(喜例如高清电视)

不能从HD-TV捕捉,因为它只是一个显示..

你可以从高清摄像机捕获,但你需要一个捕获卡--Blackmagic Design做了很多这些,最便宜的是它们〜$ 150 "Video Recorder",它可以通过组件捕获,它们的$ 200 "Intensity" card将通过HDMI捕获(和关于任何其他模拟连接)

然后,您应该能够使用DirectShow或QuickTime API从BlackMagic卡录制(support page regarding this)。对于其他采集卡也是如此(我只是提到BlackMagic,因为它们是更好的知名品牌之一)

有一点需要注意,如果您要捕获高清视频(1920x1080p),则需要处理很多数据。最新的电脑应该可以很好地处理它,但它仍然需要大量的CPU和IO速度。

另一件事,就像HDCP(高带宽数字内容保护)系统阻止这种情况一样,你无法从类似蓝光播放器的内容中捕获。

1

你的目标是什么?一个实时的电视信号,你想要抓取和使用,还是已经存储的东西? 如果您想要使用实时电视信号,将会很困难,因为有些电视频道不希望我们抓住它并使用HDCP作为信号保护或其他复制保护方法。 你应该知道这