日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

FreeSWITCH视频直播

發(fā)布時間:2023/12/15 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 FreeSWITCH视频直播 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

大家都知道,如今,視頻直播比較火啊。

今天,在FreeSWITCH精英群里分享了FreeSWITCH做視頻直播相關(guān)的技術(shù)。

首先,要做直播就得有好機器。筆者買了一臺阿里云的主機,買的是按量付費的,4核4G內(nèi)存,裝Debian 8.0.4(話說阿里云終于有了Debian 8的鏡象了)。

FreeSWITCH直接有針對Debian 8的安裝包,不過筆者通常是編譯安裝,今天還是編譯安裝的。

安裝FreeSWITCH依賴:

apt-get install -y build-essential automake autoconf 'libtool-bin|libtool' wget curl python uuid-dev zlib1g-dev 'libjpeg8-dev|libjpeg62-turbo-dev' libncurses5-dev libssl-dev libpcre3-dev libcurl4-openssl-dev libldns-dev libedit-dev libspeexdsp-dev libspeexdsp-dev libsqlite3-dev perl libgdbm-dev libdb-dev bison libvlc-dev pkg-config libsndfile1-dev libopus-dev lua5.2-dev 

更多

apt-get install -y yasm nasm libavformat-dev libswscale-dev 

常用的工具

apt-get install -y git htop tcpdump 

Clone FreeSWITCH,使用master版,使用國內(nèi)的鏡象,比官網(wǎng)的要快:

git clone http://git.coding.net/dujinfang/FreeSWITCH.git 

編譯安裝:

./bootstrap.sh ./configure make -j make install make sounds-install make moh-install 

安裝 mod_av

cd freeswitch.git cd src/mod/applications/mod_av make make install 

修改幾個地方:

首先,修改conf/dialplan/default.xml,找到 1234,把 1234改成任何其它的字符串,以防止FreeSWITCH sleep 10秒,表現(xiàn)就是打電話慢。

另外,修改conf/autoload_configs/conference.conf.xml,把里面的1920x1080改成1280x720。節(jié)省點機器資源和帶寬。

FreeSWITCH源代碼里有個html5/verto/verto_communicator目錄,安裝verto

cd html5/verto/verto_communicator ./debian8-install.sh 

執(zhí)行完比后將生成dist目錄。

話說,上面說歸說,筆者不是那么做的。原因如下:

Veto communicator是用Angular框架開發(fā)的,依賴很多node.js相關(guān)的東西。很多,在阿里云的服務(wù)器上,下載不下來。當(dāng)然,這不是阿里云本身的問題,你懂的。

所以,筆者早就在其它電腦上編譯好了dist。將里面的內(nèi)容copy到 /root/www/vc 目錄下,備用。

修改 conf/autoload_configs/verto.conf.xml ,把下列內(nèi)容加到 profile 里(前面):

<vhosts>     <vhost domain="localhost">         <param name="alias" value="seven.local freeswitch.org"/>         <param name="script-root" value="/root/www/vc"/>         <param name="root" value="/root/www/vc"/>         <param name="index" value="index.html"/>     <!--         <param name="auth-realm" value="FreeSWITCH"/>         <param name="auth-user" value="freeswitch"/>         <param name="auth-pass" value="rocks"/>     -->     </vhost> </vhosts> 

然后,mod_verto 就成了一個http服務(wù)器了。

啟動FreeSWITCH, load mod_av

用Chrome瀏覽器訪問:https://121.41.105.36:8082/

每一次訪問,需要輸入你的姓名和電子郵件。

呼叫3500,就可以進入視頻會議了。

杜老師視頻會議竟然不穿衣服!網(wǎng)警管不管?

還有人在視頻會議里放起了視頻(虛擬攝像頭):

我們自己的視頻會議做好了,可以共享屏幕了,以后,再也不用QQ那么難用的屏幕共享功能了。 下圖,杜老師正在共享FreeSWITCH控制臺。

htop 看下機器性能

有同學(xué)問,上面的會議用的什么編碼?答:VP8,因為Chrome默認支持VP8。

那Chrome支持H264嗎?有一個選項可以試試啟動Chrome時在命令行里加上:

--enable-features=WebRTC-H264WithOpenH264FFmpeg 

好吧,上述會議普通SIP客戶端也是可以呼進來的。

這也算直播?

不算,上面是視頻會議。視頻會議的流是雙向的。而直播流是單向的。即,大部分人只是“看”。

其實,直播最關(guān)鍵的不是技術(shù)問題,而是,帶寬和CDN。

當(dāng)前最流行的直播協(xié)議是Adobe的RTMP和Apple提出的HLS。RTMP是Flash時代提出的,HLS的全稱是Http Live Stream,是基于HTTP的。這兩種協(xié)議都適合CDN(Content Delivery Network)。CDN的作用是,如果有大量用戶同時看直播,同一地區(qū)的用戶會就近的訪問離自己最近的CDN網(wǎng)絡(luò)中的服務(wù)器,而CDN網(wǎng)絡(luò)負責(zé)內(nèi)容的分發(fā)和緩存。

好了,CDN已超出我們討論的范圍了。再回到FreeSWITCH。

FreeSWITCH本身也可以通過mod_rtmp提供一路視頻流,但是HLS就不行了?,F(xiàn)在直播通用的解決方案是使用FMS、Wowza、Nginx(with rtmp模塊)或crtmpserver。其它的配置都比較復(fù)雜,筆者發(fā)現(xiàn)crtmpserver還是比較省心的。裝一個:

apt-get install crtmpserver 

啟動

/etc/init.d/crtmpserver start 

服務(wù)啟動后,可以給它從FreeSWITCH里推一路RTMP流試一下了:

conference 3500-121.41.105.36 record rtmp://121.41.105.36/live/stream1 

是的,F(xiàn)reeSWITCH通過mod_av,使用錄像(record)的功能將視頻發(fā)送(推)到遠程的rtmp服務(wù)器上。當(dāng)然,這里的遠程rtmp服務(wù)器就是crtmpserver提供的。

這個流也是可以“拉”的,即可以直接看。用VLC視頻播放軟件打開上述地址,理論上就能播放。但理論歸理論,筆者的VLC日志中顯示如下錯誤:

Server error: call to function _checkbw failed 

錯誤的原因可能是crtmpserver不支持_checkbw函數(shù)造成的,也可能是筆者的VLC 2.0版好久沒升級的緣故。總之,我們放棄了研究這一問題。

RTMP流播放器有很多,比如,我們用Google隨便就找到一個:

https://www.hlsplayer.net/rtmp-player 

打開上述地址后,輸入我們的視頻流的路徑:rtmp://121.41.105.36/live/stream1就可以觀看了。

好玩吧?好吧,今天,就玩到這里了。小伙伴們都退出會議了,就我一個人還在玩。

總結(jié)一下,F(xiàn)reeSWITCH可以做直播嗎?大概就是這個樣子的。

上述IP地址已經(jīng)打不開了。因為筆者買的是按量付費的,用完釋放了。

盤點一下,大致花了這么多錢:

供參考:

總結(jié)

以上是生活随笔為你收集整理的FreeSWITCH视频直播的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。