当前位置:   article > 正文

Qt+FFmpeg+opengl从零制作视频播放器-6.视频解码

Qt+FFmpeg+opengl从零制作视频播放器-6.视频解码

首先一个完整的MP4文件解封装之后,得到了压缩的视频数据H.264、H.265等,这个数据是不能直接拿去播放的,我们需要解码成原始的YUV等数据才能够播放,解码视频数据,如下图所示,把H264或者H265数据解码成原始的数据YUV等数据。

视频解码是将压缩的视频数据流转换成一系列可显示的图像帧(通常是YUV或RGB格式)的过程。典型的视频解码步骤如下:

  • 解封装(Demuxing):

    • 从媒体容器(如MP4, MKV, AVI等)中提取视频流。
    • 读取视频流元数据,以获取必要的信息,如编解码器类型、分辨率、帧率等。
  • 解码准备:

    • 查找与视频流相匹配的解码器(例如:H.264, VP9)。
    • 初始化解码器上下文(AVCodecContext)。
    • 打开解码器准备解码。
  • 读取编码数据:

    • 从媒体文件中逐个读取编码的视频数据包(AVPacket)。
  • 送入解码器解码:

    • 将编码的视频数据包发送到解码器。
    • 解码器可能需要多个数据包才能生成一帧图像。
  • 获取解码后的帧:

    • 从解码器中接收解码后的视频帧(AVFrame)。
    • 检查并处理帧的顺序是否正确,因为某些
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/234943
推荐阅读
相关标签
  

闽ICP备14008679号