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

2023-04-17 18:11:01 +08:00
 sbeasy

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

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

926 次点击
所在节点    程序员
5 条回复
ysc3839
2023-04-17 19:11:22 +08:00
为什么不行?

另外别用 GitHub 上这个 NVIDIA video sdk ,很久没更新了。
sbeasy
2023-04-17 19:23:53 +08:00
新的 video_codec_sdk 已经把 Duplication 这个例子删了
sbeasy
2023-04-17 19:27:07 +08:00
@ysc3839 不用 gpu 厂家的 sdk, 用 ffmpeg 能做到吗
ysc3839
2023-04-17 19:36:28 +08:00
@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
2023-04-18 09:35:40 +08:00
@ysc3839 好的, 我看看 gstreamer

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/933235

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX