谁能告诉我手机上用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)实时硬件编码的更多相关文章

  1. HEVC学习之一编码框架

    接触H265时间不是很长,看了一些东西,但是一直没有时间静下心来整理.H265的学习主要是参考万帅.杨付正的<新一代高效视频编码 H265/HEVC 原理.标准与实现>移书,这本书对H26 ...

  2. 集显也能硬件编码:Intel SDK && 各种音视频编解码学习详解

    http://blog.sina.com.cn/s/blog_4155bb1d0100soq9.html INTEL MEDIA SDK是INTEL推出的基于其内建显示核心的编解码技术,我们在播放高清 ...

  3. HEVC 实时编码720P不是梦!

    最近很少光顾我的博客, 因为一直很忙! 目前我的HEVC在i5机子上720P编码速度单核达到2~3帧每秒! 多核的话离线实时编码已经不是问题! 现在问题是在线实时编码还差那么一点! 在容忍一定低延迟下 ...

  4. ffmpeg 压缩H265 Windows 硬件编码

    硬件NVIDIA:ffmpeg.exe -i input.avi -c:v hevc_nvenc -preset:v fast output.mp4 软件          :ffmpeg.exe - ...

  5. 采集音频和摄像头视频并实时H264编码及AAC编码[转]

    0. 前言 我在前两篇文章中写了DirectShow捕获音视频然后生成avi,再进行264编码的方法.那种方法有一些局限性,不适合实时性质的应用,如:视频会议.视频聊天.视频监控等.本文所使用的技术, ...

  6. 采集音频和摄像头视频并实时H264编码及AAC编码

    转自:http://www.cnblogs.com/haibindev/archive/2011/11/10/2244442.html 0. 前言 我在前两篇文章中写了DirectShow捕获音视频然 ...

  7. Gulp-livereload:实时刷新编码

    实现功能 监听指定目录下的所有文件,实时动态刷新页面 安装(Install) 功能的实现是借助 gulp-connect 插件完成的;所以,首先通过下面命令完成插件安装: npm install -- ...

  8. React / Ant Design Pro 实现Canvas画布实时自适应

    如何实现canvas根据父容器进行自适应? Ant Design的组件都提供了强大的自适应能力,为了对齐父组件,镶嵌在Ant Design组件里的canvas也需要能根据父级容器进行自适应的能力,页面 ...

  9. ios硬件编码

    video-videoToolbox: http://www.cnblogs.com/sunminmin/p/4976418.html audio-AudioToolbox: http://blog. ...

随机推荐

  1. hibernate结果集多种映射方案

    String sql = "select marker_no AS markerNo,name from lv_marker"; String sqlMo = "sele ...

  2. rabbitmq设置队列消息存活时间

    public static final int ALIVETIME = 600000; public static final String QUEUE = "hnyz_gs_queue&q ...

  3. 洛谷P1002 过河卒(动态规划)

    题目描述 棋盘上 AA 点有一个过河卒,需要走到目标 BB 点.卒行走的规则:可以向下.或者向右.同时在棋盘上 CC 点有一个对方的马,该马所在的点和所有跳跃一步可达的点称为对方马的控制点.因此称之为 ...

  4. Cisco连接失败问题处理

    连接公司的VPN时软件一直安装不上,试了几种方法,在此总结. 原文链接:http://www.itsystemadmin.com/error-27850-unable-to-manage-networ ...

  5. axios 等待同步请求用法及多请求并发

    axios等待同步请求 直接上代码 首先在函数中返回一个Promise对象,在调用函数使用同步函数,调用目标函数使用await等待即可 参考http://www.cnblogs.com/cckui/p ...

  6. h5-localStorage储存的使用

    <!-- localStorage的使用: 1.存储的内容大概20mb 2.不同浏览器不能共享数据,但是在同意浏览器的不同窗口中可以共享数据 3.永久生效,他的数据是储存在硬盘上,并不会随着页面 ...

  7. MySQL-慢日志slow log

    文件结构 1.目录结构 drwxrwxr-x mysql mysql Mar bin drwxrwxr-x mysql mysql Dec : binlogdir -rw-r--r-- mysql m ...

  8. 【MySQL参数】- query_cache_type

    MySQL为什么要关闭查询缓存 https://blog.csdn.net/liqfyiyi/article/details/50178591 Query cache的优化方法 https://blo ...

  9. PAT甲级——1061 Dating (20分)

    Sherlock Holmes received a note with some strange strings: Let's date! 3485djDkxh4hhGE 2984akDfkkkkg ...

  10. nfs 支持ipv6

    mount 一个ipv6 nfs 项目在docker里mount 一个nfs来读写,而现在需要支持ipv6,所以先写了各小demo,最后成功mount,这里记录一下 #include <sys/ ...