DATE: 2018.12.30
1、参考
http://www.data-compression.org/patents.shtml
http://www.cnblogs.com/lidabo/p/7235316.html
https://en.wikipedia.org/wiki/List_of_open-source_codecs
https://en.wikipedia.org/wiki/Comparison_of_video_codecs
2、前言
在音视频编解码领域,有很多优秀的开源项目值得我们去学习研究。在开发过程中,我们可能会学习借鉴这些开源项目,来提高开发效率。下面介绍一些常用的音视频开源项目。
3、常用的音视频开源项目
3.1、huffyuv
huffyuv是一种无损压缩编码方法。
WIKI介绍:https://en.wikipedia.org/wiki/Huffyuv
下载网址:http://downloads.ddigest-dl.com/software/download.php?sid=730&ssid=0&did=2
https://www.videohelp.com/software/HuffYUV/old-versions#downloadold
3.2、Lame
Lame是一种软件mp3编码器,将音频转换成mp3文件格式。
WIKI介绍:https://en.wikipedia.org/wiki/LAME
http://www.rarewares.org/mp3-lame-bundle.php
下载网址:http://lame.sourceforge.net/
3.3、 ffmpeg
FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video.
最全面的开源编码器,包括了H.264、MPEG4、G.72x等音视频编码,效率也非常高,强烈推荐!
目前最全面的开源编码器,其中包括常用的音视频编码协议 h.264、MPEG4、H.263、G.721、G.726、G.729等,ffmpeg虽然是基于linux的开源项目,但可以通过交叉编译的方式在windows下运行,其项目加入了很多优化效率的代码,如采用汇编替代C,大大提高了编码的效率,推荐ffmpeg用于视频会议的实时编码。
官方网址:http://ffmpeg.org/
下载地址:http://ffmpeg.org/download.html
开源协议:GPL/LGPL
3.4、webrtc
Google收购GIPS后开源的基于浏览器的实时通信开源项目,GIPS是目前世界上最好的音频传输库,但其授权费非常高,webrtc是Google收购GIPS后,公开的一个通信项目,其核心voiceEngine就是由GIPS建立的,因此视频会议的音频部分可以参考webrtc来实现。
3.5、live555
live555是最重量级的一个C++流媒体开源项目,其中不仅包括了传输协议(SIP、RTP)、音视频编码器(H.264、MPEG4)等,还包括流媒体服务器的例子,是流媒体项目的首选,里面的传输模块是非常值得视频会议开发作为参考的。
3.6、x264
X264是目前应用最广的H.264编码器,其省去了H.264效率较低的部分,并对其进行了优化,效率明显比其他的H.264开源项目高很多,是最适合于实时视频会议传输的H.264编解码库。
下载地址:http://www.x264.nl/
开源协议: GNU GPL
3.7、Xvid
最著名的MPEG4编码器开源项目,但效率不及x264。
在没有H.264编码协议之前,Xvid的MPEG4编码一直是视频会议的首选视频编码器,但随着x264、CoreAVC等效率更高的H.264编码器的出现,其应用效果受到较大的冲击,但其结合directshow的视频采集模块还是值得视频会议开发人员参考的。
下载地址:http://www.xvid.org
开源协议: GNU GPL v2
3.8、x265
x265 is an open-source project and free application library for encoding video streams into the H.265/High Efficiency Video Coding (HEVC) format, and is released under the terms of the GNU GPL.
WIKI介绍:https://en.wikipedia.org/wiki/X265
官方网址: www.x265.org
下载地址: https://bitbucket.org/multicoreware/x265
开源协议: GNU GPL v2
3.9 OpenHEVC
只是一个解码库,目前没有支持编码
开发语言 C 基于ffmpeg/libav框架写的
官方网址: https://github.com/OpenHEVC/openHEVC
3.10、libvpx
libvpx is a free software video codec library from Google and the Alliance for Open Media (AOMedia). It serves as the reference software implementation for the video coding formats VP8 and VP9, and for AV1 a special fork named libaom that was stripped of backwards compatibility.
下载网址:http://code.google.com/p/webm/downloads/list
3.11、AV1
AV1是一种免版税、开源的新视频编码标准,集成Daala、Thor和VPx部分最优秀的编码思想,由开放媒体联盟(AOMedia)发布,目前第一版Version0.1.0已经在2016年4月7日发布。AV1现阶段的主要目标是在编解码复杂度合理增加的前提下,编码性能高于VP9/HEVC的50%。
AV1源码下载地址:https://aomedia.googlesource.com/aom
AV1测试视频序列:http://media.xipha.org/video/derf/
AV1码流分析工具源码:https://github.com/mbebenita/aomanalyzer
AV1码流分析工具:https://people.xiph.org/~mbebenita/analyzer/
3.12、libmpeg2
libmpeg2 is a free library for decoding mpeg-2 and mpeg-1 video streams. It is released under the terms of the GPL license.
project homepage: http://libmpeg2.sourceforge.net/
下载网址: https://github.com/aholtzma/mpeg2dec/tree/master
https://sourceforge.net/projects/libmpeg2/
开源协议: GNU General Public License version 2.0(GPLv2)
3.13、libjpeg
JPEG官网:https://jpeg.org/
https://jpegclub.org/
JPEG库开发组织:http://www.ijg.org/
libjpeg库的下载地址:https://sourceforge.net/projects/libjpeg/
开源协议:Custorm free software license, not GPL
3.14、OpenJPEG
OpenJPEG项目是jpeg2000的开源解码器项目。
官方网址: http://www.openjpeg.org/
下载网址: https://github.com/uclouvain/openjpeg
开源协议: 2-clauses BSD license
更多音视频开源项目可参考:https://en.wikipedia.org/wiki/Comparison_of_video_codecs