框架解析下.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
框架解析下

库解析(下) 2012-09-18 lsm FFmpeg Review FFmpeg Position FFmpeg库是面向developer和user的开源库,内部采用松散架构模式,每一个模块可以单独使用。 Deep Step 因为FFmpeg是面向对象的用C语言实现的库,所以要先了解 FFmpeg KS(核心数据结构),原始数据-帧-数据包-流-容器-协议。 介绍FFmpeg各个 Module的核心结构,简要画出编解码,容器封装等基本流程。 FFmpeg 核心扩展功能开发。 FFmpeg KS [视频原始数据] 数据面个数: rgb:1 yuv:1-3 normal-4 ffmpeg-8 opencv-16 dx- IDirectDrawSurface BYTE * Data[8](数据面个数) 行: 1. Stride(原始的) + Heigh + ColorFormat 2. Pitch(对齐的) + Heigh + width + ColorFormat 3. Linesize(内存) + Heigh + width + PixelFormat int Linesize[8](行) FFmpeg KS [音频原始数据] int sample_fmt 采样格式(u8bit,16bit,32bit,float,double) int sample_rate 采样率(48000,128000-mp3,192000,320000)ape-flac int channels 通道数(单声道,双声道,四通道,5.1声道,6声道) BYTE * buffer 音频流 int buffer_size 缓冲区大小 int nb_samples/channel_layout 平均每个通道的采样数/通道布局 FFmpeg KS [数据帧/封装包] AVFrame 原始数据经过编解码后,有序存储 在 内存中: int64 pts 编码输入顺序(显示顺序) int64 dts 编码输出顺序 (解码顺序) 视频:int pict_type帧类型(I,P,B,S,SI,SP,BI) 音频:字节流 - 编码 - 数据帧 AVPacket 准备封装/协议处理的数据流: int64 pts 显示时间 int64 dts 编解码时间/解码顺序 duration 持续时间 pos 容器中的位置 FFmpeg KS [流/容器] AVStream是数据流,它的基本成员有codec,context,,时长,总帧数,帧率(fps分数)/码率,metadata等等。 AVFormatContext是封装核心,它的基本成员有源的路径,iformat(输入),oformat(输出),所有的数据流,格式分类,时间参数,包seek相关,metadata,chunk,对应对的属性等等。 FFmpeg 数据流程图 原始视频 原始音频 AVFrame AVFrame AVFrame 字幕 附件其他数据 AVPacket 编码 AVPacket AVPacket AVPacket 组装 直接组包 N个合成 AVStream AVStream AVStream AVStream 容器层AVFormatContext 容器 协议层 file pipe rtp http ddraw 媒体文件,数据流,设备 IO协议 流 包 帧 原始数据 FFmpeg KS [协议接口] FFmpeg协议抽象层AVIO核心成员: Open/Close 打开和关闭数据流 Seek 定位数据位置 Read/Write 读写数据 Pause/Shutdown 暂停/停止 Check 检测 FFmpeg KS [容器接口] FFmpeg封装层AVFotmat核心成员: 输入:read_header、read_probe、read_packet、read_close 、read_seek 、read_play 、read_pause 、read_timestamp等 输出:write_header 、write_packet等。 FFmpeg KS [编解码接口] FFmpeg编解码抽象AVCodec核心成员: init 初始化 open 打开编解码器 decode/encode 编解码操作 flush/update 编解码刷新 close 关闭编解码器 FFmpeg KS [其他接口] FFmpeg AVHWAccel硬件加速层: start_frame/end_frame 编码控制 decode_slice 解码控制 FFmpeg网络层: 异步支持poll,iocp仅是提供接口框架; 同步代码内嵌支持。 FFmpeg输入输出设备支持视为容器。 FFmpeg 编码过程 输入参数-open e

文档评论(0)

peili2018 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档