hevc/265 开源项目及相关

时间:2022-12-11 17:07:08

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

开发者列表

hevc/265  开源项目及相关

hevc/265  开源项目及相关



mingw编译ffmpeg+x265过程记录

工作环境 OSwindows 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

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

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

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

hevc/265  开源项目及相关

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

3.编译ffmpeg-2.3

3.1. Ffmpeg编译配置选项

x264x265编译后的头文件,静态库文件copy/usr/local/对应的目录下hevc/265  开源项目及相关

hevc/265  开源项目及相关

tyd.sh文件copyffmpeg-2.3.3目录下。运行tyd.sh脚步即可

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

ERROR: x265 not found

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

hevc/265  开源项目及相关

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

hevc/265  开源项目及相关

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

hevc/265  开源项目及相关

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

3.2.2 config.log错误日志信息

a) 缺少gcc依赖库

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

hevc/265  开源项目及相关

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

hevc/265  开源项目及相关

b) 奇怪的链接错误

hevc/265  开源项目及相关

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文件所致,解决方案如下:

hevc/265  开源项目及相关

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

hevc/265  开源项目及相关

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

4.编译ffmpeg项目

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

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

hevc/265  开源项目及相关


编解码技术学习网站汇总

1.音视频开源

1.1 FFMPEG

http://www.ffmpeg.org/
http://dranger.com/ffmpeg/
Ffmpeg Basic http://ffmpeg.tv/
http://www.libav.org/

1.2 H264/AVC

 http://www.videolan.org/developers/x264.html

1.3 H265/HEVC

1.HM(HEVC test Model)

团队名称 Joint Collaborative Team on Video Coding (JCT-VC) 
资料 http://hevc.hhi.fraunhofer.de/
编解码器SVN URL
https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/
其他很多HEVC开源都是基于该基础上开发的,例如X265,OpenHevc

2.X265 

基于HM开发的多线程版本编码器,开发团队有部分原X264开发成员,主导公司是Multicoreware
源代码 https://bitbucket.org/multicoreware/x265/VideoLan
镜像 https://github.com/videolan/x265

3.OpenHEVC

只是一个解码库,目前没有支持编码。基于ffmpeg/libav框架写的,解码器技术也采用了HM
source url: https://github.com/OpenHEVC/openHEVC

1.4 流服务器

http://www.live555.com/
http://www.rtmpd.com/

2. ITU-T的Recommendation

ITU-T官方网站主页:

http://www.itu.int

标准的下载列表:

http://www.itu.int/publications/publications.aspx?lang=en&parent=T-L&selection=2&sector=2  打开列表后,根据标准的分类号点击对应的字母,进入这个系列的文档。例如需要找H263的标准文档时,只要点击H,然后在打开的子列表中找到H.263,再点击进入,就可以获取到这个标准以及附件(如源代码或者Appendix)。部分收费文档在这个列表下无法找到。

3.IETF的RFC标准文档

IETF官方网站主页:

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

http://www.faqs.org/rfcs/

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

http://www.rfc-editor.org/rfc-index2.html

http://www.rfc-editor.org/rfc-index.html 

www.ietf.org