V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sbeasy
V2EX  ›  程序员

直接将 capture 时捕获的 ID3D11Texture2D 在 GPU 内编码, 有这么做的吗

  •  
  •   sbeasy · 2023-04-17 18:11:01 +08:00 · 753 次点击
    这是一个创建于 396 天前的主题,其中的信息可能已经有所发展或是发生改变。

    GPU 和 CPU 之间数据传输很耗费时间, 这样 GPU 和 CPU 只需要传输 h264/h265 了.

    有没有能跑通的例子, 类似这个 https://github.com/NVIDIA/video-sdk-samples/tree/master/nvEncDXGIOutputDuplicationSample, 不过我跑的时候发现 dxgi 捕获必须要在集显里.

    5 条回复    2023-04-18 09:35:40 +08:00
    ysc3839
        1
    ysc3839  
       2023-04-17 19:11:22 +08:00 via Android   ❤️ 1
    为什么不行?

    另外别用 GitHub 上这个 NVIDIA video sdk ,很久没更新了。
    sbeasy
        2
    sbeasy  
    OP
       2023-04-17 19:23:53 +08:00
    新的 video_codec_sdk 已经把 Duplication 这个例子删了
    sbeasy
        3
    sbeasy  
    OP
       2023-04-17 19:27:07 +08:00
    @ysc3839 不用 gpu 厂家的 sdk, 用 ffmpeg 能做到吗
    ysc3839
        4
    ysc3839  
       2023-04-17 19:36:28 +08:00 via Android
    @sbeasy 不用私有 SDK 的话可以考虑用 Media Foundation 的 H.264 encoder
    FFmpeg 应该不支持 Media Foundation ,可以考虑用 gstreamer
    d3d11screencapturesrc 捕获,传递给 mfh264enc 即可
    https://gstreamer.freedesktop.org/documentation/d3d11/d3d11screencapturesrc.html
    https://gstreamer.freedesktop.org/documentation/mediafoundation/mfh264enc.html
    sbeasy
        5
    sbeasy  
    OP
       2023-04-18 09:35:40 +08:00
    @ysc3839 好的, 我看看 gstreamer
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   995 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 22:27 · PVG 06:27 · LAX 15:27 · JFK 18:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.