zoukankan      html  css  js  c++  java
  • ffmpeg 学习:主要结构体之间关系

    背景

    学习例程源码的时候,搞不清楚各结构体之间是什么含义。

    解析

    FFmpeg 有多个重要的结构体,解协议,解分装,解码,解封装。

    解协议:

    http,rstp,rtmp,mms。
    AVIOContext,URLProtocol,URLContext主要存储视频音频试用的协议类型及状态,URLProtocol存储输入视频音频的封装格式。每种协议都对应一个URLProtocol结构

    解封装:

    flv,avi,rmvb,mp4
    AVFormatContext 主要存储视频音频封装格式中包含的信息;
    AVInputFormat存储视频音频试用的封装格式。
    每种视频音频封装格式都对应一个AVInputFormat结构。

    解码:

    h264,mpeg2,aac,mp3,avs(真的超级多一页都显示不完,包含摄像头,监控,电视等等几乎能有视频音频的地方都有解码器)
    视频音频都有视频流会音频流。
    每个AVStream存储一个视频音频流的相关数据。
    每个AVStream对应一个AVCodecContext,存储该视频音频的解码方式相关数据。
    每个AVCodecContext中对应一个AVCodec,包含该视频音频对应的解码器,每种解码器对应一个AVCodec结构。

    存数据:

    视频每个结构都是存一帧(一张图)。音频可能好几帧。
    解码前的数据:AVPacket;
    解码后的数据:AVFormat;

    关系是这样:(引用雷神的原图)

    解协议(http,rtsp,rtmp,mms)→解封装(flv,avi,rmvb,mp4)→解码 h264,mpeg2,aac,mp3)→存数据

  • 相关阅读:
    225. Implement Stack using Queues
    150. Evaluate Reverse Polish Notation
    159 Longest Substring with At Most Two Distinct Characters
    142. Linked List Cycle II
    打印沙漏 (20 分)
    人见人爱A-B
    人见人爱A+B
    杨辉三角
    进制转换
    汉字统计
  • 原文地址:https://www.cnblogs.com/schips/p/12197255.html
Copyright © 2011-2022 走看看