天翼云代理,天翼云代理商,北京代理商
天翼云2.5折专线:18510009100/18510009200(全国市话)

【Android RTMP】RTMP 直播推流阶段总结 ( 服务器端搭建 | Android 手机端编码推流 | 电脑端观看直播 | 服务器状态查看 )(一)

2022-01-26 03:27:30

作者 | 扬阜

Android RTMP 直播推流技术专栏 :



0 . 资源和源码地址 :


资源下载地址 : 资源下载地址 , 服务器建立 , x264 , faac , RTMPDump , 源码及穿插编译库 , 本专栏 Android 直播推流源码 ;

GitHub 源码地址 : han1202012 / RTMP_Pusher


1. 建立 RTMP 服务器 : 下面的博客中讲解了如安在 VMWare 虚拟机中建立 RTMP 直播推流服务器 ;


【Android RTMP】RTMP 直播推流服务器建立 ( Ubuntu 18.04.4 虚拟机 )

2. 预备视频编码的 x264 编码器开源库 , 和 RTMP 数据包封装开源库 :


【Android RTMP】RTMPDumb 源码导入 Android Studio ( 穿插编译 | 装备 CMakeList.txt 构建脚本 )


【Android RTMP】Android Studio 集成 x264 开源库 ( Ubuntu 穿插编译 | Android Studio 导入函数库 )


3. 讲解 RTMP 数据包封装格局 :


【Android RTMP】RTMP 数据格局 ( FLV 视频格局剖析 | 文件头 Header 剖析 | 标签 Tag 剖析 | 视频标签 Tag 数据剖析 )


【Android RTMP】RTMP 数据格局 ( FLV 视频格局剖析 | AVC 序列头格局解析 )


4. 图画数据收集 : 从 Camera 摄像头中收集 NV21 格局的图画数据 , 并预览该数据 ;


【Android RTMP】Android Camera 视频数据收集预览 ( 视频收集相关概念 | 摄像头预览参数设置 | 摄像头预览数据回调接口 )


【Android RTMP】Android Camera 视频数据收集预览 ( NV21 图画格局 | I420 图画格局 | NV21 与 I420 格局对比 | NV21 转 I420 算法 )


【Android RTMP】Android Camera 视频数据收集预览 ( 图画传感器方向设置 | Camera 运用流程 | 动态权限请求 )


5. NV21 格局的图画数据编码成 H.264 格局的视频数据 :


【Android RTMP】x264 编码器初始化及设置 ( 获取 x264 编码参数 | 编码标准 | 码率 | 帧率 | B帧个数 | 关键帧距离 | 关键帧解码数据 SPS PPS )


【Android RTMP】x264 图画数据编码 ( Camera 图画数据收集 | NV21 图画数据传到 Native 处理 | JNI 传输字节数组 | 部分引用变量处理 | 线程互斥 )


【Android RTMP】x264 图画数据编码 ( NV21 格局中的 YUV 数据摆放 | Y 灰度数据复制 | U 颜色值数据复制 | V 饱和度数据复制 | 图画编码操作 )


6. 将 H.264 格局的视频数据封装到 RTMP 数据包中 :


【Android RTMP】RTMPDump 封装 RTMPPacket 数据包 ( 封装 SPS / PPS 数据包 )


【Android RTMP】RTMPDump 封装 RTMPPacket 数据包 ( 关键帧数据格局 | 非关键帧数据格局 | x264 编码后的数据处理 | 封装 H.264 视频数据帧 )


【Android RTMP】RTMPDump 推流过程 ( 独立线程推流 | 创立推流器 | 初始化操作 | 设置推流地址 | 启用写出 | 衔接 RTMP 服务器 | 发送 RTMP 数据包 )


7. 阶段总结 : 阿里云服务器中建立 RTMP 服务器 , 并运用电脑软件推流和观看直播内容 ;


【Android RTMP】RTMP 直播推流 ( 阿里云服务器购买 | 长途服务器控制 | 建立 RTMP 服务器 | 服务器装备 | 推流软件装备 | 直播软件装备 | 推流直播作用展现 )


【Android RTMP】RTMP 直播推流阶段总结 ( 服务器端建立 | Android 手机端编码推流 | 电脑端观看直播 | 服务器状况检查 )


8. 处理 Camera 图画传感器导致的 NV21 格局图画旋转问题 :


【Android RTMP】NV21 图画旋转处理 ( 问题描述 | 图画顺时针旋转 90 度计划 | YUV 图画旋转细节 | 手机屏幕旋转方向 )


【Android RTMP】NV21 图画旋转处理 ( 图画旋转算法 | 后置摄像头顺时针旋转 90 度 | 前置摄像头顺时针旋转 90 度 )


9. 下面这篇博客比较重要 , 里边有一个快速建立 RTMP 服务器的脚本 , 强烈建议运用 ;


【Android RTMP】NV21 图画旋转处理 ( 快速建立 RTMP 服务器 Shell 脚本 | 创立 RTMP 服务器镜像 | 浏览器观看直播 | 前置 / 后置摄像头图画旋转作用展现 )

10. 编码 AAC 音频数据的开源库 FAAC 穿插编译与 Android Studio 环境建立 :


【Android RTMP】音频数据收集编码 ( 音频数据收集编码 | AAC 高档音频编码 | FAAC 编码器 | Ubuntu 穿插编译 FAAC 编码器 )


【Android RTMP】音频数据收集编码 ( FAAC 头文件与静态库复制到 AS | CMakeList.txt 装备 FAAC | AudioRecord 音频采样 PCM 格局 )


11. 解析 AAC 音频格局 :


【Android RTMP】音频数据收集编码 ( AAC 音频格局解析 | FLV 音频数据标签解析 | AAC 音频数据标签头 | 音频解码装备信息 )

12 . 将麦克风收集的 PCM 音频采样编码成 AAC 格局音频 , 并封装到 RTMP 包中 , 推流到客户端 :


【Android RTMP】音频数据收集编码 ( FAAC 音频编码参数设置 | FAAC 编码器创立 | 获取编码器参数 | 设置 AAC 编码标准 | 设置编码器输入输出参数 )


【Android RTMP】音频数据收集编码 ( FAAC 编码器编码 AAC 音频解码信息 | 封装 RTMP 音频数据头 | 设置 AAC 音频数据类型 | 封装 RTMP 数据包 )


【Android RTMP】音频数据收集编码 ( FAAC 编码器编码 AAC 音频采样数据 | 封装 RTMP 音频数据头 | 设置 AAC 音频数据类型 | 封装 RTMP 数据包 )






Android 直播推流流程 : 手机收集视频 / 音频数据 , 视频数据运用 H.264 编码 , 音频数据运用 AAC 编码 , 最终将音视频数据都打包到 RTMP 数据包中 , 运用 RTMP 协议上传到 RTMP 服务器中 ;



Android 端中主要完结手机端收集视频数据操作 , 并将视频数据传递给 JNI , 在 NDK 中运用 x264 将图画转为 H.264 格局的视频 , 最终将 H.264 格局的视频打包到 RTMP 数据包中 , 上传到 RTMP 服务器中 ;







一、 服务器建立


首先依照 【Android RTMP】RTMP 直播推流 ( 阿里云服务器购买 | 长途服务器控制 | 建立 RTMP 服务器 | 服务器装备 | 推流软件装备 | 直播软件装备 | 推流直播作用展现 ) 中的流程建立服务器端 , 然后才能开始推流操作 ;


也能够依照 【Android RTMP】RTMP 直播推流服务器建立 ( Ubuntu 18.04.4 虚拟机 ) 博客中的内容 , 在 VMWare 虚拟机中建立 RTMP 直播推流服务器 ;



加粗款式装备说明 :



① HTTP 端口号 : 在 http server 中装备的端口号是检查 RTMP 服务器状况网址的端口号 , 如 http://47.94.36.51:8080/stat 地址中 , 就需要注明其端口号是 8080 ;


listen 8080;


② HTTP 状况检查地址 : 在 conf/nginx.conf 装备文件中装备的该选项 , 就代表了运用 http://47.94.36.51:8080/stat 地址拜访即可检查当前直播推流 , 与观看直播的状况 ;



location /stat {  rtmp_stat all;  rtmp_stat_stylesheet stat.xsl;  }


③ RTMP 直播端口号 : 下面给 RTMP 服务装备 1935 端口号 , 是 RTMP 的默许端口号 , 因此这儿 rtmp://47.94.36.51/myapp/0 直播地址中没有端口号 ;


④ RTMP 直播使用 : 其中 myapp 就是直播的使用称号 , rtmp://47.94.36.51/myapp/0 地址中的 myapp 就是在 rtmp 中装备的 application 使用;


rtmp {  server {  listen 1935;  application myapp {  live on;  }  } }

12年经验 · 提供上云保障

服务热线:132-6161-6125(手机) 400-150-1900(全国市话)

站内导航: 天翼云服务器价格| 天翼云购买流程| 天翼云代理| 北京天翼云代理商| 杭州天翼云代理| 深圳天翼云代理商| 钉钉代理商| 阿里云代理| 公司官网

我公司收款账号| 天翼云备案系统

CopyRight © 2019 天翼云代理商. All Rights Reserved 京ICP备2024071855号-7 管理-北京优胜智连科技有限公司