代码之家  ›  专栏  ›  技术社区  ›  Artur Carvalho

显示高清视频源

  •  3
  • Artur Carvalho  · 技术社区  · 17 年前

    我需要捕获高清视频源(例如高清电视)并在pc中显示。我应该使用什么?我更喜欢使用windows和c#的解决方案,但我愿意接受其他选择。

    4 回复  |  直到 17 年前
        1
  •  15
  •   SpliFF    17 年前

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

    另一个选择是 ffmpeg binding to C# .

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

    最后,可以通过构建自己的 DirectShow Capture Filter Capture Graph Builder DirectShow是一个极其复杂和喜怒无常的野兽,需要大量的经验才能正确完成。它还受到常规API更改、Windows平台差异和糟糕文档的影响。沿着这条路走下去,后果自负。

        2
  •  1
  •   Andreas Hornig    16 年前

    你的目标来源是什么?一个实时电视信号,你想抓取和使用,还是什么都准备好了存储? 当您想要使用实时电视信号时,这将是很困难的,因为一些电视频道不希望我们捕获它,而是使用HDCP作为信号保护或其他版权保护方法。

        3
  •  0
  •   Paul Sonier    17 年前

    Hauppage 提供多种视频捕获解决方案,包括高清视频捕获。我相信他们有C#的司机。

        4
  •  0
  •   dbr    17 年前

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

    如果您想从头开始编写,DirectShowAPI应该是一个很好的起点。

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

    你不能从高清电视上拍摄,因为它只是一个显示器。。

    你可以用高清摄像机拍摄,但你需要一张拍摄卡——Blackmagic设计制作了很多,最便宜的是150美元 "Video Recorder" "Intensity" card 将通过HDMI(以及任何其他模拟连接)进行捕获

    然后,您应该能够使用DirectShow或QuickTime API从BlackMagic卡进行录制( support page regarding this ).其他捕获卡也是如此(我只是提到黑魔法,因为它们是比较知名的品牌之一)

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

    另一件事,你不能从像Bluray播放器这样的东西中捕捉,因为 HDCP (高带宽数字内容保护)系统可防止出现这种情况。

    推荐文章