问题标签 [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.
ffmpeg - 如何使用 ffmpeg 在 NVenc(HEVC) 上设置 gop-size?
我想用 ffmpeg 在 NVenc(HEVC) 上设置 gop 大小,但我所做的一切都失败了:
我设置的命令如下:
默认 gop-size 似乎是 250。
如果有人有一些建议?还是不能通过命令设置 gop-size?
ffmpeg - 带有 NVENC 和 DVB 字幕和叠加选项的 FFMPEG
您好我有一些关于 NVENC、DVB 潜艇和覆盖功能的问题。
我设法将 dvb 字幕刻录到输入视频,但我注意到这无法在 GPU 上完全执行,因为我使用的是 FFMPEG 的叠加功能,这只能通过软件实现。
当前代码 在应用覆盖之前将字幕缩放到 1920x1080。我注意到这比直接在视频上覆盖字幕使用更多的 CPU。问题是我想在中间底部覆盖字幕。当前代码将字幕置于屏幕中央(有点烦人)
最终我想要一个完整的硬件转码选项(猜这是不可能的吗?是吗)
我希望字幕在中心底部未缩放(cpu 负载减少 50%) 我希望字幕在中心底部缩放 50%(cpu 负载减少 30%),这使字幕更具可读性。
当前缩放到视频大小的字幕代码(如何完整的硬件转码?):
代码字幕未缩放但居中。如何更改为中底:
ffprobe 输出:
directx - 将 NVENC 与 DirectX 10 一起使用
我知道可以使用 DirectX 9 或 DirectX 11 表面/纹理通过 NVENC 对视频进行编码。但是 DirectX 10 怎么样?我可以使用 ID3D10Device 初始化编码器并使用 ID3D10Texture2D 吗?
directx - 如何将 nvEncode 输入缓冲区复制到 Direct3d11 纹理?
我正在使用 nvencode api 进行视频编码。我的采集卡使用直接 dma 传输 (GpuDirect) 将帧复制到预分配的输入缓冲区 (NV_ENC_INPUT_PTR)。序列如下所示:
后来我启动了编码过程。
这很好用,但为了呈现捕获的帧,我需要将其复制到纹理中。
有没有办法在解锁后向 Direct3d11 纹理发出副本形式 NV_ENC_INPUT_PTR inputBuffer?
注意:我知道我可以将 Direct3D 纹理用作 nvencode 的输入缓冲区并使用 Map/Unmap API。但我的采集卡似乎无法直接执行 DMA 传输到映射纹理。
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_nvenc
,tee 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)
- ffprobe
version 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”?
有没有办法强制它?
谢谢
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 以及序列参数。
ubuntu - 在 ubuntu 上构建 ffmpeg:构建 nasm 失败
试图在 ubuntu 18.10 上构建 ffmpeg
https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu
首先安装依赖
然后制作目录
然后建立nasm
然后错误
怎么能建造这个?以某种方式将警告作为错误禁用还是?idk,谢谢
ffmpeg - 从 mxf 到 mp4 的 Nvidia Nvenc 视频转换在内部的多个流中出现错误
我正在尝试将具有多个视频流和一个音频流的视频从 mxf 格式转换为 mp4 格式并出现错误。我怎么解决这个问题?谢谢你。
我的 FFPROBE 输出
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 技术是否不支持隔行扫描(非常糟糕)?
有人可以帮我吗?