曾樹佳 海豐縣廣播電視臺(tái)
電視臺(tái)以傳播電視節(jié)目、采訪新聞為主。電視臺(tái)在探索自身的發(fā)展中,跟隨傳播媒介的變化而變化,現(xiàn)在的傳播向網(wǎng)絡(luò)、向用戶的手機(jī)上傳播,很多人們已經(jīng)習(xí)慣用電視盒點(diǎn)播節(jié)目,地鐵上、公車上、閑時(shí)在咖啡廳上等等的場(chǎng)景上用手機(jī)看視頻、看直播。對(duì)傳統(tǒng)的電視節(jié)目很少看,一方面是接受信號(hào)的電視節(jié)目較被動(dòng),電視臺(tái)播什么,人們只能看什么,甚至插滿廣告視頻。另一方面是觀看節(jié)目場(chǎng)景的多樣性,已經(jīng)不局限于在家里的電視上看節(jié)目,人們常利用零碎的時(shí)間在手機(jī)上看視頻。作為電視臺(tái),在傳播的方式需要與時(shí)俱進(jìn),嘗試用多樣性傳播途徑探索。網(wǎng)絡(luò)上直播,是電視臺(tái)創(chuàng)新最重要的一項(xiàng)內(nèi)容,但實(shí)時(shí)的直播也給搭建和設(shè)備硬件提出了更高的要求。
對(duì)電視臺(tái)初始搭建直播,不宜一開始就采用高端配置,可以先利用一臺(tái)服務(wù)器加寬帶的方式搭建平臺(tái),待業(yè)務(wù)發(fā)展起來(lái)后,再根據(jù)需要升級(jí)配置。之前的服務(wù)器都是電視臺(tái)購(gòu)機(jī),但現(xiàn)在隨著云主機(jī)、Ecs主機(jī)的興起和成熟,大部分的服務(wù)器都是在阿里云、騰訊云、天翼云等購(gòu)買云主機(jī)。云主機(jī)優(yōu)點(diǎn):1.方便維護(hù),主機(jī)不會(huì)因機(jī)器損壞、斷電等原因出現(xiàn)關(guān)機(jī)和斷網(wǎng)的故障。2.云主機(jī)方便根據(jù)需要擴(kuò)展配置,可以根據(jù)業(yè)務(wù)的不斷發(fā)展,需求不斷的提高,比如直播時(shí)觀看的人多了,需要加大帶寬,云主機(jī)很快、很方便地加大帶寬,根據(jù)需求升級(jí)服務(wù)器的配置。
服務(wù)器操作系統(tǒng)采用Linux系統(tǒng),Linux是服務(wù)器最好的操作系統(tǒng),運(yùn)行穩(wěn)定,不會(huì)因?yàn)殚L(zhǎng)時(shí)間開機(jī)出現(xiàn)死機(jī)的現(xiàn)象。目前Linux系統(tǒng)可以采用cotens版本。
采用nginx搭建rtmp直播流服務(wù)器,是目前直播平臺(tái)的最好解決方案。這套方案最主要的是nginx配置,nginx是一個(gè)高性能的HTTP反向代理服務(wù)器,因它的穩(wěn)定性、豐富的功能集和負(fù)載均衡著名。首先安裝nginx,然后配置nginx的nginx.conf文件,該文件是配置nginx唯一入口,一般在此路徑下找到/usr/local/nginx/conf/nginx.conf。
以上配置已經(jīng)好兩個(gè)接受視頻流的端口,只要用推流機(jī)或推流應(yīng)用,就可以隨時(shí)接受流。其中第14行配置了偵聽1935端口和第36行偵聽1936端口,這樣就開出兩路直播流。其運(yùn)行原理是一但端口接受到視頻流,就調(diào)用ffmpge進(jìn)行編碼轉(zhuǎn)碼,然后成為hls特殊文件保存在硬盤上,視頻文件以切片的方式保存,第27行說(shuō)明每個(gè)切片的時(shí)間長(zhǎng)度為2秒。每2秒保存一個(gè)文件,觀看直播時(shí)就是調(diào)用這2秒文件,播完后再調(diào)用下一個(gè)2秒文件,采用這種方式不斷地播放下去。第13、35行聲明了一個(gè)流服務(wù)器。前端播放器采用網(wǎng)頁(yè),前端播放器對(duì)流文件進(jìn)行讀取,從而達(dá)到直播視頻,這種方式是有延時(shí)的,一般會(huì)延時(shí)十秒到三下秒。
接著我們還需要在系統(tǒng)中安裝ffmpeg,ffmpeg是一套可以用來(lái)記錄、轉(zhuǎn)換數(shù)字音頻、視頻的編碼軟件,該軟件已經(jīng)開源,是在Linux平臺(tái)下開發(fā)的,所以在Linux上運(yùn)行是最好的。其作用是將我們推流上來(lái)的視頻流進(jìn)行編碼,編碼后記錄在硬盤上。ffmpeg提供多種編碼格式,根據(jù)實(shí)際需求設(shè)置。目前常用的記錄格式是 fl v、mp4格式,這兩格式的優(yōu)點(diǎn)就是占用空間小,適合網(wǎng)絡(luò)實(shí)時(shí)傳輸。我們常常需要在視頻上實(shí)時(shí)加臺(tái)標(biāo)或者水印,ffmpeg非常方便就可以做到。
前端觀看直播,可以采用html實(shí)現(xiàn),應(yīng)用的范圍廣,可以在網(wǎng)頁(yè)上觀看直播,也可以在微信公眾號(hào)中觀看直播,甚至APP的直播頁(yè)也可以采用html實(shí)現(xiàn),html的關(guān)鍵代碼如下:
在直播時(shí),后臺(tái)需要對(duì)流量、cpu、內(nèi)存等各項(xiàng)指標(biāo)進(jìn)行監(jiān)控,Linux自帶top命令,top命令后可以看各項(xiàng)進(jìn)程的運(yùn)行指標(biāo),但top命令缺少查看帶寬的使用情況,這時(shí)候我們就需要使用iftop命令了,顯示2秒、四秒、十秒內(nèi)的寬帶使用率。訪問(wèn)的IP地址。有多少用戶在觀看視頻,都可以在后臺(tái)監(jiān)控。
此項(xiàng)直播平臺(tái)的搭建的優(yōu)點(diǎn)是快捷簡(jiǎn)單,方便電視臺(tái)的業(yè)務(wù)開展,應(yīng)急一下需要直播的場(chǎng)景,例如臺(tái)風(fēng)到來(lái),做一下現(xiàn)場(chǎng)直播,可以利用手機(jī)的推流軟件,向直播服務(wù)器推流,這樣就可以把直播廣播出去。而且搭建的成本低,只用了一臺(tái)云服務(wù)器。