使用带 h264_nvenc 编码器的 ffmpeg 时面临麦克风音频延迟

问题描述 投票:0回答:0

我正在尝试使用 ffmpeg D3D11VA 帧 @60 fps 的形式使用桌面复制 api 和 on-gpu D3D11 纹理捕获我的 windows10 桌面。 此处给出所需命令。最重要的是,我还试图拦截我的麦克风音频。为此,我正在使用这个命令,

ffmpeg -init_hw_device d3d11va -filter_complex ddagrab=framerate=60 -f dshow -i audio="Microphone (High Definition Audio Device)" -c:v h264_nvenc -rc vbr -cq 24 -qmin 24 -qmax 24 -profile:v main -b:v 0K output.mp4

在我观看 output.mp4 时桌面捕获过程后,我面临音频延迟。更准确地说,我的麦克风音频是在 28/29 视频帧之后出现的。 IE。 (28/60)*1000 = 466 毫秒音频延迟。

我尝试捕捉@30fps 但没有改善。现在我得到 14 帧延迟,即。 (14/30)*1000 = 466 毫秒音频延迟。

经过一些研究,我开始了解关键帧间隔。默认情况下,h264_nvenc 使用 200 秒的关键帧间隔。所以我尝试使用 h264_nvenc 编码器的 -g 选项来降低它。这里也没有改善。

一个可能的解决方案是使用 -itsoffset 选项延迟我的视频。这些堆栈溢出和超级用户解决方案仅适用于预先录制的视频,

ffmpeg 叠加中的延迟视频

在ffmpeg中,如何在不转换音频的情况下仅延迟.mp4视频的音频?

但我在旅途中(即同时)进行捕获和编码。

我是视频编辑和ffmpeg的新手。

ffmpeg h.264 screen-capture nvenc desktop-duplication
© www.soinside.com 2019 - 2024. All rights reserved.