问题标签 [nvdec]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1133 浏览

cuda - 如何获取 CUVID 设备的 GPU 架构?

我正在使用 NVidia 的 NvDec CUVID 功能实现视频解码器。根据(严重不足)手册的第 2 章,解码限制由 GPU 架构指定。即,最大 h265 水平分辨率在 GP10x 上为 8192,在 GP100 上为 4096 或更小,并且在低于 GM206 的任何架构上均不受支持。

如何使用 CUDA 检测此类架构?我应该从计算能力中推断出来还是什么?如果我应该推断它,是否有架构与计算能力的表格?

0 投票
1 回答
444 浏览

c++ - 使用随机访问解码 H264

我想访问 H264 文件中的随机帧并将解码的图像映射到 Direct3D 纹理。我正在使用NVIDIA VIDEO CODEC SDK。我已经找到了8.0 版中包含的NvDecodeD3D11示例,并将其剥离为熊的基本要素。

基本上我想实现与中提出的相同想法:从文件中间解码 H264

我的文件只能是 IDR 帧,但也可以包含 P 帧。

轻松访问示例:Github

我理解链接问题中的想法,但我不知道在哪里以及如何实现这一点。

0 投票
1 回答
1869 浏览

ffmpeg - 尝试使用 NVDEC 解码 4K 视频时出错

我正在尝试将 70GB 的 4K HEVC MKV 文件转换为另一个 HECV 文件,但大小更小。我正在使用带有 Nvidia 加速的 FFmpeg,但是当我执行以下命令时出现错误:

错误是:

视频文件具有以下详细信息:

在此处输入图像描述

似乎 FFmpeg 无法将我的 GPU 识别为支持解码的设备,但我读到 Nvidia 支持我的带有 NVDEC 的卡。

我正在使用 i7 4790 和 GTX 1080 运行 Windows 10 64 位

0 投票
0 回答
1356 浏览

ffmpeg - 使用 VideoCodec (NVENC) 解码时读取自定义 SEI 消息

我有一系列视频,其中包含在 sei 消息 NAL 中编码的自定义信息。使用 Nvidia 硬件解码器解码时是否可以读取该信息。如果不支持,我应该改用 NVENC 支持编译的 FFMPEG 吗?

更新:我想解码媒体并阅读 SEI 消息。我正在流式传输实时视频并在 sei 消息中包含后处理信息。客户端必须使用该信息将效果应用于解码的媒体。尽快解码媒体很重要,我想在硬件中完成。我假设 Nvidia 解码器必须解析 NAL 单元来解码它们。如果可能,我想避免重复工作。

0 投票
0 回答
357 浏览

c++ - 无法与 libnvcuvid.so 静态链接

我正在尝试使用最新的NVIDIA Video SDK,特别是 - 它的 NVDEC(硬件视频解码器库)。我使用以前的版本已经有一段时间了,它在运行时从 libnvcuvid.so 加载函数指针,它在我的机器上位于:

/usr/lib/nvidia-396/

它包含以下相关项目:

/usr/lib/nvidia-396/libnvcuvid.so

/usr/lib/nvidia-396/libnvcuvid.so.1

/usr/lib/nvidia-396/libnvcuvid.so.396.18

现在,在最新的 SDK 8.1 中,运行时没有加载库函数指针,而是使用了所有标记为的 API 方法extern和静态链接。在 Windows 上,它们提供 nvcuvid.lib。但是在 linux 上,只有上面提到的 SO。我的 IDE 以该目录为目标(三重检查;如果我删除了路径,链接器会抱怨它找不到 lib)正确,我也将libnvcuvid.so链接器上的方式与我放置的方式完全相同,cuda.so并且cudart.so在静态的相同位置链接与 CUDA API。但我仍然得到

“未定义参考”

对于在最新标头中声明的所有 cuvid 函数。如您所见,我的驱动程序版本也是最新的(8.1 至少需要 390)。

为什么不链接?

更新(链接器):

/usr/bin/g++ -o bin/xxxxx_xxx_d @"xxxxx_xxx.txt" -L。-LDebug -L/usr/lib/nvidia-396 -L/usr/local/cuda-9.1/lib64 -lcuda -lcudart -lnvcuvid .....

0 投票
1 回答
2260 浏览

ffmpeg - 使用 Nvidia GPU 加速的 Ffmpeg 帧提取抛出“输出文件 #0 不包含任何流”

我正在尝试将 nvidia gpu 加速解码器 api 与 ffmpeg 一起使用,以将视频文件 ( .MTS) 中的所有帧提取到文件夹中,但它看起来由于某种原因失败了;我找不到答案或类似问题。

使用的命令:

ffmpeg -vsync 0 -hwaccel cuvid -c:v mpeg2_cuvid -i raw_video.MTS -q:v 2 -f image2 output_folder/image_%05d.jpg

追溯:

我很确定-hwaccel cuvid -c:v mpeg2_cuvid这是正确的,因为文件属性中的文件类型似乎是 MPEG-2,但其他 cuvid 解码器也会发生类似的问题:

在此处输入图像描述

我也尝试在没有-c:v标志的情况下运行,但随后出现 cuda 错误并在 cpu 上运行:

[h264 @ 0x55949e6d7e00] decoder->cvdl->cuvidCreateDecoder(&decoder->decoder, params) failed -> CUDA_ERROR_INVALID_VALUE: invalid argument [h264 @ 0x55949e6d7e00] Failed setup for format cuda: hwaccel initialisation returned error.

任何帮助都感激不尽。

编辑:

  • 操作系统:Arch Linux
  • 显卡:英伟达 1050Ti
  • CUDA 版本:10.2
  • 英伟达-SMI:440.82

编辑2:

0 投票
2 回答
734 浏览

cuda - Nvidia NVDEC - 将解码帧复制到 D3D11 NV12 纹理

我正在尝试将 NV12 NVDEC 解码缓冲区直接复制到 NV12 d3d11 纹理中。到目前为止没有运气。我设法做的是使用 2 个 d3d11 纹理(亮度 + 色度)、 2 cuGraphicsMapResources、 2 cuGraphicsSubResourceGetMappedArray、 2CUDA_MEMCPY2D和一个像素着色器来合并所有的双镜头副本……无法执行单镜头副本,也没有响应到目前为止,来自 NVidia 论坛。

我发现这个老问题面临一个非常相似的问题,也没有解决方案。

0 投票
1 回答
30 浏览

nvidia - Why is Print Screen versus what is actually displaying on the monitor are different?

I'm working on an application that screen captures a monitor in real-time, encodes it, sends it over ethernet, decodes it, then displays that monitor in an application.

So I put the decoder application on the same monitor that is being captured. I then open a timer application and put it next to the decoder application. I can then start the timer and see the latency between main instance of the timer and the timer within the application.

What's weird is that if I take a picture of the monitor with a camera, I get one latency measurement (almost always ~100ms) but if I take a Print Screen of the monitor, the latency between the two is much lower (~30-60ms).

Why is that? How does Print Screen work? Why would it result in 40+ ms difference? Which latency measurement should I trust?

0 投票
1 回答
716 浏览

c++ - FFmpeg + cpp,如何获取处理 h264_nvenc 的 GPU 列表?

我正在编写要在具有多个 GPU 的 PC 上使用的应用程序,我正在尝试获取可以在 h264 中解码流的 GPU 索引列表,以在所有可用 GPU 之间平均分配所有新视频源。

我已经找到了如何在命令提示符下执行此操作,但我需要在 C++ 中编写属于它的行

我需要它动态地将它传递给 av_hwdevice_ctx_create(AVBufferRef**,char *int)

有谁知道如何做到这一点?

0 投票
1 回答
3169 浏览

ffmpeg - 带有-hwaccel_output_format的FFMPEG Hwaccel错误

我有 Nvidia 1050Ti 显卡

我用 cuda 测试 ffmpeg

错误:

我想要不使用 CPU 的完整硬件转码。