ZLMediaKit教程(五)支持webrtc

音視頻開發老舅 發佈 2022-09-18T01:19:38.098782+00:00

ZLMediaKit系列文章(共六篇):ZLMediaKit流媒體(一)編譯安裝 ZLMediaKit教程(二)主程序和配置文件解析 ZLMediaKit教程(三)URL規則 ZLMediaKit教程(四)HTTP API 本文為第5篇:ZLMediaKit教程(五)支持webr

ZLMediaKit系列文章(共六篇):

ZLMediaKit流媒體(一)編譯安裝

ZLMediaKit教程(二)主程序和配置文件解析

ZLMediaKit教程(三)URL規則

ZLMediaKit教程(四)HTTP API

本文為第5篇:ZLMediaKit教程(五)支持WebRTC

環境

  • ubuntu 18.04 64bit
  • ZLMediaKit 20210924
  • ffmpeg 3.4.8

webrtc是什麼

WebRTC 是 Web Real Time Communication 的縮寫,也被稱為網絡實時通信,是由 Google 和其他一些大公司推動的一個開源項目,它通過 Javascript API 來實現無插件的實時通信。WebRTC 促進了瀏覽器到瀏覽器的語音呼叫、視頻聊天和文件共享應用的大力發展。目前大多數瀏覽器已經支持了 webRTC 。

C++音視頻開發ZLMediaKit+WebRTC學習資料點擊莬費領取→音視頻開發(資料文檔+視頻教程+面試題)(FFmpeg+WebRTC+RTMP+RTSP+HLS+RTP)

下圖是 WebRTC 的架構圖

  • 最上層的 web app,是 Web 開發者自己開發的程序,主要利用的是 javascript 的 web api
  • web api,WebRTC 標準的 API (javascript 版),由 w3c 來維護
  • 媒體層,這裡就籠統來講,它是 WebRTC 的底層核心部分,包括了音頻和視頻數據的採集、編碼、傳輸,除此之外,還有會話的管理、點對點的連結等,採用的 C++ 語言編寫

實踐

安裝 openssl,ubuntu 18.04 對應的 openssl 版本是 1.1.1

sudo apt-get install libssl-dev

如果你的作業系統版本比較老的話,也可以從源碼開始安裝 openssl,命令如下

git clone https://github.com/openssl/openssl.git
cd openssl
./config
make 
sudo make install

然後是安裝 libsrtp,即 Secure Realtime Transport Protocol,方法還是熟悉的老三樣 configure、make 和 make install

git clone https://github.com/cisco/libsrtp.git
cd libsrtp
./configure --enable-openssl
make
sudo make install

最後來編譯 ZLMediaKit

cd ZLMediaKit
mkdir build
cd build

# 加入webrtc的編譯選項
cmake .. -DENABLE_WEBRTC=on
make

在 cmake 的時候注意看看輸出信息,確保 webrtc 功能已開啟

編譯成功後,生成的可執行文件在 release/linux/MediaServer

接下來,就可以啟動服務了

sudo ./MediaServer -d

然後,使用 ffmpeg 推送一個本地視頻文件到伺服器

ffmpeg -re -i test.mp4 -vcodec h264 -acodec aac -f flv rtmp://127.0.0.1/live/test

完成後,我們打開 chrome 瀏覽器,輸入 http://192.168.1.140,這個 ip 地址是 MediaServer 伺服器的地址

C++音視頻開發ZLMediaKit+WebRTC學習資料點擊莬費領取→音視頻開發(資料文檔+視頻教程+面試題)(FFmpeg+WebRTC+RTMP+RTSP+HLS+RTP)

選擇 6 webrtc,這裡我們沒有證書,所以忽略掉 https 的警告

設置下解析度,點擊開始,上方的播放器就開始播放推送的視頻了

如果你對音視頻開發感興趣,或者對本文的一些闡述有自己的看法,可以在下方的留言框,一起探討。

關鍵字: