14

hevc/265 开源项目及相关

 1 year ago
source link: https://blog.csdn.net/china_video_expert/article/details/45479641
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

1.X265

个是有两个版本,一个是国内人搞的,是国外公司搞的

1.国外公司版本

只是一个编码器,目前没有支持解码

开发语言 c++

web url: www.x265.org

source url: https://bitbucket.org/multicoreware/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.

MulticoreWare公司发布x265预览版。x265是HEVC/H.265标准的开源编码器。根据相关网站作出的基准测试,和x264相比,x265的CPU占用率更高,相同比特率时画质质量更高,视频体积缩小近一半。

2.国人也搞了一个x265

code url (http://code.google.com/p/x265/)

作者blog地址 http://chenm003.blog.163.com/

2. openHevc

只是一个解码库,目前没有支持编码

开发语言 C   基于ffmpeg/libav框架写的

source url: https://github.com/OpenHEVC/openHEVC

GPAC url: http://gpac.wp.mines-telecom.fr

openHEVC is a fork from smarter's libav git (smarter.free.fr) with only required files from libav to decode HEVC content. openHEVC in combination with GPAC is used into 3 research projects:

4EVER
H2B2VS
AUSTRAL

3 libde265

source url  https://github.com/strukturag/libde265

德国公司 Stuttgarter Struktur AG发布了H.265编解码器的开源实现——libde265,代码发布在Github上,采用LGPL许可证授权

出于简化和效率的考虑,libde265采用C语言编写,其API很容易整合到其它软件中。libde265还在开发之中,功能还不完整,只支持解码帧内编码帧。

H265 HM开源软件

http://hevc.hhi.fraunhofer.de/

由德国fraunhofer研究生负责开发,为HEVC HM参考软件HM维护单位,相当于HEVC标准的C++实现。

https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/

X265开源库也是基于H265 HM(H265 test Model)开发的开源库

主要开发者拥有原来h264的主要开发者,主导公司是Multicoreware.

https://bitbucket.org/multicoreware/x265/

VideoLan镜像

https://github.com/videolan/x265

开发者列表

mingw编译ffmpeg+x265过程记录

工作环境 OS:windows 7

1.相关资源下载

Ffmpeg-2.3     http://ffmpeg.org/releases/ffmpeg-2.3.3.tar.bz2

X265-1.3下载  https://bitbucket.org/multicoreware/x265/wiki/Home

http://ffmpeg.zeranoe.com/builds/source/external_libraries/

X264下载 http://ffmpeg.zeranoe.com/builds/source/external_libraries/

2.编译x265-1.3

x264、x265、ffmpeg等都需要yasm编译器,需要将yasm编译器下载,复制到ming/bin目录下。

X265需要安装cmake来生产工程文件,需要下载最新的cmake-2.8.12版本,并安装,注意需要将其安装路径加入windows环境变量的PATH变量下。

2.1 进入到x265/build/msys目录,执行 make-Makefiles.sh

先点下面的configure,然后点generate即可,然后关闭,回到命令行。同上面的执行make 然后是 make install。最后编译成功应该可以找到对应的lib文件在/loacal/lib目录下。

3.编译ffmpeg-2.3

3.1. Ffmpeg编译配置选项

将x264、x265编译后的头文件,静态库文件copy至/usr/local/对应的目录下

将tyd.sh文件copy值ffmpeg-2.3.3目录下。运行tyd.sh脚步即可

3.2 运行编译选项存在的问题

ERROR: x265 not found

3.2.1. 缺少pkg-config程序、缺少x265.pc文件

查看config.log日志文件,根据以下的错误信息,应该是缺少pkg-config程序,以及缺少对应的x265.pc文件。

pkg-config程序的安装参考一下文章,或者直接下载pkg-config copy到/ming/bin目录下

pkg-config

安装  http://blog.csdn.net/chaosllgao/article/details/3984462

下载  http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/pkg-config-0.23-2.zip

x265.pc文件copy /usr/local/lib

可以通过pkg-config得到x265相关的文件信息。

3.2.2 config.log错误日志信息

a) 缺少gcc依赖库

  如下图所示,链接new\delete函数失败,显然是缺省gcc相关的函数导致

原因是msys版本的pkg-config不能正确读取x265库的依赖库导致,需要手动添加

b) 奇怪的链接错误

c:/mingw/lib/libstdc++.a(new_op.o):new_op.cc:(.text+0x34): undefined reference to `_Unwind_SjLj_Register'

c:/mingw/lib/libstdc++.a(new_op.o):new_op.cc:(.text+0x87): undefined reference to `_Unwind_SjLj_Unregister'

c:/mingw/lib/libstdc++.a(new_op.o):new_op.cc:(.text+0xb7): undefined reference to `_Unwind_SjLj_Resume'

通过分析查找,发现时上述链接使用的gcc函数库与x265.exe使用的函数库不一致的原因导致。本质原因还是pkg-config不能正确解析x265.pc文件所致,解决方案如下:

c) 正确执行configure配置的结果

可以看到ffmpeg依赖的第三方库已经正确的配置好了libx264和libx265

4.编译ffmpeg项目

到这一步基本上大功告成了,只需要执行make && make install即可。

最后可以在目录output下找到编译的结果。

编解码技术学习网站汇总

1.音视频开源

1.1 FFMPEG

Ffmpeg Basic http://ffmpeg.tv/

1.2 H264/AVC

1.3 H265/HEVC

1.HM(HEVC test Model)

团队名称 Joint Collaborative Team on Video Coding (JCT-VC) 
编解码器SVN URL
其他很多HEVC开源都是基于该基础上开发的,例如X265,OpenHevc

2.X265 

基于HM开发的多线程版本编码器,开发团队有部分原X264开发成员,主导公司是Multicoreware

3.OpenHEVC

只是一个解码库,目前没有支持编码。基于ffmpeg/libav框架写的,解码器技术也采用了HM

1.4 流服务器

2. ITU-T的Recommendation

ITU-T官方网站主页:

标准的下载列表:

打开列表后,根据标准的分类号点击对应的字母,进入这个系列的文档。例如需要找H263的标准文档时,只要点击H,然后在打开的子列表中找到H.263,再点击进入,就可以获取到这个标准以及附件(如源代码或者Appendix)。部分收费文档在这个列表下无法找到。

3.IETF的RFC标准文档

IETF官方网站主页:

我一直访问而且整理的比较好的网站,这里可以下载到pdf版本。

上面的网站可能找不到部分协议号比较高的文档,可以到下面的链接中找到:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK