首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

【Android RTMP】RTMP 直播推流 ( 阿里云服务器购买 | 远程服务器控制 | 搭建 RTMP 服务器 | 服务器配置 | 推流软件配置 | 直播软件配置 | 推流直播效果展示 )

  • 25-02-16 05:01
  • 3893
  • 5020
blog.csdn.net

文章目录

  • 安卓直播推流专栏博客总结
  • 一、 阿里云服务器购买
  • 二、 远程服务器控制软件
  • 三、 配置 Ubuntu 服务器
    • 1 . 更新 apt 源
    • 2 . 安装 pcre、OpenSSL、zlib 库
    • 3 . 解压 nginx-1.15.3.tar.gz、nginx-rtmp-module-1.2.1.tar.gz 源码
    • 4 . 执行 configure 生成 Makefile 文件
    • 5 . 编译安装
    • 6 . 配置 Nginx 服务器
    • 7 . 配置 Nginx 服务器文件权限
    • 8 . 查看 Nginx RTMP 服务器状态
  • 四、 推流软件下载与配置
  • 五、 直播软件下载与配置





安卓直播推流专栏博客总结



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 RTMP】RTMP 直播推流服务器搭建 ( Ubuntu 18.04.4 虚拟机 ) 具体演示了在虚拟机上搭建直播推流服务器 , 并且进行错误排查的过程 , 测试一下搭建流程是否能跑通 ;

本博客演示如何 在阿里云购买服务器 , 远程服务器控制 , 搭建 RTMP 直播推流服务器 , 并配置服务器 , 直播展示 , 全过程的记录 ;





一、 阿里云服务器购买



1 . 进入阿里云控制台的云服务器 ECS 界面 :

在这里插入图片描述

2 . 选择服务器类型 : 选个抢占式的实例 , 挑个便宜点的网络增强型的服务器 ;

在这里插入图片描述


3 . 带宽设置 : 设置按流量收费 , 100M 带宽 ;

在这里插入图片描述


4 . 设置今晚 11 点释放 :

在这里插入图片描述


5 . 实例查看 :

在这里插入图片描述


6 . 配置安全组 : 入方向配置 TCP 协议 8080 和 1935 端口 ;

在这里插入图片描述





二、 远程服务器控制软件



1 . 使用 WinSCP 工具连接服务器 , 并与服务器进行文件交互操作 ;

在这里插入图片描述


2 . 连接后界面 :

在这里插入图片描述

3 . 将上述两个源码上传到远程服务器的 /root/rtmp 目录下 :

在这里插入图片描述

在这里插入图片描述





三、 配置 Ubuntu 服务器




1 . 更新 apt 源


编译 Nginx 需要安装一些依赖库 , 必须更新 apt 源 , 才能安装 ;


1 . 备份源 :

mv /etc/apt/sources.list /etc/apt/sourses.list.backup
  • 1

2 . 添加源 : 本地编辑 sources.list , 内容如下 , 上传到服务器 /root/rtmp/ 目录下 ;

deb http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ bionic-backports main restricted universe multiverse
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述

将 sources.list 上传到 rtmp 目录下 , 并复制到 /etc/apt/ 目录下 ;

root@hsl:~/rtmp# cp sources.list /etc/apt/
  • 1

3 . 更新源 :

sudo apt-get update
  • 1


2 . 安装 pcre、OpenSSL、zlib 库


1 . 安装编译 Nginx 所需的 pcre , OpenSSL , zlib 库 ;

$ sudo apt-get install libpcre3 libpcre3-dev
$ sudo apt-get install openssl libssl-dev
$ sudo apt-get install zlib1g-dev
  • 1
  • 2
  • 3


3 . 解压 nginx-1.15.3.tar.gz、nginx-rtmp-module-1.2.1.tar.gz 源码


$ tar xvf nginx-1.15.3.tar.gz
$ tar xvf nginx-rtmp-module-1.2.1.tar.gz
  • 1
  • 2


4 . 执行 configure 生成 Makefile 文件


$ ./configure --prefix=./bin --add-module=../nginx-rtmp-module-1.2.1
  • 1


5 . 编译安装


$ make install
  • 1


6 . 配置 Nginx 服务器


配置 conf/nginx.conf 脚本 : 在本地配置 nginx.conf 脚本 , 然后上传到服务器 /root/rtmp/ 目录中 ;

user  root;
worker_processes  1;

error_log  logs/error.log debug;

events {
    worker_connections  1024;
}

rtmp {
    server {
        listen 1935;

        application myapp {
            live on;
        }
    }
}

http {
    server {
        listen 8080;

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

        location /stat.xsl {
            root /root/rtmp/nginx-rtmp-module-1.2.1/;
        }

        location /control {
            rtmp_control all;
        }

        location /rtmp-publisher {
            root /root/rtmp/nginx-rtmp-module-1.2.1/test;
        }

        location / {
            root /root/rtmp/nginx-rtmp-module-1.2.1/test/www;
        }
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45

备份原来的脚本 : 在 /root/rtmp 目录下执行该命令 ;

$ mv nginx-1.15.3/bin/conf/nginx.conf nginx-1.15.3/bin/conf/nginx.conf.backup
  • 1

复制上传到脚本到 nginx-1.15.3/bin/conf/ 目录下 : 在 /root/rtmp 目录下执行该命令 ;

$ cp nginx.conf nginx-1.15.3/bin/conf/
  • 1


7 . 配置 Nginx 服务器文件权限


启动时出现 403 错误 , 怀疑是文件权限不足 , 这里将 nginx-1.15.3 和 nginx-rtmp-module-1.2.1 赋予所有的权限 ;

root@octopus:~/rtmp# chmod -R 777 nginx-1.15.3
root@octopus:~/rtmp# chmod -R 777 nginx-rtmp-module-1.2.1
  • 1
  • 2


8 . 查看 Nginx RTMP 服务器状态


1 . 查看状态 : http://47.94.36.51:8080/stat

在这里插入图片描述


2 . 查看直播内容 : http://47.94.36.51:8080

在这里插入图片描述





四、 推流软件下载与配置



1 . 推流软件 : 使用 EV 录屏软件 作为推流软件 , 点击链接进入下载界面 ;

在这里插入图片描述


2 . 配置推流地址 : rtmp://47.94.36.51/myapp/ , 密码 0 ;

选择 在线直播 , 点击右上角的设置按钮 ;
在这里插入图片描述


弹出设置对话框 , 设置直播地址 rtmp://47.94.36.51/myapp/ , 密码设置为 0 ;

在这里插入图片描述


3 . 开始推流 : 点击左下角播放按钮 , 即可开始推流 ;
在这里插入图片描述


4 . 查看服务器端 RTMP 推流状态 : 111.192.247.192 地址正在向服务器推流 , 这个地址就是当前我的电脑地址 ;

在这里插入图片描述

在这里插入图片描述





五、 直播软件下载与配置



1 . 直播软件 : 使用 EVPlayer 观看直播 , 点击该链接下载软件 ;

在这里插入图片描述


2 . 直播配置 : 邮件点击界面 , 选择播放网络流 , 输入 直播地址 rtmp://47.94.36.51/myapp/ , 密码 0 ;

在这里插入图片描述


3 . 直播效果展示 : 居然不让截屏 , 贴张照片 ;

在这里插入图片描述


4 . 服务器状态查看 : 可以看到一个设备正在推流 , 一个设备正在观看直播 ;

在这里插入图片描述

注:本文转载自blog.csdn.net的韩曙亮的文章"https://blog.csdn.net/shulianghan/article/details/106634821"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top