读取SEI数据从HEVC视频与FFmpeg

Read SEI data from a HEVC video with FFmpeg

本文关键字:视频 FFmpeg HEVC SEI 数据 读取      更新时间:2023-10-16

我一直在尝试使用FFmpeg c++库和x265编码器以编程方式创建一些HEVC视频,使用--master-display, --max-cll和其他SEI数据选项从x265。现在,为了确保正确地编写这些信息,我想知道如何从生成的视频文件中读取SEI数据,最好使用FFmpeg c++库和函数。

我实现了一个视频解码器,它使用av_read_frame()和解码帧从每个AVPacket获得。我不确定在此过程之前是否可以从这些数据包或类似的方法获得SEI信息。

SEI读取代码位于这里,您可以添加调试消息来查看是否按照预期读取了各个值。sei位的消费者代码在这里,它计算视频应该呈现给用户的角度。这在AVFrame中导出为显示矩阵侧数据,您可以使用display.h中的API读取(源代码,doxy,带注释的源代码)。

应用程序可以使用这个角度来相应地旋转图像,例如使用rotate avfilter