anyrtcIO-Community / anyRTC-RTMP-OpenSource

RTMP 推流器,RTMP(HLS)秒开播放器,直播点播,跨平台(Win,IOS,Android)开源代码
https://www.anyrtc.io
GNU General Public License v3.0
4.68k stars 1.6k forks source link

能问下大家 在哪里设置的硬件编码吗 #123

Closed chenzhu005774 closed 2 years ago

chenzhu005774 commented 4 years ago

能问下大家 在哪里设置的硬件编码吗,我只看到了软件编码 encoder_ = webrtc::H264Encoder::Create();

chenzhu005774 commented 4 years ago

已经解决了,不过只适配了Android端的所以就不上传代码了

Lyon1994 commented 3 years ago

@chenzhu005774 你好,具体在那里设置可否方便提示一下呢,我这个也是android端的

Lyon1994 commented 3 years ago

已找到答案。决定是否使用硬件编码的代码:MediaCodecVideoEncoder.java

    public static boolean isH264HwSupported() {
        return !hwEncoderDisabledTypes.contains(H264_MIME_TYPE) &&
                (findHwEncoder(H264_MIME_TYPE, h264HwList, supportedColorList) != null);
    }

例如:增加海思平台的硬件编码支持

MediaCodecVideoEncoder.java


    // List of supported HW H.264 encoders.
    private static final MediaCodecProperties qcomH264HwProperties = new MediaCodecProperties(
            "OMX.qcom.", Build.VERSION_CODES.KITKAT, false /* bitrateAdjustmentRequired */);
    private static final MediaCodecProperties exynosH264HwProperties = new MediaCodecProperties(
            "OMX.Exynos.", Build.VERSION_CODES.LOLLIPOP, true /* bitrateAdjustmentRequired */);
    private static final MediaCodecProperties rkH264HwProperties = new MediaCodecProperties(
            "OMX.rk.", Build.VERSION_CODES.KITKAT, false /* bitrateAdjustmentRequired */);
    /**
     * 增加海思平台的硬件编解码支持
     */
    private static final MediaCodecProperties hisiH264HwProperties = new MediaCodecProperties(
            "OMX.hisi.", Build.VERSION_CODES.KITKAT, false /* bitrateAdjustmentRequired */);
    private static final MediaCodecProperties[] h264HwList = new MediaCodecProperties[]{
            qcomH264HwProperties, exynosH264HwProperties, rkH264HwProperties,hisiH264HwProperties
    };

同理,增加硬件解码方案则修改MediaCodecVideoDecoder.java image