当前位置: 首页 > news >正文

100m做电影网站广州网站建设有哪些公司

100m做电影网站,广州网站建设有哪些公司,财务办公室装修设计,机械做网站摘要#xff1a;前一段时间熟悉了下FFmpeg主流程源码实现#xff0c;对FFmpeg的整体框架有了个大概的认识#xff0c;因此在此做一个笔记#xff0c;希望以比较容易理解的文字描述FFmpeg本身的结构#xff0c;加深对FFmpeg的框架进行梳理加深理解#xff0c;如果文章中有…  摘要前一段时间熟悉了下FFmpeg主流程源码实现对FFmpeg的整体框架有了个大概的认识因此在此做一个笔记希望以比较容易理解的文字描述FFmpeg本身的结构加深对FFmpeg的框架进行梳理加深理解如果文章中有纰漏或者错误欢迎指出。本文描述了FFmpeg编解码框架的工程结构基本构成以及大体的调用流程。因为FFmpeg的滤镜是相对独立的一个模块因此在此不会进行描述。   关键字FFmpeg,Framework   阅读须知阅读本文前你首先需要了解最基本的音视频处理相关的知识对于这些知识你至少需要最基本的了解比如知道什么是容器什么是编解码器以及大概的工作流程即可。   FFmepg是一个用C语言实现的多媒体封装、解封转、编解码开源框架支持了多种IO协议操作媒体封装格式的封装与解封装以及编解码格式编解码器包括硬解和软解。任何软件都可以在FFmpeg的License范围内合理地基于FFmpeg进行开发。FFmpeg有两种开源协议 GPL该协议是具有传染性的如果使用了GPL部分的代码FFmpeg可以配置是否开关这部分代码对应的软件也必须开源否则有法律风险LGPL允许以动态发布的形式使用即将FFmpeg编译为动态库使用但是修改到了FFmpeg部分的代码修改的部分也需要开源一般商业软件都会采用这种方式来进行商业软件的开发。 FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation. It is also highly portable: FFmpeg compiles, runs, and passes our testing infrastructure FATE across Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris, etc. under a wide variety of build environments, machine architectures, and configurations. 1 FFmpeg工程 本小节简单描述下FFmpeg的工程结构相关的内容以期对FFmpeg工程本身的基本构成有一个基本的认识。 1.1 FFmpeg工程结构 FFmpeg本身的目录结构比较清晰我们从目录名称中基本就能看出该目录下可能包含哪些文件具体用来干什么。 .当前目录下存储的是一些编译和项目相关的配置文件比如MakefileLicense等compat:兼容文件doc:文档以及一些FFmpeg使用的示例如果学习FFmpeg的话强烈建议阅读示例ffbuild:编译相关的一些文件比如依赖选项等等fftools:可以编译成可执行文件的一些工具实现比如ffplay,ffmpeg,ffprobe等工具;libavcodec:编解码核心编解码相关的文件都存放在这里比如h264dec.c等libavdevice:设备相关比如DShow等libavfilter:滤镜特效处理libavformat:IO操作以及封装格式的封装和转封装等处理libavutil:工具库比如一些基本的字符串操作图像操作等libavpostproc:一些效果后处理相关的内容一般通过filter处理libswresample:音频重采样处理libswscale:视频缩放、颜色空间转换以及色调映射等presets:编解码器的配置文件参考FFmpeg-Present-filestests:测试示例tools:一些简单的工具。 2 FFmpeg架构 2.1 FFmpeg的总体架构 FFmpeg各个模块是互相独立的都可以单独使用比如解封装器只用来对媒体进行解封装或者封装拿到编码器的裸流或者编解码器直接对裸流数据进行编解码亦或者使用工具集对已经解码完的数据尽兴处理。   编解码模块支持多种不同编解码器所有的编解码器所使用的参数和当前编解码器相关的Context都是使用AVCodecContext描述。而FFmpeg中每个具体的解码器都有一个静态的AVCodec描述当前解码器如何解码这个是有一套统一的接口来定义的。上层拿到AVCodecContext和AVCodec就可以初始化解码器进行解码了只不过使用FFmpeg提供的解码接口更加方便。FFmpeg并没有硬件解码器归类的AVCodec下面而是在其下层另外规定了一套AVHWAccel通过AVCodec来描述该硬件解码器。   封装和解封装支持多种不同的媒体文件类型FFmpeg中讲一个文件抽象为AVFormatContext而内部分别将输入流和输出流分别抽象为AVInputFormat,AVOutputFormat。AVInputFormat,AVOutputFormat用来描述当前媒体文件的相关参数以及对媒体文件进行封装和解封装而具体的操作通过AVIO来进行。AVIO抽象了具体的文件IO操作类似编解码器每种类型的输入流都有各自的描述封装器和解封装器同理。   工具集也是独立的只是一些工具函数的集合。   滤镜用来对裸数据进行一些特效上的处理。本文不会过多讨论滤镜 2.2 代码结构 FFmpeg虽然是用C语言写的但是其基本的实现思想是按照OOP的思想实现的每个具体的格式都有自己的Context和描述类然后通过函数指针来描述具体实例的实际实现也就是上面描述的Context-Context-Context-....Implementation这种形式为了对当前处理的对象统一抽象就会有一个Context来描述。而每个Context都有一个AVClass和opaue来描述当前结构的参数和独有的一些数据通过这种方式保持了接口的统一的同时又能兼顾差异性。 2.3 调用流程 FFmpeg的核心就是封装/解封装和解码那一套下面的流程图是一个大概有一部分调用被省略了。
http://www.ho-use.cn/article/10823156.html

相关文章:

  • 利用ps制作网站的设计乐陵市seo关键词优化
  • 做任务赚q红包的网站外包程序员的出路
  • 网站建设的前期投入wordpress 图片相册
  • 网站怎么做才有百度权重免费承接网站建设
  • 江华县网站开发科技布沙发好还是布艺沙发好
  • 成都市住房和城乡建设局官方网站公司怎么建立自己的网站
  • 网站开发方式有用python做网站怎么赚钱
  • 电子商务网站建设与管理a浏阳做网站的公司价格
  • 网站推广策划思维导图网站建设需要提供的资料
  • 在家做十字绣兼职网站百度企业号
  • 网站设计是怎么设计的适合写个人博客的平台
  • html简单网站成品免费wordpress 百度云视频
  • iis通过地址访问不了网站wordpress博客无法显示
  • 织梦网站源码好吗网站广告收费标准
  • 房地产网站策划新手站长如何购买虚拟主机做网站
  • 学做实体店网站花店网站建设规划书
  • 网站建设的公司收费徐州网站制作怎么做
  • 深圳网站建设高端设计网站和app开发
  • 鹿班设计网站官网二级域名免费分发站
  • 东莞网站设计的公司火车头发布wordpress
  • 建设网站的软件下载网站页面关键词优化
  • 简述网站建设的深圳百度推广
  • 网页是网站的什么颜色好看查询网站备案时间
  • 品牌和网站建设wordpress 新页面
  • 律师论坛网站模板html代码图片
  • 网站建设安全标准wordpress all in one seo
  • 安徽建设厅网站进不去html5做网站系统
  • 网上挣钱最快的平台百度seo排名优化软件分类
  • 阅读网站模板下载wordpress the7 中文视频教程
  • 昆明网站开发推广会员管理系统app