Mate20 pro实现H265 (HEVC)实时硬件编码
谁能告诉我手机上用H265实时编码有什么鸟用?
一、先看看手机支持哪些codec
ALL_CODECS
REGULAR_CODECS
mine-type
选择mime-type为video/hevc,得到 <OMX.hisi.video.encoder.hevc>,这是华为海思芯片支持的h265硬编码,赞一个!
public static MediaCodecInfo selectCodec(String mimeType) {
int numCodecs = MediaCodecList.getCodecCount();
for (int i = 0; i < numCodecs; i++) {
MediaCodecInfo codecInfo = MediaCodecList.getCodecInfoAt(i); if (!codecInfo.isEncoder()) {
continue;
} String[] types = codecInfo.getSupportedTypes();
for (int j = 0; j < types.length; j++) {
if (types[j].equalsIgnoreCase(mimeType)) {
return codecInfo;
}
}
} return null;
}
二、通过硬编码器进行编码
1. 先学习一下H265的帧,
NAL_UNIT_TYPE,其中SPS & PPS & SEI & IDR 的时间戳相同,参考H264的NAL单元详解
frame | 7 | 8 | 6 | 26 | 1 |
name | SPS | PPS | SEI | IDR | data |
description |
2. 配置编码器
String option = "bitrate=" + encodeBitrate;
int pos = option.indexOf("bitrate=");
if (pos != -1) {
mEncodeBitrate = Integer.valueOf(
(String) option.subSequence(pos + "bitrate=".length(), option.length()));
Log.i(TAG, "setEncoderOption, mEncodeBitrate : " + mEncodeBitrate);
} MediaFormat mediaformat = null; mediaformat = MediaFormat.createVideoFormat(H265_MIME, mWidth, mHeight); mediaformat.setInteger(MediaFormat.KEY_BIT_RATE, this.mEncodeBitrate);
mediaformat.setInteger(MediaFormat.KEY_FRAME_RATE, encodeFrameRate);
mediaformat.setInteger(MediaFormat.KEY_COLOR_FORMAT, encodeFormat);
mediaformat.setInteger(MediaFormat.KEY_I_FRAME_INTERVAL, iFrameInterval); mEncodeCodec.configure(mediaformat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
Mate20 pro实现H265 (HEVC)实时硬件编码的更多相关文章
- HEVC学习之一编码框架
接触H265时间不是很长,看了一些东西,但是一直没有时间静下心来整理.H265的学习主要是参考万帅.杨付正的<新一代高效视频编码 H265/HEVC 原理.标准与实现>移书,这本书对H26 ...
- 集显也能硬件编码:Intel SDK && 各种音视频编解码学习详解
http://blog.sina.com.cn/s/blog_4155bb1d0100soq9.html INTEL MEDIA SDK是INTEL推出的基于其内建显示核心的编解码技术,我们在播放高清 ...
- HEVC 实时编码720P不是梦!
最近很少光顾我的博客, 因为一直很忙! 目前我的HEVC在i5机子上720P编码速度单核达到2~3帧每秒! 多核的话离线实时编码已经不是问题! 现在问题是在线实时编码还差那么一点! 在容忍一定低延迟下 ...
- ffmpeg 压缩H265 Windows 硬件编码
硬件NVIDIA:ffmpeg.exe -i input.avi -c:v hevc_nvenc -preset:v fast output.mp4 软件 :ffmpeg.exe - ...
- 采集音频和摄像头视频并实时H264编码及AAC编码[转]
0. 前言 我在前两篇文章中写了DirectShow捕获音视频然后生成avi,再进行264编码的方法.那种方法有一些局限性,不适合实时性质的应用,如:视频会议.视频聊天.视频监控等.本文所使用的技术, ...
- 采集音频和摄像头视频并实时H264编码及AAC编码
转自:http://www.cnblogs.com/haibindev/archive/2011/11/10/2244442.html 0. 前言 我在前两篇文章中写了DirectShow捕获音视频然 ...
- Gulp-livereload:实时刷新编码
实现功能 监听指定目录下的所有文件,实时动态刷新页面 安装(Install) 功能的实现是借助 gulp-connect 插件完成的;所以,首先通过下面命令完成插件安装: npm install -- ...
- React / Ant Design Pro 实现Canvas画布实时自适应
如何实现canvas根据父容器进行自适应? Ant Design的组件都提供了强大的自适应能力,为了对齐父组件,镶嵌在Ant Design组件里的canvas也需要能根据父级容器进行自适应的能力,页面 ...
- ios硬件编码
video-videoToolbox: http://www.cnblogs.com/sunminmin/p/4976418.html audio-AudioToolbox: http://blog. ...
随机推荐
- JAVA 创建文件和文件夹,删除文件和文件夹的实用工具
package com.file; import java.io.File; import java.io.IOException; //创建新文件和目录 public class CCRDFile ...
- idea使用eclipse风格
说明,只是代码编辑区采用eclipse风格,其他用的是idea的IntelliJ(白色风格) 1.下载文件 2.配置
- 统计_statistics_不同的人_大样本_分析_统计方法_useful ?
统计_statistics_不同的人_大样本_分析_
- 1)基本的MFC程序创建过程
1)基本的MFC创建过程: 2) 选择MFC应用程序: 3)然后选择特定的选项 直接完成就行了: 4)下面就是建成的样子: 5)然后是 运行结果: 6)有一个问题 那个 菜单栏是属于 F ...
- 吴裕雄--天生自然MySQL学习笔记:MySQL 管理
启动及关闭 MySQL 服务器 Windows 系统下 在 Windows 系统下,打开命令窗口(cmd),进入 MySQL 安装目录的 bin 目录. 启动: cd c:/mysql/bin mys ...
- python中的倒序遍历
1.在列表本身倒序 a = [1, 3, 7, 5, 2, 6] a.reverse() # 在列表本身进行倒序,不返回新的值 print(a) # 输出a: # [6, 2, 5, 7, 3, 1] ...
- endnote插入|管理文件|成组
信息检索 Endnote Filter(导入)---library(管理)---style(导出) 本地+网络数据库 点击research 在WOS上: 导入改文献: CNKI 导入PDF时选择PDF ...
- 【转载】解决Cannot download "https://github.com/sass/node-sass/releases/download...问题
因很早做了一个小demo,并且在其他成熟的电脑上(node配置好的)下载依赖包没什么问题,最近就在新的电脑上配置好所有东西后,去下载这个demo的依赖包,就出现了node-sass无法正常解析的问题, ...
- 886A. ACM ICPC#均值分配问题(暴力)
题目出处:http://codeforces.com/problemset/problem/886/A 题目大意:已知六个人得分,问是否能分成两个三人队使得每个队伍得分加和相等 #include< ...
- python,pandas常用函数
一.rename,更改df的列名和行索引 df=pd.DataFrame(np.arange(,).reshape(,)) print(df) print(type(df)) 结果为: <cla ...