DJI Windows 10 SDK FFMPEG 视频缓冲

DJI Windows 10 SDK FFMPEG Video buffering

有谁知道如何减少 DJI FFMPEG 实现的缓冲延迟?似乎应用程序使用此 API 运行的时间越长,延迟就越差。除了 CODEC_FLAG_LOW_DELAY 或 CODEC_FLAG2_FAST 之外,是否有可能有助于减少延迟的特定选项?我应该在 av_parser_parse2 中设置什么以减少延迟吗?我当然假设延迟是在 API 而不是飞机本身 - 无人机似乎不太可能具有缓冲大量视频的存储空间。

经过一些实验,我发现 av_parser_parse2 方法的 pts/dts 值会影响帧缓冲。 DJI 的示例代码对 pts 和 dts 使用 AV_NOPTS_VALUE;这导致视频流中的延迟不断增加。我没有计算这些值,而是每次 got_picture == true 时将 pts 增加 1000 并设置 dts = pts。是的,这是一个黑客,但它有效。希望这也能帮助其他遇到此问题的人。如果您使用的是 DJIVideoParser 项目,可以轻松地对 h264_Decoder.cpp 的 DecoderThread 方法进行此更改。