3

我需要捕捉高清视频源(例如高清电视)并将其显示在电脑上。我应该使用什么?我更喜欢使用 windows 和 c# 的解决方案,但我对其他选项持开放态度。

先感谢您

4

4 回答 4

15

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

另一个选项是ffmpeg,它可用作命令行工具或绑定到 C#

我个人建议在 C# 绑定上使用这些工具之一的命令行版本,因为所有这些程序都倾向于很快开发补丁和功能。相对于任何这些程序的当前稳定(更不用说 SVN)构建,C# 绑定很可能已经过时了。此外,您会发现更多命令行格式的文档,因为这通常是这些工具的使用方式。

最后,可以通过构建自己的DirectShow Capture Filter来做到这一点。这个选项伴随着我的 BIG FAT 警告,即使使用Capture Graph Builder DirectShow 之类的工具,它也是一个极其复杂和喜怒无常的野兽,需要大量经验才能正确完成。它还受到定期 API 更改、Windows 平台差异和糟糕文档的影响。走这条路,后果自负。

于 2009-05-26T01:59:11.217 回答
1

你的预期来源是什么?您想要获取和使用的实时电视信号,还是已经存储的东西?当你想使用实时电视信号时会很困难,因为有些电视频道不希望我们抓取它,并使用 HDCP 作为信号保护或其他复制保护方法。你应该意识到这一点

于 2009-12-30T16:29:17.683 回答
0

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

于 2009-05-23T02:28:04.470 回答
0

首先,我会查看现有的软件来执行此操作。例如,Windows Movie Maker 可以显示和捕捉高清摄像机的输出。mplayer 应该能够显示来自大多数采集卡/相机的实时提要(并且具有全屏选项)。还有其他更完整的系统,如ScopeBoxOnLocationUltraScope或任何非编软件(Adobe Premiere、Final Cut Pro 等)。这些是针对视频制作的,但您并没有真正提及为什么要显示或捕获视频。

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

我需要捕捉高清视频源(例如高清电视)

你不能从高清电视上捕捉,因为它只是一个显示器..

你可以从高清摄像机上捕捉,但你需要一张捕捉卡——Blackmagic Design 制作了很多这些,最便宜的是他们的~150 美元的“录像机”,它可以通过组件捕捉,他们的~200 美元的“强度”卡将通过 HDMI 捕获(以及任何其他模拟连接)

然后,您应该能够使用 DirectShow 或 QuickTime API(关于此的支持页面)从 BlackMagic 卡进行录制。其他采集卡也应该如此(我只是提到 BlackMagic,因为它们是更知名的品牌之一)

需要注意的一件事是,如果您正在捕获高清视频 (1920x1080p),那么您正在处理大量数据。大多数最新的计算机应该可以很好地处理它,但它仍然需要大量的 CPU 和 IO 速度。

另一件事是,您无法从蓝光播放器之类的东西中捕获,因为HDCP(高带宽数字内容保护)系统可以防止这种情况发生。

于 2009-05-26T15:34:31.023 回答