hevc/265 开源项目及相关

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过程记录

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


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

3.编译ffmpeg-2.3

3.1. Ffmpeg编译配置选项

x264x265编译后的头文件,静态库文件copy/usr/local/对应的目录下


tyd.sh文件copyffmpeg-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依赖的第三方库已经正确的配置好了libx264libx265

4.编译ffmpeg项目

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

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



编解码技术学习网站汇总

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



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/447262.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IPFS星际文件系统的简介

IPFS简介 IPFS(InterPlanetary File System)叫星际文件传输系统,本质是一个基于点对点的分布式超媒体分发协议,它整合了分布式系统,为所有人提供全球统一的可寻址空间,因为他具有良好的安全性、较高的传输…

ARM和NEON指令 very nice

在移动平台上进行一些复杂算法的开发,一般需要用到指令集来进行加速。目前在移动上使用最多的是ARM芯片。 ARM是微处理器行业的一家知名企业,其芯片结构有:armv5、armv6、armv7和armv8系列。芯片类型有:arm7、arm9、arm11、corte…

IPFS下载安装和配置

参考链接 因为这个网站访问速度很慢,我提供了IPFS的MAC版本。有需要的查看我的资源下载。 大致流程 安装 $ ls go-ipfs_v0.4.10_darwin-amd64.tar.gz $ tar xvfz go-ipfs_v0.4.10_darwin-amd64.tar.gz x go-ipfs/build-log x go-ipfs/install.sh x go-ipfs/ipfs…

arm 开发工具比较(ADS vs RealviewMDK vs RVDS)

ADS REALVIEW MDK RVDS 公司 ARM Keil(后被ARM收购) ARM 版本 最新1.2 ,被RVDS取代 最新4.0 是否免费 破解情况 有 有 工程管理 CodeWarrior IDE nVision IDE Eclipse/ CodeWarrior IDE 编译器 ARM C compiler for AD…

解决macOS Catalina(10.15)解决阻止程序运行“macOS无法验证此App不包含恶意软件”

在终端里面输入如下命令 sudo spctl --master-disable 下面图片对比执行命令前后,安全性与隐私 界面上显示的差异:使用命令之后,界面变了

MAC版 的最新Docker 2.2版本配置国内代理的解决办法

点击Docker图标,选择Preference选项,进行国内代理的问题 输入内容如下 {"experimental": false,"debug": true,"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn", "https://hub-mirror.c.163.…

《算法的乐趣》作者王晓华访谈:多看、多做、多想是秘诀

摘要:王晓华是一位热衷于算法研究的程序员,他是CSDN算法专栏的超人气博主,也是《算法的乐趣》一书的作者。近日,笔者采访了王晓华,请他分享算法的经验之道。 王晓华是一位热衷于算法研究的程序员,他是CSDN…

基于Mac环境搭建以太坊私有区块链进行挖矿模拟

第一步:相关软件的安装 go-ethereum客户端安装Go-ethereum客户端通常被称为Geth,它是个命令行界面,执行在Go上实现的完整以太坊节点。Geth得益于Go语言的多平台特性,支持在多个平台上使用(比如Windows、Linux、Mac)。Geth是以太坊…

vs2015 支持Android arm neon Introducing Visual Studio’s Emulator for Android

visual studio 2015支持Android开发了。 Microsoft released Visual Studio 2015 Preview this week and with it you now have options for Android development. When choosing one of those Android development options, Visual Studio will also install the brand new Vi…

FFmpeg示例程序合集-批量编译脚本

此前做了一系列有关FFmpeg的示例程序,组成了《 最简单的FFmpeg示例程序合集》,其中包含了如下项目:simplest ffmpeg player: 最简单的基于FFmpeg的视频播放器simplest ffmpeg audio player: 最简单的基于FFmpeg的音频…

基于Ubuntu环境使用docker搭建对于中文识别的chineseocr_lite项目

光学字符识别(OCR) 光学字符识别(OCR)目前已经有了很广泛的应用,很多开源项目都会嵌入OCR 来扩展原有的能力,例如身份证识别、出入停车场的车牌识别、拍照翻译等等本文介绍的开源的中文 OCR 项目&#xff…

Ubuntu环境使用conda安装轻量级中文ocr开源项目chineseocr_lite,最简单的方式

问题 接使用docker的方式来创建项目所报的错误选中文件之后,界面不停的绕圈,显示不了对于图片的识别结果,并且监控界面上出现错误提示如下ImportError: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory&a…

基于Ubuntu使用docker的方式来搭建基于Yolo3+crnn的Chineseocr识别

Docker Docker简单易用,具体的安装和配置可以看我的或者其他人的博客 安装完之后,输入以下命令安装chineseocr并且开启服务 docker pull zergmk2/chineseocr docker run -d -p 8080:8080 zergmk2/chineseocr 在浏览器输入http://127.0.0.1:8080/ocr网…

c/c++ 内存使用指南 和实践指导

如果你完全理解如下内容, 请联系我:szu030606163.com, 讨论更深层次合作 。 1. 大内高手—内存模型 单线程模型 多线程模型 2. 大内高手—栈/堆 backtrace的实现 alloca的实现 可变参数的实现。 malloc/free系列函数简介 new…

mininet 应用实践

教学目的与学时建议 能够运用 mininet 可视化工具创建计算机网络拓扑结构能够运用 mininet 交互界面创建拓扑结构能够运用 python 脚本构建计算机网络拓扑结构建议:2 学时 实验环境 下载并安装虚拟机 VMware workstation;下载虚拟机镜像( S…

实现基于darknet框架实现CTPN版本自然场景文字检测 与CNN+CTCOCR文字识别的ChineseOCR搭建

Github地址 Github源码地址 支持系统:mac/ubuntu python3.6 实现功能 文字检测; 文字识别; 支持GPU/CPU,CPU优化(opencv dnn) docker镜像服务(CPU优化版本) 下载镜像 链接:https://pan.baidu…

在服务器上搭建基于yolo3 与crnn 实现中文自然场景文字检测及识别,GPU版本

Github地址 参考地址作者大人,十分热心,对于我的问题,提供了大量的帮助,使我少走了很多的弯路,在此表示由衷的感谢 注意事项 使用nvidia-smi命令查看cuda的版本,必须是10.1或者10.0,10.2是万万…

算法入门篇 一 时间复杂度

时间复杂度 要求:只要高阶项,不要低阶项常数操作:操作花费的时间和数据量无关,比如数组寻址,直接利用偏移量找到对应元素的位置;非常数操作:比如list(链表);查找元素需要遍历链表&a…

算法入门篇二 认识O(NlogN)的排序

递归 例子引出 使用递归的方法求出数组中的最大值(利用的是栈)求中点的方法改进 mid (left right) / 2 //但是如果left和right的数很大,相加会造成内容溢出 改进为 mid left (right - left) / 2 //(right - left)得到整个的长度&…

算法入门篇三 详解桶排序和整理排序知识 堆的相关操作 补充 不完整

归并排序不使用递归 使用一个变量,使其按照1、2、4、8递增,控制左右两边1个元素、2个元素、4个元素等元素的合并 完全二叉树 完全二叉树 要不全是满的,要不叶子节点出现在最后一层,只要出现了叶子节点,后面的都是叶子…