1. 程式人生 > 其它 >如何動手搭建一套簡單的直播系統

如何動手搭建一套簡單的直播系統

實時視訊直播是這兩年非常火的技術形態,已經滲透到教育、線上互娛等各種業務場景中。但要搭建一套實時視訊直播系統,並非易事,當然相關的直播技術理論在論壇的其它文章裡已經寫的非常詳細,本文不再展開。

基於對新技術的好奇心,我立馬實踐了下,所以首先給大家分享下整個搭建的流程。本人的作業系統為mac,其他系統的同學可以根據提示,自行安裝軟體。

一個簡易的直播系統,大致可以由三部分組成:

搭建一個rtmp媒體伺服器;

推流端;

拉流端。

現在目標是快速搭建起來,所以當然是藉助開源專案和一些軟體:

rtmp媒體伺服器:這裡使用srs;

推流端:這裡使用obs;

拉流端:這裡使用播放器vlc。

首先選擇點選+選擇來源,這裡我選擇了視窗捕獲,然後點選右側的設定:

選擇流,串流型別選擇自定義,然後url,填寫:

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

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

這樣,我們的OBS推流就開啟啦,軟體的更多使用自行探索吧。最後就剩下我們的拉流了。

點選Open Network,輸入我們剛才的url+流名稱,點選確定即可:

最左側是VLC,中間是OBS,右側是我視窗捕獲物件。

到這裡,就算我們搭建了一個直播系統啦~~自己搭建成功的感覺,無比爽快,也能很大的激發我們後續的學習興趣。

後面我們可以根據自己的需求去選擇學習拉流或者推流,逐步替換掉軟體。拉流的方式很多,很多開源播放器都支援。這裡我們考慮替換掉推流,希望可以使用手機來推流。

使用第三方推流SDK

最簡單的方式,就是可以藉助於第三方的推流SDK,大多情況下第三方SDK完整方案都是收費的,不過他們的推流Android SDK倒是可以下載無需付費情況下來學習使用的。即時通訊開發

還是以vlc拉流即可,整個過程很緩慢,耐心等待,效果也不是很好,不過能跑通即可,主要是學習。然後你可以舉一反三試試其他的SDK。當然了,很多開源專案其實比SDK作為學習資料更好,比如原始碼都有,下面以一個開源專案舉例。

利用ffmpeg推流

大家可以自己下載ffmepg的原始碼,然後按照網上的方式去編成so,簡單的一點而且比較實用的,就是編出可以執行ffmpeg 命令的so,這樣就能幹很多事情了。

 

ffmpeg命令很多,例如下面這些命令。

將.avi轉成gif動畫(未壓縮):

ffmpeg -i video_origine.avi gif_anime.gif

合成視訊和音訊:

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

其中有一個命令就是支援推流,這裡將手機上的zixia.mp4作為輸入:

ffmpeg -re -i /storage/emulated/0/zixia.mp4

-vcodec libx264

-acodec aac

-f flv

-strict -2 rtmp://192.168.1.102/zhy/mylive=

好了,這樣我們的大致學習瞭如何搭建一個小直播系統,如何利用SDK,開源專案,以及簡單的使用ffmpeg來進行推流。

很多時候,學習一個比較大的技術方向就是開頭難,無從下手,那麼本篇應該是一篇非常易懂的教程,希望對想要學習直播技術的小夥伴有所幫助,也希望以此能夠激發大家一定的學習興趣,當然直播技術遠不止於此,大家可以根據自己的情況繼續深入學習。