自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

輕松入門Android直播相關(guān)技術(shù) 從0搭建直播系統(tǒng)

移動(dòng)開發(fā) Android
從0開始搭建一個(gè)直播系統(tǒng),我立馬實(shí)踐了下,所以首先給大家分享下整個(gè)搭建的流程。本人的操作系統(tǒng)為mac,其他系統(tǒng)的同學(xué)可以根據(jù)提示,自行安裝軟件。

從0開始搭建一個(gè)直播系統(tǒng)

我立馬實(shí)踐了下,所以首先給大家分享下整個(gè)搭建的流程:

本人的操作系統(tǒng)為mac,其他系統(tǒng)的同學(xué)可以根據(jù)提示,自行安裝軟件。

一個(gè)簡(jiǎn)易的直播系統(tǒng),大致可以由三部分組成:

搭建一個(gè)rtmp媒體服務(wù)器

  • 推流端
  • 拉流端

現(xiàn)在目標(biāo)是快速搭建起來,所以當(dāng)然是借助開源項(xiàng)目和一些軟件:

  • rtmp媒體服務(wù)器:這里使用srs
  • 推流端:這里使用obs
  • 拉流端:這里使用播放器vlc

rtmp媒體服務(wù)器的搭建

這里使用srs,srs的鏈接為:

https://github.com/ossrs/srs

首先clone到本地,進(jìn)入到trunk目錄:

  1. git clone https://github.com/ossrs/srs.git  
  2. cd srs/trunk 

然后執(zhí)行:

  1. ./configure --osx 

注意: Centos6.x/Ubuntu12 32/64bits用戶僅需要執(zhí)行./configure。

***執(zhí)行:

  1. make 

執(zhí)行成功后,就可以開啟我們的服務(wù)了:

  1. ./etc/init.d/srs start 

如果是mac系統(tǒng),此時(shí)會(huì)失敗,原因是srs.conf中max_connections太大,

目錄為srs/trunk/conf/srs.conf,可以修改為248(其他操作系統(tǒng)可能無此問題)。

再次回到trunk目錄:

  1. ./etc/init.d/srs start 

 

到此我們的srs服務(wù)器就搭建起來了。

注:

Centos、Ubuntu可以參考官網(wǎng)搭建,比較簡(jiǎn)單。

如果你啟動(dòng)過程中還遇到了其他錯(cuò)誤,可以查看log信息:

  1. srs/trunk/objs/srs.log 

其他指令:

  1. 停止 ./etc/init.d/srs stop  
  2. 重啟 ./etc/init.d/srs restart 

有了服務(wù)器之后,我們就準(zhǔn)備開始我們的推流端。

如果你實(shí)在搭建不成功,可以先拿116.196.121.20這個(gè)ip做測(cè)試,我在京東云上搭建的,配置較低,主要用于大家臨時(shí)測(cè)試,可能不穩(wěn)定,看一眼就行,后續(xù)會(huì)關(guān)掉,所以還是盡可能自己搭建成功吧。

使用OBS推流

下載地址: https://obsproject.com/

先下載安裝,這里就簡(jiǎn)單了

輕松入門Android直播相關(guān)技術(shù) 從0搭建直播系統(tǒng)

首先選擇點(diǎn)擊+選擇來源,這里我選擇了窗口捕獲,然后點(diǎn)擊右側(cè)的設(shè)置:

輕松入門Android直播相關(guān)技術(shù) 從0搭建直播系統(tǒng)

選擇流,串流類型選擇自定義,然后url,填寫:

  1. rtmp://你的ip/你喜歡的url 

流名稱可以按照上述自由輸入。

記住我們的url和流名稱:

  1. rtmp://192.168.1.102/zhy/mylive 

完成后,點(diǎn)擊確定。

然后點(diǎn)擊開始推流即可。

輕松入門Android直播相關(guān)技術(shù) 從0搭建直播系統(tǒng)

這樣,我們的OBS推流就開啟啦,軟件的更多使用自行探索吧。

***就剩下我們的拉流了。

使用VLC拉流

下載地址: http://www.videolan.org/vlc/

先下載安裝,這個(gè)就更簡(jiǎn)單啦。

輕松入門Android直播相關(guān)技術(shù) 從0搭建直播系統(tǒng)

點(diǎn)擊Open Network,輸入我們剛才的url+流名稱,點(diǎn)擊確定即可。

輕松入門Android直播相關(guān)技術(shù) 從0搭建直播系統(tǒng)

稍等,就開始播放我們的推流內(nèi)容了。

輕松入門Android直播相關(guān)技術(shù) 從0搭建直播系統(tǒng)

最左側(cè)是VLC,中間是OBS,右側(cè)是我窗口捕獲對(duì)象。

到這里,就算我們搭建了一個(gè)直播系統(tǒng)啦~~自己搭建成功的感覺,無比爽快,也能很大的激發(fā)我們后續(xù)的學(xué)習(xí)興趣。

后面我們可以根據(jù)自己的需求去選擇學(xué)習(xí)拉流或者推流,逐步替換掉軟件。拉流的方式很多,很多開源播放器都支持。這里我們考慮替換掉推流,希望可以使用手機(jī)來推流。

使用第三方推流SDK

最簡(jiǎn)單的方式,就是可以借助于第三方的推流SDK,大多情況下第三方SDK完整方案都是收費(fèi)的,不過他們的推流Android SDK倒是可以下載無需付費(fèi)情況下來學(xué)習(xí)使用的。

這里以百度云的直播SDK為例,下載地址:

https://cloud.baidu.com/doc/Downloadcenter/Push.html#.E7.89.88.E6.9C.AC.E6.9B.B4.E6.96.B0.E8.AF.B4.E6.98.8E

直接點(diǎn)擊下載Android SDK即可,下載完成后解壓,然后倒入AS(這竟然是個(gè)Eclipse項(xiàng)目…),還好AS支持,導(dǎo)入后:

輕松入門Android直播相關(guān)技術(shù) 從0搭建直播系統(tǒng)

直接將mStreamKey修改我們的rtmp的地址即可。

注意,需要在build.gradle中添加下v7的依賴

  1. compile 'com.android.support:appcompat-v7:23.0.0' 

然后運(yùn)行,界面還可以:

輕松入門Android直播相關(guān)技術(shù) 從0搭建直播系統(tǒng)

貼一下運(yùn)行時(shí)的效果圖:

輕松入門Android直播相關(guān)技術(shù) 從0搭建直播系統(tǒng)

還是以vlc拉流即可,整個(gè)過程很緩慢,耐心等待,效果也不是很好,不過能跑通即可,主要是學(xué)習(xí)。然后你可以舉一反三試試其他的SDK。

當(dāng)然了,很多開源項(xiàng)目其實(shí)比SDK作為學(xué)習(xí)資料更好,比較源碼都有,下面以一個(gè)開源項(xiàng)目舉例。

使用開源項(xiàng)目推流

使用一個(gè)開源項(xiàng)目:

https://github.com/begeekmyfriend/yasea

直接clone,導(dǎo)入。

這個(gè)比較順利,導(dǎo)入后,修改下rtmp鏈接:

輕松入門Android直播相關(guān)技術(shù) 從0搭建直播系統(tǒng)

然后運(yùn)行即可(導(dǎo)入不成功,自己想辦法解決,基礎(chǔ)能力啦~)。

貼一張效果圖:

輕松入門Android直播相關(guān)技術(shù) 從0搭建直播系統(tǒng)

硬解碼的情況下,效果比前面的SDK好很多~~

好了,***我們?cè)倏匆环N方式。

恩,ffmpeg很火,ffmpeg很強(qiáng)大。

所以***一種方式,就是看如何利用ffmpeg推流啦~~

利用ffmpeg推流

大家可以自己下載ffmepg的源碼,然后按照網(wǎng)上的方式去編成so,簡(jiǎn)單的一點(diǎn)而且比較實(shí)用的,就是編出可以執(zhí)行ffmpeg 命令的so,這樣就能干很多事情了。

這里,由于篇幅,我們就直接使用別人編好的項(xiàng)目了。

https://github.com/WritingMinds/ffmpeg-android-java

直接導(dǎo)入,該項(xiàng)目支持直接運(yùn)行ffmpeg的命令。

ffmpeg命令很多:

例如:

將.avi轉(zhuǎn)成gif動(dòng)畫(未壓縮)

  1. ffmpeg -i video_origine.avi gif_anime.gif 

合成視頻和音頻

  1. ffmpeg -i son.wav -i video_origine.avi video_finale.mpg 

其中有一個(gè)命令就是支持推流,這里將手機(jī)上的zixia.mp4作為輸入:

  1. ffmpeg -re -i /storage/emulated/0/zixia.mp4  
  2.     -vcodec libx264  
  3.     -acodec aac  
  4.     -f flv  
  5.     -strict -2 rtmp://192.168.1.102/zhy/mylive= 

那么這個(gè)庫是支持在手機(jī)上運(yùn)行ffmpeg命令的,那就簡(jiǎn)單了:

輕松入門Android直播相關(guān)技術(shù) 從0搭建直播系統(tǒng)

貼上我們需要執(zhí)行的命令,運(yùn)行即可。

這里注意我推的是存儲(chǔ)卡上的一個(gè)媒體文件,注意添加相關(guān)權(quán)限,效果如下。

輕松入門Android直播相關(guān)技術(shù) 從0搭建直播系統(tǒng)

好了,這樣我們的大致學(xué)習(xí)了如何搭建一個(gè)小直播系統(tǒng),如何利用SDK,開源項(xiàng)目,以及簡(jiǎn)單的使用ffmpeg來進(jìn)行推流~~

很多時(shí)候,學(xué)習(xí)一個(gè)比較大的技術(shù)方向就是開頭難,無從下手,那么本篇應(yīng)該是一篇非常易懂的教程,希望對(duì)想要學(xué)習(xí)直播技術(shù)的小伙伴有所幫助,也希望以此能夠激發(fā)大家一定的學(xué)習(xí)興趣,當(dāng)然直播技術(shù)遠(yuǎn)不止于此,大家可以根據(jù)自己的情況繼續(xù)深入學(xué)習(xí)~

責(zé)任編輯:未麗燕 來源: Hongyang
相關(guān)推薦

2016-08-27 20:40:02

直播彈幕

2010-12-14 18:08:31

商業(yè)價(jià)值

2016-11-04 15:44:50

移動(dòng)

2021-01-29 14:41:43

Nginx直播服務(wù)器rtmp

2023-08-16 14:56:07

2016-11-28 02:42:38

2019-01-04 09:19:17

產(chǎn)品技能數(shù)據(jù)

2016-09-08 16:46:41

網(wǎng)絡(luò)直播百度開放云CDN

2016-11-17 18:19:13

VR直播

2016-12-01 13:44:19

iosandroid

2018-08-09 10:01:48

2019-07-31 10:18:17

Web 開發(fā)Python

2021-01-27 16:07:02

存儲(chǔ)

2017-03-30 16:19:10

互聯(lián)網(wǎng)

2016-03-15 14:00:10

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)