问题标签 [nvenc]

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 回答
2088 浏览

ffmpeg - 如何使用 ffmpeg 在 NVenc(HEVC) 上设置 gop-size?

我想用 ffmpeg 在 NVenc(HEVC) 上设置 gop 大小,但我所做的一切都失败了:

我设置的命令如下:

默认 gop-size 似乎是 250。

如果有人有一些建议?还是不能通过命令设置 gop-size?

0 投票
1 回答
1138 浏览

ffmpeg - 带有 NVENC 和 DVB 字幕和叠加选项的 FFMPEG

您好我有一些关于 NVENC、DVB 潜艇和覆盖功能的问题。

我设法将 dvb 字幕刻录到输入视频,但我注意到这无法在 GPU 上完全执行,因为我使用的是 FFMPEG 的叠加功能,这只能通过软件实现。

当前代码 在应用覆盖之前将字幕缩放到 1920x1080。我注意到这比直接在视频上覆盖字幕使用更多的 CPU。问题是我想在中间底部覆盖字幕。当前代码将字幕置于屏幕中央(有点烦人)

最终我想要一个完整的硬件转码选项(猜这是不可能的吗?是吗)

我希望字幕在中心底部未缩放(cpu 负载减少 50%) 我希望字幕在中心底部缩放 50%(cpu 负载减少 30%),这使字幕更具可读性。

当前缩放到视频大小的字幕代码(如何完整的硬件转码?):

代码字幕未缩放但居中。如何更改为中底:

ffprobe 输出:

0 投票
0 回答
161 浏览

directx - 将 NVENC 与 DirectX 10 一起使用

我知道可以使用 DirectX 9 或 DirectX 11 表面/纹理通过 NVENC 对视频进行编码。但是 DirectX 10 怎么样?我可以使用 ID3D10Device 初始化编码器并使用 ID3D10Texture2D 吗?

0 投票
1 回答
180 浏览

directx - 如何将 nvEncode 输入缓冲区复制到 Direct3d11 纹理?

我正在使用 nvencode api 进行视频编码。我的采集卡使用直接 dma 传输 (GpuDirect) 将帧复制到预分配的输入缓冲区 (NV_ENC_INPUT_PTR)。序列如下所示:

后来我启动了编码过程。

这很好用,但为了呈现捕获的帧,我需要将其复制到纹理中。

有没有办法在解锁后向 Direct3d11 纹理发出副本形式 NV_ENC_INPUT_PTR inputBuffer?

注意:我知道我可以将 Direct3D 纹理用作 nvencode 的输入缓冲区并使用 Map/Unmap API。但我的采集卡似乎无法直接执行 DMA 传输到映射纹理。

0 投票
0 回答
710 浏览

ffmpeg - ffmpeg 使用 h264_nvenc & tee muxer 生成 "is_avc" = false

我正在使用 ffmpeg 将 MKV(Matroska 视频文件)编码为 2x MP4(H264 - 720p Main@L4)和(H264 - 360p Baseline@L3.1)。

使用时遇到非常奇怪的问题-c:v h264_nvenctee muxer然后生成的输出文件is_avc=false甚至我已经检查了相同的输入 matroska 文件与运行英特尔 QuickSync-c:v h264_qsv的另一台服务器使用相同的命令,然后生成的输出文件是is_avc=true.

我想要的主要目标is_avc=true是因为必须使用nginx-vod-module需要流式传输 AVC 视频格式的文件来播放文件。

重现问题的步骤:

  • 具有 NVENC 支持的自定义 ffmpeg 构建ffmpeg version N-91182-gbdf1bbd Copyright (c) 2000-2018 the FFmpeg developers built with gcc 4.8.5 (GCC) 20150623 (Red Hat 4.8.5-28)
  • ffprobeversion 4.0.2-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2007-2018 the FFmpeg developers
  • 使用 NVENC 和 tee muxer 运行 ffmpeg 命令行/li>
  • 为输出文件运行 ffprobe 以检查“is_avc”:/li>
  • 我当前的 ffprobe 输出结果是:

    /li>

请任何人都可以帮助我为什么输出视频文件越来越“is_avc=false”?

有没有办法强制它?

谢谢

0 投票
2 回答
2332 浏览

docker - 在 nvidia docker 中使用 nvenc 运行 ffmpeg

使用 nvidia-docker在docker 容器中安装了Nvidia Video Codec SDK 8.2 + ffmpeg但是当我运行它时

我收到了这个错误

无法加载 libnvidia-encode.so.1

nvenc 所需的最低 Nvidia 驱动程序是 390.25 或更高版本 初始化输出流时出错 0:0 - 打开输出流 #0:0 的编码器时出错 - 可能是不正确的参数,例如 bit_rate、rate、width 或 height

否则nvidia-smi显示这个

在此处输入图像描述

这个gpu使用的是GeForce 1050 Ticuda版本是9.0

0 投票
1 回答
1174 浏览

ios - iOS上的H.265(HEVC)解码-可以解码帧之前的正确NALU顺序是什么

我最近在 iOS 中使用 VideoToolbox api 获得了 HEVC / H.265 解码。传入的 RTP 流来自使用 libx265 中的 x265 编解码器的 FFMPEG。

经过大量修改后,我使用传入的 VPS、SPS 和 PPS nalus 创建了我的 CMFormatDescription - 然后我等待 CRA_NUT nalu (21) 关键帧。一旦通过,我就可以解码接收到的下一波视频数据包。伟大的!

但是,我现在想接受由 Nvidia 的视频编码 SDK 编码的 RTP 流。不同之处在于,不是 CRA_NUT nalu 在序列参数之后到达 - 我现在收到 VideoToolbox 似乎不喜欢的 IDR_W_RADL (19) - 结果我从解压缩会话的回调中得到 kVTVideoDecoderBadDataErr。

由于 VideoToolbox 的文档非常稀少 - 调试起来非常困难。VideoToolBox 是否总是期望 CRA_NUT nalu 作为关键帧?或者有什么办法让它接受 IDR_W_RADL 关键帧?是否有 VideoToolbox 期望的标准序列?

相反,有没有办法配置 nvidia 视频编解码器 sdk 以返回 CRA_NUT 关键帧?我查看了 api 但找不到任何东西——我似乎总是得到 IDR_W_RADL 以及序列参数。

0 投票
1 回答
1332 浏览

ubuntu - 在 ubuntu 上构建 ffmpeg:构建 nasm 失败

试图在 ubuntu 18.10 上构建 ffmpeg

https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

首先安装依赖

然后制作目录

然后建立nasm

然后错误

怎么能建造这个?以某种方式将警告作为错误禁用还是?idk,谢谢

0 投票
1 回答
880 浏览

ffmpeg - 从 mxf 到 mp4 的 Nvidia Nvenc 视频转换在内部的多个流中出现错误

我正在尝试将具有多个视频流和一个音频流的视频从 mxf 格式转换为 mp4 格式并出现错误。我怎么解决这个问题?谢谢你。

我的 FFPROBE 输出

0 投票
1 回答
661 浏览

ffmpeg - 带有 -flags:v +ildct 的 ffmpeg NVENC 编码显示“未找到支持 NVENC 的设备”

到目前为止,我成功地将 NVENC 与 ffmpeg 一起用于我的所有编码。今天我得到了一张新的 Zotac nVidia GEForce GTX 1660 6GB 卡。

我从 ffmpeg 收到“未找到支持 NVENC 的设备”错误。仅当我使用-flags:v +ildct标志时。没有ildct标志没有问题,除了输出是渐进的。

我 100% 需要隔行输出,我尝试了大多数隔行标志,例如,除了“Zotac nVidia GEForce GTX 1660”ffmpeg 显示之外,-vf tinterlace=interleave_top,fieldorder=tff -x264opts tff=1没有什么能给我隔行输出:-flags +ildct

我什至尝试了所有最新的 nVidia 驱动程序。没有什么帮助我。

我的伪 ffmpeg 命令行如下:

这是 nVidia 驱动程序或 ffmpeg 的错误吗?最新的 nVidia Turing 技术是否不支持隔行扫描(非常糟糕)?

有人可以帮我吗?