我一直在尝试使用FFmpeg C ++库和x265编码器以编程方式创建一些HEVC视频,使用--master-display
,--max-cll
和x265的其他SEI数据选项。现在,为了确保正确地写入这些信息,我想知道如何从生成的视频文件中读回这个SEI数据,最好是使用FFmpeg C ++库和函数。
我已经实现了一个视频解码器,它使用av_read_frame()
工作,并解码获得的每个AVPacket
的帧。我不确定在这个过程之前我是否可以从这些数据包或类似的方法获得SEI信息。
答案 0 :(得分:2)
SEI读取代码生效here,您可以添加调试消息以查看是否按预期读取了各个值。 sei位的消费者代码是here,它计算视频应呈现给用户的角度。这在AVFrame中导出为display matrix side-data,您可以使用display.h中的API阅读(source,doxy,annotated source)。
然后,应用程序可以使用该角度相应地旋转图像,例如,使用rotate avfilter。