在ffmpeg中使用qsv编码时如何强制qsv生成idr

How to force qsv generate idr when using qsv encoding in ffmpeg

我用h264_qsv对视频进行编码,效果很好,视频可以翻译成h264。 但是如何强制它生成 IDR 帧呢?我使用以下代码:

encodeFrame->pict_type = AV_PICTURE_TYPE_I;
int ret = avcodec_send_frame(m_ctx, encodeFrame);

但没有创建 idr 帧。

QSV 编码器有一个专用选项,可在帧作为 I 帧发送信号时启用 IDR 帧。

打开编码器之前添加。

av_opt_set(m_ctx->priv_data, "forced_idr", "1", 0);