zoukankan      html  css  js  c++  java
  • Windows、Linux、ARM、Android、iOS全平台支持的RTMP推流组件EasyRTMPAndroid如何修改分辨率和码率

    Real Time Messaging Protocol(RTMP)即实时消息传输协议,是 Adobe 公司开发的一个基于 TCP 的应用层协议,目前国内的视频云服务都是以 RTMP 为主要推流协议。

    调用方法

    EasyRTMP_File:EasyRTMP做为RTMP推送端,将本地文件推送到RTMP流媒体服务器;

    EasyRTMP_RTSP:将RTSP/RTP数据获取到本地,再通过EasyRTMP推送到RTMP服务器;

    EasyRTMP-Android:Android安卓RTMP直播推流,采集安卓手机前/后摄像头、麦克风音视频推送直播;项目地址:https://github.com/EasyDSS/EasyRTMP-Android

    EasyRTMP-iOS:iOS苹果RTMP直播推流,采集苹果手机前/后摄像头、麦克风音视频推送直播。

    EasyRTMP-Android 修改分辨率和码率

    提出问题
    EasyRTMP-Android 如何修改分辨率和码率?

    解决问题
    1、在SettingActivity中可以手动修改码率的值:

    在推流页面列出当前机器的所有分辨率,可以手动修改。

    2、软编码修改码率的值:

    SWConsumer sw = new SWConsumer(context, mEasyPusher, SPUtil.getBitrateKbps(context));
    

    给x264设置最终码率的值:

    int bitrate = 72 * 1000 + bitrateKbps;
    x264.create(width, height, 20, bitrate/1000);
    

    3、硬编码修改码率的值:

    HWConsumer hw = new HWConsumer(context,
        mHevc ? MediaFormat.MIMETYPE_VIDEO_HEVC : MediaFormat.MIMETYPE_VIDEO_AVC,
        mEasyPusher,
        SPUtil.getBitrateKbps(context),
        info.mName,
        info.mColorFormat);
    

    为MediaFormat设置码率的值:

    mediaFormat.setInteger(MediaFormat.KEY_FRAME_RATE, frameRate);
  • 相关阅读:
    vsprintf解析
    带grub的软盘镜像制作
    SunnyOS准备4
    SunnyOS准备3
    SunnyOS准备1
    汇编第七日
    汇编第六日
    解决k8s集群中mount volume失败的问题
    更新k8s集群的证书
    为k8s集群配置自定义告警
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/11738177.html
Copyright © 2011-2022 走看看