如何在ffmpeg(c)中获取视频流的格式

How to get format of video stream in ffmpeg (c++)

我有一个从流中读取帧的函数。我想知道流的格式是什么(我正在使用 H264 进行测试):

1
2
3
4
5
6
7
StreamingResult MediaWriter::Open(const AVFormatContext *const inputFormatContext,
                                  const fs::path &destination)
{
  // Save input stream data
  AVStream *videoStream = inputFormatContext->streams[FindVideoStreamIndex(inputFormatContext)];
  //....
}

如何从视频流中获取格式/编解码器类型?我预计会收到 H264,但将来会收到其他格式。

P.S.:一些好的 FFMPEG 文档将不胜感激,因为我迷失在 Doxygen 生成的文档中。


Some good FFMPEG documentation would be appreciated, because I am getting lost in Doxygen generated documentation.

Doxygen 是最好的 ffmpeg 文档。它只是 ffmpeg 是一个非常大的项目,需要时间来学习。

你要找的是 videoStream->codecpar->codec_id