【Android RTMP】RTMP 直播推流 ( 阿里雲服務器購買 | 遠程服務器控制 | 搭建 RTMP 服務器 | 服務器配置 | 推流軟件配置 | 直播軟件配置 | 推流直播效果展示 )





安卓直播推流專欄博客總結



Android RTMP 直播推流技術專欄 :


0 . 資源和源碼地址 :


1. 搭建 RTMP 服務器 : 下面的博客中講解了如何在 VMWare 虛擬機中搭建 RTMP 直播推流服務器 ;

2. 準備視頻編碼的 x264 編碼器開源庫 , 和 RTMP 數據包封裝開源庫 :

3. 講解 RTMP 數據包封裝格式 :

4. 圖像數據採集 : 從 Camera 攝像頭中採集 NV21 格式的圖像數據 , 並預覽該數據 ;

5. NV21 格式的圖像數據編碼成 H.264 格式的視頻數據 :

6. 將 H.264 格式的視頻數據封裝到 RTMP 數據包中 :

7. 階段總結 : 阿里雲服務器中搭建 RTMP 服務器 , 並使用電腦軟件推流和觀看直播內容 ;

8. 處理 Camera 圖像傳感器導致的 NV21 格式圖像旋轉問題 :

9. 下面這篇博客比較重要 , 裏面有一個快速搭建 RTMP 服務器的腳本 , 強烈建議使用 ;

10. 編碼 AAC 音頻數據的開源庫 FAAC 交叉編譯與 Android Studio 環境搭建 :

11. 解析 AAC 音頻格式 :

12 . 將麥克風採集的 PCM 音頻採樣編碼成 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

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

在這裏插入圖片描述

將 sources.list 上傳到 rtmp 目錄下 , 並複製到 /etc/apt/ 目錄下 ;

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

3 . 更新源 :

sudo apt-get update


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


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


4 . 執行 configure 生成 Makefile 文件


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


5 . 編譯安裝


$ make install


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;
        }
    }
}

備份原來的腳本 : 在 /root/rtmp 目錄下執行該命令 ;

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

複製上傳到腳本到 nginx-1.15.3/bin/conf/ 目錄下 : 在 /root/rtmp 目錄下執行該命令 ;

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


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


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 . 服務器狀態查看 : 可以看到一個設備正在推流 , 一個設備正在觀看直播 ;

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章