FFMEPG结构说明

FFMEPG结构说明
    1.1
》介绍
    ffmpeg(Fast Forward Moving Pictures Experts Group)是音视频的分离,转换,编码解码及流媒体的完全解决方案,其中最重要的就是libavcodec库,是一个集录制、转换、音/视频编码解码功 能为一体的完整的开源解决方案。ffmpeg的开发是基于Linux操作系统,但是可以在大多数操作系统中编译和使用。FFmpeg支持MPEG DivXMPEG4AC3DVFLV40多种编码,AVIMPEGOGGMatroskaASF90多种解码. TCPMP, VLC, MPlayer等开源播放器都用到了FFmpeg
ffmpeg
主目录下主要有libavcodeclibavformatlibavutil等子目录。其中
    libavcodec用于存放各个encode/decode模块,CODEC其实是Coder/Decoder的缩写,也就是编码解码器;用于各种类型声音/图像编解码
    libavformat用于存放muxer/demuxer模块,对音频视频格式的解析;用于各种音视频封装格式的生成和解析,包括获取解码所需信息以生成解码上下文结构和读取音视频帧等功能;
其中库 libavcodeclibavformat用于对媒体文件进行处理,如格式的转换;
    libavutil集项工具,包含一些公共的工具函数;用于存放内存操作等辅助性模块,是一个通用的小型函数库,该库中实现了CRC校验码的产生,128位整数数学,最大公约数,整数开方,整数取对数,内存分配,大端小端格式的转换等功能
    libavdevice:对输出输入设备的支持;
    libpostproc:用于后期效果处理;
    libswscale:用于视频场景比例缩放、色彩映射转换;
    ffmpeg:该项目提供的一个工具,可用于格式转换、解码或电视卡即时编码等;
    fsever:一个 HTTP 多媒体即时广播串流服务器;
    ffplay:是一个简单的播放器,使用ffmpeg 库解析和解码,通过SDL显示;


       ffmpeg
软件包经编译过后将生成三个可执行文件,ffmpegffserverffplay。其中ffmpeg用于对媒体文件进行处理,ffserver是一个http的流媒体服务器,ffplay是一个基于SDL的简单播放器。
    
说明:
    muxer/demuxer
encoder/decoder的区别:
    最大的差别是muxer demuxer分别是不同的结构AVOutputFormatAVInputFormat
    encoderdecoder都是用的AVCodec 结构。
    muxer/demuxer是分别保存在全局变量AVOutputFormat  *first_oformatAVInputFormat  *first_iformat中的。encoder/decoder都是保存在全局变量AVCodec *first_avcodec中的。
    muxer/demuxer
encoder/decoder的相同之处:
    都是在main()开始的av_register_all()函数内初始化的 
    都是以链表的形式保存在全局变量中的
    都用函数指针的方式作为开放的公共接口
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值