gpt4 book ai didi

FFMPEG:HEVC 解码器中的帧参数初始化

转载 作者:行者123 更新时间:2023-12-01 15:49:29 26 4
gpt4 key购买 nike

我正在研究 FFMPEG 中集成的 HEVC 解码器。我实际上是在尝试了解它的流程和工作原理。

我所说的流程是指代码中读取输入 .bin 文件的各种参数的部分。比如它在哪里读取分辨率,它在哪里决定它需要播放的fps,输出显示格式是yuv420p等。

最初我怀疑是位于 /libavformat/hevcdec.c 的 hevc 的分路器在这个文件中执行输入文件读取工作。有一个探测功能,用于检测在解码输入二进制流时选择哪个解码器。此外,我们还有一个 FF_DEF_RAWVIDEO_DEMUXER。从输入文件中读取分辨率和其他参数是在这个函数中吗?

其次,我怀疑位于以下位置的 hevc 解析器:/libavcodec/hevc_parser.c 但我认为它只是解析帧数据,即找到帧的结尾。那么,我的这个假设对吗?

任何建议或任何预测都会对我很有帮助。请提供您的宝贵建议。提前致谢。

最佳答案

要更具体地了解解码器中发生的事情,最好从 HEVC/H.265 标准 ( http://www.itu.int/rec/T-REC-H.265 ) 开始学习。它包含查找分辨率、fps 等位置所需的所有信息。

如果您想从 FFMPEG 获得更多细节,这里有一些提示:

  • /libavcodec/hevc_parser.c 包含 H.265 Annex B 解析器,它将字节流转换为一系列 NAL 单元。每个 NAL 单元都有自己的格式,应根据其 NAL 单元类型进行解析。
  • 如果您正在寻找视频序列的基本属性,您可能会对 SPS(序列参数集)解析感兴趣。其格式在标准的第 7.3.2.2.1 节中进行了描述,并且在 /libavcodec/hevc_ps.c 中有一个函数 ff_hevc_decode_nal_sps 从比特流中提取 SPS 参数。

注意:我说的是 FFMPEG 版本 2.5.3。其他版本的代码结构可能不同。

关于FFMPEG:HEVC 解码器中的帧参数初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21249833/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com