跨平台 H264 H265/HEVC 编解码 硬件加速
这里写自定义目录标题
- 1. 前言
- 2. 课题:如何在浏览器中支持hevc?
- 2.1. Chromium
- 2.2. 使用libde265.js实现hevc解码
- 3. h265解码
- 3.1. ffmpeg解码
- 3.2. MP4Box解码
- 3.3. 使用libde265实现hevc解码
- 3.4. openHEVC实现hevc解码
- 5. 附录
1. 前言
H.265是ITU-T VCEG继H.264之后所制定的新的视频编码标准。H.265标准围绕着现有的视频编码标准H.264,保留原来的某些技术,同时对一些相关的技术加以改进。新技术使用先进的技术用以改善码流、编码质量、延时和算法复杂度之间的关系,达到最优化设置。具体的研究内容包括:提高压缩效率、提高鲁棒性和错误恢复能力、减少实时的时延、减少信道获取时间和随机接入时延、降低复杂度等。H.264由于算法优化,可以低于1Mbps的速度实现标清(分辨率在1280P720以下)数字图像传送;H.265则可以实现利用1~2Mbps的传输速度传送720P(分辨率1280720)普通高清音视频传送。
H265在编解码的过程中,将占用更多的系统资源。
2. 课题:如何在浏览器中支持hevc?
2.1. Chromium
关于chromium支持hevc解码主要分成两部分:
Chromium GitHub网址:https://github.com/chromium/chromium
2.2. 使用libde265.js实现hevc解码
GitHub网址:https://github.com/strukturag/libde265.js
libde265在谷歌浏览器有视频插件,可以播放h265视频
3. h265解码
3.1. ffmpeg解码
NVDEC/CUVID
NVDEC 为 H.264、HEVC、MJPEG、MPEG-1/2/4、VP8/VP9、VC-1 提供解码器。编解码器支持硬件(见GPU兼容性表)。
请注意,FFmpeg 提供 NVDEC 和 CUVID hwaccels。它们的不同之处在于帧在内存中的解码和转发方式。
全套编解码器仅在 Pascal 硬件上可用,它增加了 VP9 和 10 位支持。关于 NVENC 缺少 ffnvcodec 的说明也适用于 NVDEC。
使用 CUDA 的解码示例:ffmpeg -hwaccel cuda -i input output
使用 CUVID 的解码示例:ffmpeg -c:v h264_cuvid -i input output
使用 NVDEC 和 NVENC 进行全硬件转码:
ffmpeg -hwaccel cuda -hwaccel_output_format cuda -i input -c:v h264_nvenc -preset slow output
如果 ffmpeg 是在支持 libnpp 的情况下编译的,则它可用于将基于 GPU 的缩放器插入链中:
ffmpeg -hwaccel_device 0 -hwaccel cuda -i input -vf scale_npp=-1:720 -c:v h264_nvenc -preset slow output.mkv
该-hwaccel_device选项可用于指定 ffmpeg 中硬解码要使用的 GPU。
3.2. MP4Box解码
通过MP4Box可以将hevc转为heic,以供显示
3.3. 使用libde265实现hevc解码
GitHub网址:https://github.com/strukturag/libde265
实现hevc-》yuv
3.4. openHEVC实现hevc解码
GitHub网址:https://github.com/OpenHEVC/openHEVC
ffmpeg内置有HEVC解码器,其中代码基本是来自openHEVC项目
但是ffmpeg的HEVC解码器并不保证包含openHEVC项目的最新代码
5. 附录
参考链接:
https://zhuanlan.zhihu.com/p/25209901
http://shevaxu.github.io/post/html5video/
https://zhuanlan.zhihu.com/p/25209901
ffmpeg可以使用硬解码参考链接:
https://blog.csdn.net/u012944685/article/details/124503968
https://blog.csdn.net/y601500359/article/details/118357785
https://zhuanlan.zhihu.com/p/526112496
ffmpeg软解码参考链接:
http://blog.csdn.net/thomashtq/article/details/44940457
http://www.cnblogs.com/mlj318/p/3781591.html
http://m.blog.chinaunix.net/uid-9525959-id-5750362.html
http://stackoverflow.com/questions/19840960/comparing-psnr-of-two-videos-possibly-with-ffmpeg
https://trac.ffmpeg.org/wiki/FilteringGuide
http://www.cutey.us/2015/09/tools-to-calculate-psnr
跨平台 H264 H265/HEVC 编解码 硬件加速相关推荐
- H265/HEVC编解码系列(1):图像分割(Slice、Tile、CTU)
H265/HEVC编解码系列(1):图像分割(Slice.Tile.CTU) 一.Slice 和 Slice Segment 二.Tile单元 三.CTU.CU 参考 一.Slice 和 Slice ...
- 视频编解码硬件方案漫谈
视频编解码硬件方案最早是在嵌入式领域中广泛存在,如采用DSP,FPGA,ASIC等,用来弥补嵌入式系统CPU等资源能力不足问题,但随着视频分辨率越来越高(从CIF经历720P,1080P发展到4K,8 ...
- 【FFmpeg】支持flv+hevc编解码转码
背景 当前FFmpeg支持flv+h264的编解码和转码,但是并不支持flv+h265 如果需要在FFmpeg中支持flv+h265,只需要简单的修改代码 源码修改 flv.h diff --git ...
- 一种新的8B/10B编解码硬件设计方法
作者:贺传峰 戴居丰 毛陆虹 时间:2006-12-03 来源:电子设计信息网-www.edires.net 摘要:在深入研究了8B/10B 编码规则及其内在相关性的基础上,提出了一 ...
- HEVC 编解码资源
资料 overview 等 csvt系列详见HHI主页,适合:入门 Encoder Description 适合入门 Recommendation H.265 pdf 2016-12-22 标准文档, ...
- HEVC 编解码详解
本文转载自http://blog.csdn.net/nonmarking/article/details/47356791 本系列文章分为三个部分,首先对HEVC标准做一个介绍,然后回顾一下H.264 ...
- H264 无损压缩及编解码流程
一个视频经过有损压缩之后还不够小还要经过无损压缩. 无损压缩之后数据量继续变小. 第一步.DCT变换 有关DCT 变换: 傅里叶里面说任何信号都可以有多个不同振幅和频率的正弦波或者余弦波信号叠加而成, ...
- H264/AVC 视频编解码一些基本知识
本篇对学习H264常见的知识点做个备注. 1.H264编码码率设置 对视频进行编码时,码率和视频质量是一对矛盾的话题.一般码率越大,视频丢弃冗余信息就越少,视频质量就越高.但是码率达到一定程度,视频质 ...
- H265/HEVC名词解释-- CTU,CTB,CU,CB,TU,PU,TB,PB,LCU,Slice,Tile,Chroma,Luma,I帧,B帧,P帧
H265/HEVC名词解释 学H265的时候,一堆名词 CTU,CTB,CU,CB,TU,PU,TB,PB,LCU,Slice,Tile,Chroma,Luma,I帧,B帧,P帧,绕的头疼,写篇博客汇 ...
- 手淘H265编解码算法与工程优化
本文来自淘宝(中国)软件有限公司 高级算法专家 李晓波在LiveVideoStackCon 2018讲师热身分享,并由LiveVideoStack整理而成.在分享中李晓波详细解析了手淘在H.265高效 ...
最新文章
- Centos6.5更换163源 epel源
- Call apply 用法
- OpenGL Vertex Array
- 区块链BaaS云服务(40) 泰岳联盟链
- c语言词法分析程序,词法分析器(c语言实现)
- 前端学习(2477):封装数据接口
- linux文件存储结构,Linux文件存储方式以及软硬链接
- 理论物理极础11:电力和磁力
- [译]Quartz.NET 框架 教程(中文版)2.2.x 之第五课 SimpleTrigger
- 凤凰项目-----读书笔记
- 广告投放管理平台 oython源码_【直播】全新腾讯广告投放管理平台如何帮助广告主乘风破浪?...
- PowerShadow Master(影子系统)
- 泛微e-Bridge未授权文件读取漏洞复现
- 升级Spring Boot 2.x后RelaxedPropertyResolver不可用的解决方案
- The APR based Apache Tomcat Native library which allows optimal performance in production environme
- firebox 浏览器查看cookie的方法
- 【Spring教程】2.spring入门
- 使用飞信机器人发短信需要开放的端口
- C语言——日期转换为天数
- 全新浪子云支付开源版源码