zoukankan      html  css  js  c++  java
  • (转)几个开源的视频编解码器介绍

    出处:http://blog.csdn.net/xy365/article/details/8424600
     

        排名分先后。

    一、ffmpeg

        ffmpeg属于GPL或者LGPL,确切属于哪一种,要根据编译选项,因为它里面的库有些属于GPL的有些属于LGPL的,你编译的时候打开或者关闭这些库的选项,就决定了它属于哪一种。
    http://www.ffmpeg.org/legal.html
    ffmpeg项目由以下几部分组成:
    ffmpeg 视频文件转换命令行工具,也支持经过实时电视卡抓取和编码成视频文件.
    ffserver 基于HTTP(RTSP正在开发中)用于实时广播的多媒体服务器.也支持时间平移
    ffplay 用 SDL和FFmpeg库开发的一个简单的媒体播放器
    libavcodec 一个包含了所有FFmpeg音视频编解码器的库.为了保证最优性能和高可复用性,大多数编解码器从头开发的.
    libavformat 一个包含了所有的普通音视格式的解析器和产生器的库.
     

    二、Xvid

         Xvid(旧称为XviD)是一个开放源代码的MPEG-4视频编解码器,它是基于OpenDivX而编写的。官方网站:www.xvid.org

    三、X264

        X264是一种免费的、具有更优秀算法的符合H.264/MPEG-4 AVC视频压缩编码标准格式的编码库。x264压缩出的视频文件在相同质量下要比xvid压缩出的文件要小,或者也可以说,在相同体积下比xvid压缩出的文件质量要好。它符合GPL(General Public License,是一份GNU通用公共授权)许可证。X264属于videolan开源工程的一部分。http://www.videolan.org/developers/x264.html

      采用CAVLC/CABAC多种算法编码
      内置所有macroblock格式(16x16, 8x8, and 4x4 )
      Inter P:所有的分割块(从16x16到4x4 )
      Inter B:分割块从16x16到8x8
      码率控制:恒定的分层编制,单次或多次的ABR压制,可选的VBV压制
      场景剪切侦测
      支持B-frame
      能够任意编制B-frame命令行
      无损模式
      8x8和4x4的格式能够进行翻转或旋转
      自定义精确的矩阵模板
      可在多个CPU平行编码
      隔行扫描

        X264只提供编码,不提供解码。 解码部分需要FFMPEG完成;XVID有编解码部分,其中解码亦可以利用FFMPEG中的MPEG4完成解码。

    四、ffdshow

        ffdshow是对一些codec(ffmpeg, xvid, and other)的封装,封装成了DirectShow和VFW的标准组件。该库(软件)只能在windows平台运行,是属于GPL

    比如对于xvid来讲,ffdshow是可以选择具体使用那个codec的,ffmpeg(libavcodec) or xvid。那么封装有没有额外的成本哪?有,但对大部分应用来讲,可以忽略不计。就如c++和c。
    vfw和dshow里的CODEC分别是通过fourcc码和guid机制寻找的,可以在系统注册codec后调用,比自带编解码库形式更加统一,便于使用。此外,vfw和dshow是代表了两个微软不同时期的音视频处理封装库,里面包含了音视频驱动,音视频处理的一整套方案。

        DirectShow是微软公司在ActiveMovie和Video for Windows的基础上推出的新一代基于COM的流媒体处理的开发包,与DirectX开发包一起发布。目前,DirectX最新版本为9.0。 DirectShow为多媒体流的捕捉和回放提供了强有力的支持。运用DirectShow,我们可以很方便地从支持WDM驱动模型的采集卡上捕获数据, 并且进行相应的后期处理乃至存储到文件中。这样使在多媒体数据库管理系统(MDBMS)中多媒体数据的存取变得更加方便。DirectShow是微软公司 提供的一套在Windows平台上进行流媒体处理的开发包,与DirectX开发包一起发布。运用DirectShow,我们可以很方便地从支持WDM驱动模型的采集卡上捕获数据,并且进行相应的后期处理乃至存储到文件中。它广泛地支持各种媒体格 式,包括Asf、Mpeg、Avi、Dv、Mp3、Wave等等,使得多媒体数据的回放变得轻而易举。另外,DirectShow还集成了DirectX 其它部分(比如DirectDraw、DirectSound)的技术,直接支持DVD的播放,视频的非线性编辑,以及与数字摄像机的数据交换。

        vfw(Video For Windows)

    五、CoreAVC

         CoreCodec的CoreAVC高清H.264视频解码器是基于已经被用于AVCHD、蓝光光盘和HD-DVD中的MPEG-4 Part 10标准构建的。H.264是下一代的视频编码标准,而CoreAVC?是目前公认世界上最快的H.264软解码器。

  • 相关阅读:
    Spring MVC(十六)--Spring MVC国际化实例
    Spring MVC(十五)--SpringMVC国际化配置项
    Spring MVC(十四)--SpringMVC验证表单
    Spring MVC(十三)--保存并获取属性参数
    Spring MVC(十二)--使用ModelView实现重定向
    Spring MVC(十一)--使用字符串实现重定向
    Spring MVC(十)--通过表单序列化传递参数
    Spring MVC(八)--控制器接受简单列表参数
    Spring MVC(七)--传递JSON参数
    接口限流算法总结
  • 原文地址:https://www.cnblogs.com/lihaiping/p/media.html
Copyright © 2011-2022 走看看