FFmpeg 基础概念

    xiaoxiao2025-03-26  17

    FFmpeg 是一个非常优秀的多媒体框架, FFmpeg 可以运行在Linux,Mac,Windows等平台上。FFmpeg 主要作用能够解码,编码,转码,复用,解复用,过滤音视频数据。

    FFmpeg 编译后文件目录:

     libavcodec:包含音视频编码器和解码器  libavutil:包含多媒体应用常用的简化编程的工具,如随机数生成器、数据结构、数学函数等功能  libavformat:包含多种多媒体容器格式的封装、解封装工具  libavfilter:包含多媒体处理常用的滤镜功能  libavdevice:用于音视频数据采集和渲染等功能的设备相关  libswscale:用于图像缩放和色彩空间和像素格式转换功能  libswresample:用于音频重采样和格式转换等功能

    多媒体文件基本概念:

    1)多媒体文件MP4,FLV 其实是个容器

    2)容器里面有很多流(Stream/Track), 比如音频流,视频流,字幕流

    3)每种流由不同的编码器编码,比如音频aac, 视频h264,h265.

    4)  从流中读取的数据称为包 (packet).

    5) 每个包含有一个或多个帧(frame)。

    FFmpeg中重要结构体:

    AVFormatContext:  格式上下文

    AVStream: 流

    AVPacket: 包

    AVFrame: 帧

    AVCodec: 编解码器

    AVCodecContext:  编解码器上下文

    SwrContext:  重采样上下文

     

    FFmpeg 处理音视频流程:

    最新回复(0)