关于MediaCode播放H265/hevc的总结

H.265 High Profile 可实现低于1.5Mbps的传输带宽下,实现1080p全高清视频传输。

H.265/HEVC的编码架构大致上和H.264/AVC的架构相似,主要也包含,帧内预测(intra prediction)、帧间预测(inter prediction)、转换 (transform)、量化(quantization)、去区块滤波器(deblocking filter)、熵编码(entropy coding)等模块,但在HEVC编码架构中,整体被分为了三个基本单位,分别是:编码单位(coding unit,CU)、预测单位(predict unit,PU) 和转换单位(transform unit,TU )。

比起H.264/AVC,H.265/HEVC提供了更多不同的工具来降低码率,以编码单位来说,H.264中每个宏块(macroblock/MB)大小都是固定的16x16像素,而H.265的编码单位可以选择从最小的8x8到最大的64x64

除了在编解码效率上的提升外,在对网络的适应性方面H.265也有显著提升,可很好运行在Internet等复杂网络条件下。

H.265是ITU-T VCEG 继H.264之后所制定的新的视频编码标准。H.265标准围绕着现有的视频编码标准H.264,保留原来的某些技术,同时对一些相关的技术加以改进。新技术使用先进的技术用以改善码流、编码质量、延时和算法复杂度之间的关系,达到最优化设置。具体的研究内容包括:提高压缩效率、提高鲁棒性和错误恢复能力、减少实时的时延、减少信道获取时间和随机接入时延、降低复杂度等。H264由于算法优化,可以低于1Mbps的速度实现标清数字图像传送;H265则可以实现利用1~2Mbps的传输速度传送720P(分辨率1280*720)普通高清音视频传送

说了这么多那么我们来看一下具体的程序代码怎么实现。

在Android端我们使用MediaCodec的异步实现流程即可实现播放。

具体步骤:1.获取自己所需要播放的数据

2.拷贝我的资源:地址:https://download.csdn.net/download/qq_29247839/11461698

3.实例化view

3.运用输出流

 ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        int readSize = 0;
        try {
            readSize = bytes.length;
            byteArrayOutputStream.write(bytes,0, readSize);
            byteArrayOutputStream.close();
            mSurfaceView.onReceived(byteArrayOutputStream.toByteArray());//调用方法
            SystemClock.sleep(50);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (byteArrayOutputStream != null) {
                try {
                    byteArrayOutputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }

 

你可能感兴趣的:(android,h265/HEVC,mediacode)