Android直播環境搭建

itfitness發表於2019-04-19

目錄

目錄

環境準備

●Centos系統安裝:請檢視我的另一篇部落格Java後端之路(六)安裝Linux系統 ●git安裝(系統如果沒有的話):www.cnblogs.com/imyalost/p/…,git配置完後記得重啟系統才能生效,或者執行source /etc/profile命令也可以。 ●SRS流媒體伺服器安裝(官方教程):github.com/ossrs/srs/w… 安裝完之後還需要將官方的安裝說明中的srs.conf裡涉及到的埠進行開放。 ●Linux埠開放:jingyan.baidu.com/article/0eb… ●OBS Studio推流軟體下載:www.onlinedown.net/soft/637537… ●VLC拉流軟體下載:www.onlinedown.net/soft/16216.…

直播測試

●OBS Studio配置推流: 在來源視窗右鍵->新增->顯示器捕獲

zhibo.png
然後在控制元件視窗點選設定進行配置留的推送地址:
Android直播環境搭建
配置推流地址,推流的協議為rtmp,後面則是伺服器ip+埠號+隨意名稱(我是live),然後是下面的流名稱這裡我填的test。
Android直播環境搭建
設定完之後就可以開始推流了
Android直播環境搭建
●VLC拉流播放: 開啟VLC選擇工具欄的媒體->流
Android直播環境搭建
選擇網路選項卡,然後我們輸入與推流一樣的地址,然後點選播放:
Android直播環境搭建
拉流成功的話會顯示你螢幕的影象。

Android進行推流

這裡我使用的是一個非常好用的Android推流開源庫:github.com/begeekmyfri… 使用方式很簡單首先匯入它的library然後在程式碼中簡單幾行即可實現: 佈局檔案程式碼:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.itfitness.zhiboapp.MainActivity">

    <net.ossrs.yasea.SrsCameraView
        android:id="@+id/glsurfaceview_camera"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</RelativeLayout>
複製程式碼

Activity程式碼:

//另外這個Activity還需要實現這些介面:SrsEncodeHandler.SrsEncodeListener, RtmpHandler.RtmpListener, SrsRecordHandler.SrsRecordListener
SrsCameraView cameraView = (SrsCameraView) findViewById(R.id.glsurfaceview_camera);
        mPublisher = new SrsPublisher(cameraView);
        //編碼狀態回撥
        mPublisher.setEncodeHandler(new SrsEncodeHandler(this));
        mPublisher.setRecordHandler(new SrsRecordHandler(this));
        //rtmp推流狀態回撥
        mPublisher.setRtmpHandler(new RtmpHandler(this));
        //預覽解析度
        mPublisher.setPreviewResolution(1280, 720);
        //推流解析度
        mPublisher.setOutputResolution(720, 1280);
        //傳輸率
        mPublisher.setVideoHDMode();
        //開啟美顏(其他濾鏡效果在MagicFilterType中檢視)
        mPublisher.switchCameraFilter(MagicFilterType.BEAUTY);
        //開啟攝像頭,開始預覽(未推流)
        mPublisher.startCamera();
        //mPublisher.switchToSoftEncoder();//選擇軟編碼
        mPublisher.switchToHardEncoder();//選擇硬編碼
        //開始推流 rtmpUrl(ip換成伺服器的部署ip)
        mPublisher.startPublish("rtmp://192.168.0.102/live/test");
複製程式碼

接下來使用VLC進行拉流播放:

Android直播環境搭建
如果覺得VLC比較卡的話可以使用一個線上的拉流播放工具:www.cutv.com/demo/live_t…

相關文章