japanese少妇高潮潮喷 -精品国产AV一区二区三区-麻豆av一区二区三区久久-国产精品无码专区

視頻直播平臺網站搭建思路

發布時間:2025-05-05 點擊:13
快速搭建直播服務大體架構
srs+ffmpeg+第三方(阿里云,騰訊云等),因為不是專門做直播平臺,所以借助第三方平臺(服務器,帶寬,cdn可以省不少心)。當然如果你想自建一個視頻直播平臺也是可以的~~
srs用來接收從手機客戶端推來的rtmp流,ffmpeg用來對視頻進行處理,比如增加logo或濾鏡等,在各種技術嘗試中,走過不少彎路,接收流方面還使用過netty,nginx-rtmp,流處理方面使用過javacv,但效果有些不理想.,java太吃內存,cpu。
下面我們來看一下大致的流程吧
srs的文檔簡單全面,附上git地址
https://github.com/ossrs/srs/wiki/v2_cn_home
第一步,獲取srs。
git clone https://github.com/ossrs/srs
cd srs/trunk
或者使用git更新已有代碼:
git pull
第二步,編譯srs。
./configure && make
第三步,編寫srs配置文件。
將以下內容保存為文件,譬如conf/rtmp.conf,服務器啟動時指定該配置文件(srs的conf文件夾有該文件)。
# conf/rtmp.conf
listen 1935;
max_connections 1000;
vhost __defaultvhost__ {
}
第四步,啟動srs。
./objs/srs -c conf/rtmp.conf
以上是基本配置,
安裝成功后文件路徑如下
下面是完整配置
listen 1935;
max_connections 1000;
daemon off;
#srs_log_tank console;
srs_log_tank file;
srs_log_file ./objs/srs.log;
http_api {
enabled on;
listen 8085;
crossdomain on;
}
vhost test.xx.com {
dvr {
enabled on;
#dvr_path ./objs/nginx/html/[app]/[stream].[timestamp].flv;
dvr_path ./objs/nginx/html/[stream]/[timestamp].flv;
dvr_plan session;
dvr_duration 30;
dvr_wait_keyframe on;
}
http_hooks {
enabled on;
on_connect http://127.0.0.1:8383/lss/liveitem/liveitemaction!streamstatus.do ;
on_close http://127.0.0.1:8383/lss/liveitem/liveitemaction!streamstatus.do ;
on_publish http://127.0.0.1:8383/lss/liveitem/liveitemaction!streamstatus.do ;
on_unpublish http://127.0.0.1:8383/lss/liveitem/liveitemaction!streamstatus.do ;
on_dvr http://127.0.0.1:8085/api/v1/dvrs;
#on_play http://127.0.0.1:8085/api/v1/sessions ;
#on_stop http://127.0.0.1:8085/api/v1/sessions ;
}
}
vhost后面要寫對應的推流地址或者ip.
http_api 與vhost中的http_hooks為一組配置,當srs接收,停止到推流時會調用配置文件中所填地址,并且將各種參數包括streamid,appid傳到后臺中。
hvhost中的dvr功能是本地錄制,dvr_plan有多種錄制計劃
session:按照session來關閉flv文件,即編碼器停止推流時關閉flv,整個session錄制為一個flv。
segment:按照時間分段錄制,flv文件時長配置為dvr_duration和dvr_wait_keyframe。注意:若不按關鍵幀切flv(即dvr_wait_keyframe配置為off),所以會導致后面的flv啟動時會花屏。
至此srs服務器的搭建結束。
手機直播平臺的搭建;
1,采集,ios是比較簡單的,android則要做些機型適配工作,pc最麻煩各種奇葩攝像頭驅動,出了問題特別不好處理,建議放棄pc只支持手機主播,目前幾個新進的直播平臺都是這樣的。
2,前處理,現在直播美顏已經是標配了,80%的主播沒有美顏根本沒法看。美顏算法需要用到gpu編程,需要懂圖像處理算法的人,沒有好的開源實現,要自己參考論文去研究。難點不在于美顏效果,而在于gpu占用和美顏效果之間找平衡。gpu雖然性能好,但是也是有功耗的,gpu占用太高會導致手機發燙,而手機發燙會導致攝像頭采集掉幀,iphone6尤其明顯,因為iphone6的cpu和前置攝像頭很近。
3,編碼,肯定要采用硬編碼,軟編碼720p完全沒希望,勉強能編碼也會導致cpu過熱燙到攝像頭。硬編碼兼容性又是一個大坑,android上要有人去填。編碼要在分辨率,幀率,碼率,gop等參數設計上找到好平衡點。
4,傳輸,自己做不現實,交給cdn服務商吧,也就是貴了點,相信有志于做直播平臺改變世界的你不差錢。假設2w pcu大約每月帶寬費用100萬左右,因為清晰流暢的720p要1.5mbps左右。cdn只提供了帶寬和服務器間傳輸,發送和接收端的網絡連接抖動緩沖還是要自己寫的。不想要卡頓,必然要加大緩沖,會導致延遲高,延遲高影響互動性,要做權衡。
要想用于推流還必須把音視頻數據使用傳輸協議進行封裝,變成流數據。常用的流傳輸協議有rtsp、rtmp、hls等,使用rtmp傳輸的延時通常在1–3秒,對于移動直播這種實時性要求非常高的場景,rtmp也成為移動直播中最常用的流傳輸協議。最后通過一定的qos算法將音視頻流數據推送到網絡斷,通過cdn進行分發。在直播場景中,網絡不穩定是非常常見的,這時就需要qos來保證網絡不穩情況下的用戶觀看直播的體驗,通常是通過主播端和播放端設置緩存,讓碼率均勻。另外,針對實時變化的網絡狀況,動態碼率和幀率也是最常用的策略。
當然,在網絡傳輸方面全部自己來做基本不現實,找提供推流服務的cdn服務商提供解決方案是最好的選擇。據了解,阿里云是國內唯一能自研cdn緩存服務器的廠商,性能非常有保障。當然,大多數直播平臺都會同時接入多個視頻云服務提供商,這樣可以做拉流線路互備,對推流后視頻集群再進行優化也可提高直播的流暢性和穩定性。
免費直播編碼推流軟件

1) 支持h264編碼方式,支持mp3或者aac編碼。h.264是視頻編碼方式,而mp3
與aac是音頻編碼方式。
h264:又稱avc(高級視頻編碼),是當前選的編碼標準。
mp3:是音頻編碼標準,大家都熟悉,不多說。
aac:即高級音頻編碼,比mp3音質還好,是做直播的選,它有aac-lc與he-aac兩個
檔次,aac-lc是地復雜度的aac,兼容性好,he-aac是高效能aac,壓縮度高,音質與
aac-lc相當。
2) 支持rtmp推流。
rtmp:是實時消息協議的簡稱,是由adobe公司開發,雖然沒有變成國際標準,但它是實
際上的工業標準,無論哪個公司,只要做直播,就得用它,當今的手機直播app推流所用
的協議都是rtmp協議。
四款免費推流軟件分別為:
1. adobe flash media encoder
2. open broadcaster software
3. 800li education podcast
4. iavcast
1)flash media live encoder 3.2
由著名的adobe公司出品,值得信賴,adobe好長時間已經停止更新了,時代比較久遠了,但仍舊不失為一個好用的編碼器軟件。
2)open broadcaster software
開源并且免費的直播軟件,是當前非常流行的直播軟件,很多游戲直播就采用它,例如斗魚直播。
3)800li education podcast
免費的抓桌面直播和錄屏軟件。不可多得的免費的直播編碼軟件。有畫中畫功能及畫筆標注功能,對于目前在線教育直播不失為一個好的選擇。 小巧、好用。免費但不開源。
4)iavcast(串流直播)
國內串流直播團隊開發的免費直播軟件,免費但不開源。
做直播除了需要直播編碼推流軟件之外,流媒體服務器系統必不可少。 筆者簡單列一下可以使用的直播系統,選擇開源的實時直播軟件可以考慮red 5, 選擇國外大品牌的可以考慮adobe media server, 選擇有flash p2p功能的可以選擇800li media server。


新加坡服務器一天多少錢?
你關心的是網站建設價格,還是它的價值
如何從SEO優化的角度去布局網站設計
網站優化之關鍵詞優化:為什么研究關鍵詞
如何評估公眾號價值以及提升價值的4種方法
石家莊網站建設要將seo優化融入其中
微信小程序設計時需要了解的六個坑,你了解了嗎?
企業建設響應式網站的必要性