我需要捕获一个高清视频源(例如hi def tv)并将其显示在电脑中。我该怎么用?我更喜欢使用windows和c#的解决方案,但我对其他选项持开放态度。
提前谢谢
答案 0 :(得分:15)
我会推荐VLC或mplayer/mencoder(win32版本)。它们可以通过C#应用程序进行命令行驱动。 VLC支持任何DirectShow捕获设备,并具有大量高级捕获,转码和发布选项。
另一个选项是ffmpeg,可以作为命令行工具或binding to C#使用。
我个人建议使用这些工具之一的命令行版本而不是C#绑定,因为所有这些程序都倾向于快速开发补丁和功能。相对于任何这些程序的当前稳定(更不用说SVN)构建,C#绑定完全可能是过时的。此外,您将在命令行格式中找到更多文档,因为这通常是这些工具的使用方式。
最后,可以通过构建自己的DirectShow Capture Filter来实现此目的。这个选项附带我的BIG FAT WARNING,即使使用像Capture Graph Builder DirectShow这样的工具也是一个非常复杂和气质的野兽,需要很多经验才能正确完成。它还会受到常规API更改,Windows平台差异和文档不良的影响。沿着这条路走你自己的危险。
答案 1 :(得分:1)
你想要的来源是什么?您想要抓取和使用的实时电视信号,还是已存储的东西? 当你想使用实时电视信号时,它很难,因为有些电视频道不希望我们抓住它并使用HDCP作为信号保护或其他复制保护方法。 你应该知道那个
答案 2 :(得分:0)
Hauppage提供了几种捕获视频的解决方案,包括捕获高清视频。我相信他们有C#的驱动程序。
答案 3 :(得分:0)
首先,我会看一下现有的软件。例如,Windows Movie Maker可以显示和捕获高清摄像机的输出。 mplayer应该能够显示大多数采集卡/摄像头的实时信息(并具有全屏选项)。还有其他更完整的系统,例如ScopeBox,OnLocation,UltraScope或任何NLE软件(Adobe Premiere,Final Cut Pro等)。这些都是针对视频制作的,但你并没有真正提到为什么要显示或捕捉视频。
如果你想从头开始写东西,DirectShow API应该是一个很好的起点。
我需要捕获一个高清视频源(例如hi def tv)
你无法从高清电视中捕捉,因为它只是一个显示器..
你可以从高清摄像机拍摄,但你需要一张采集卡--Blackmagic Design制作了很多这些,最便宜的是他们的〜$ 150 "Video Recorder",可以通过组件捕捉他们的〜 $ 200 "Intensity" card将通过HDMI(以及任何其他模拟连接)捕获
然后,您应该能够使用DirectShow或QuickTime API(support page regarding this)从BlackMagic卡录制。对于其他采集卡也应如此(我只是提到BlackMagic因为它们是知名品牌之一)
有一点需要注意,如果您正在捕捉高清视频(1920x1080p),那么您需要处理大量数据。最新的计算机应该可以很好地处理它,但它仍然需要大量的CPU和IO速度。
另一方面,你无法从像Bluray播放器这样的东西中捕获,因为HDCP(高带宽数字内容保护)系统阻止了这一点。