C 中 FFmpeg 库中 P 帧和多线程的兼容性

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

我正在使用 C 中的 FFmpeg 库进行视频处理项目。我想询问在 FFmpeg 中同时使用 P 帧(预测帧)和多线程的兼容性和支持。目前,我正在探索使用 FFmpeg 实现多线程的两种选择:

  1. 将FFmpeg的i_threads参数设置为大于1的值
  2. 我的应用开启了多个线程,其中每个线程都创建了一个codec context 并从共享 FIFO 执行并行压缩/解压缩帧。

我已经尝试过选项 1,但与仅使用一个线程相比,我没有观察到任何明显的时间差异。我正在寻求理解为什么会这样。

我已经尝试了选项 2,它改进了帧的压缩/解压缩时间。但是,我想了解它为什么有效。由于我使用的是 P-Frame,其中每个 P-Frame 都依赖于最新的 I-Frame,因此在处理多个编解码器上下文时,如何确保 P-Frame 的解压缩在 I-Frame 完成处理后开始?

multithreading video ffmpeg libavcodec
© www.soinside.com 2019 - 2024. All rights reserved.