Ubuntu で ZLMediaKit をコンパイルして実行する

まとめ

この記事では、 Ubuntu 上でZLMediaKITtプロジェクトのソース コードをビルドする方法と、その WebRTC ストリーミングおよび再生機能を体験する方法について説明します。

研究室環境

操作系统版本:Ubuntu 22.04.3 LTS
gcc版本:11.4.0
g++版本:11.4.0

依存ライブラリのインストール

#让ZLMediaKit媒体服务器具备WebRTC流转发功能的必备依赖包
sudo apt install cmake pkg-config gcc g++ libssl-dev libsrtp2-dev libusrsctp-dev
#其它可选依赖包,请根据实际需要决定是否安装。
sudo apt install libsdl-dev libavcodec-dev libavutil-dev ffmpeg

#检查已安装的必备依赖库的版本
#示例版本为3.0.2
pkg-config --modversion libcrypto libssl
#示例版本为2.4.2
pkg-config --modversion libsrtp2
#示例版本为0.9.5.0
pkg-config --modversion usrsctp

ZLMediaKit ソース コードを入手する

ZLMediaKit は、git を使用して ZLMediaKit コードを複製することを公式に推奨しています。例は次のとおりです。

#国内用户推荐从同步镜像网站gitee下载 
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
#千万不要忘记执行这句命令
git submodule update --init

ZLMediaKit ビルド スクリプトを生成する

cd ZLMediaKit
mkdir -p build
cd build

#采用默认条件编译参数,生成Makefile文件
cmake -S .. -B .

上記のビルド スクリプト生成プロセス中に、cmake は一連のプロンプト メッセージを出力します。次の情報が表示されることを確認してください。

赤矢印の部分に注意してください、表示されていない場合はWebRTC機能が正常に動作していません。

ZLMediaKit をビルドする

#用cmake命令并行编译
cmake --build . -j 16
#或者用make命令并行编译
make -j16
#耐心等待编译进度走到[100%]。

MediaServer 構成を変更する

ZLMediaKit の新バージョンでは、当局は秘密鍵構成の変更を要求しています。

テキスト エディタを使用して MediaServer 構成ファイルZLMediaKit/release/linux/Debug/config.iniを開き、シークレット構成項目を検索して、デフォルト キーを変更します。

テキスト エディタでZLMediaKit/release/linux/Debug/www/webrtc/index.htmlを開き、秘密のキーワードを検索して、URL の主要なパラメータが config.ini 内のパラメータと一致していることを確認します。そうでない場合は、ライブ ストリーム リストと一致します。以降の実験では必ず発生します。空の問題。

実行中のメディアサーバー

#cd到ZLMediaKit的构建输出目录
cd release/linux/Debug

#通过-h可以了解启动参数
./MediaServer -h

#在调试时,不带参数启动,方便观察控制台输出,退出请按Ctrl+C。
./MediaServer

#正式部署时,官方建议以守护进程模式启动
./MediaServer -d &

#杀死MediaServer守护进程的方法
killall -2 MediaServer

WebRTC プッシュ実験

MediaServer が実行されているホストで、ブラウザ インスタンス (またはタブ) を開き、アドレス バーに次のように入力します。

#示例为了避免端口冲突,将config.ini中的[http]节区的port修改为8080
http://localhost:8080/webrtc/

#如果未修改过默认的http服务端口,则应输入如下地址:
http://localhost/webrtc/

ブラウザの WebRTC テスト Web ページでは、カメラの解像度を設定できます。

WebRTC プッシュエンドとして、メソッドオプションとしてプッシュを選択し、データチャネルにチェックを入れて、開始ボタンをクリックします。

当然のことながら、次の画面が表示されます。

 上の画像が表示されたら、ストリーミングが開始され、WebRTC 再生実験を開始できることを意味します。

WebRTC再生実験

別のブラウザ インスタンス (またはタブ) を開き、WebRTC ストリーミング実験と同じアドレスをアドレス バーに入力します。

WebRTC プレーヤーとして、メソッド オプションで [再生] を選択し、データチャネルにチェックを入れて、[開始] ボタンをクリックします。

当然のことながら、次の画面が表示されます。

 上の図を見ると、ZLMediaKit メディア サーバーに基づく WebRTC ストリーミングと再生の実験が成功したことがわかります。おめでとうございます。WebRTC アプリケーション開発の閾値に入ったことになります。

RSTP ストリーミングと再生の実験

このセクションでは、RTSP プロトコルを通じてローカル mp4 ファイルを ZLMediaKit メディア サーバーにプッシュし、ユーザーがブラウザの WebRTC プレーヤーを通じてそれを視聴できるようにする方法について説明します。

サーバー構成を変更します。

メディア サーバー構成ファイル config.ini を開き、次のように directProxy 構成項目の値を 0 に変更します。

[rtsp]
#此配置项必须设置为0,否则WebRTC播放会失败。
directProxy=0

ffmpeg を使用してストリーミングをプッシュします。

#参数“-re”表示模拟实际播放的速度进行推流。
#参数“-stream_loop -l”表示循环播放test.mp4。
#参数“-bf 0”表示视频编码时,BFrame数量为0,即禁止使用B帧,避免WebRTC播放时卡顿。
#参数“-b:v 1500000”表示视频编码码率为1.5Mbps,码率越高,视频画面越清晰,对网络带宽要求越高,可省略此参数,采用默认编码码率。
#参数“-b:a 96000”表示音频编码码率为96Kbps,可省略此参数,采用默认编码码率。
ffmpeg -re -stream_loop -1 -i "test.mp4" -bf 0 -vcodec h264 -acodec libopus -f rtsp -rtsp_transport tcp rtsp://127.0.0.1/live/test

VLC でライブ ストリームを視聴します。

在MediaServer中观察流地址(比如:.../rtp/36731AF0)。
打开VLC播放器,在【媒体】菜单中选择【打开网络串流】,输入如下网络 URL:
rtsp://127.0.0.1/live/test
点击【播放】按钮。

ブラウザでライブ ストリームを視聴します。

再生方法は「WebRTC再生実験」と同じで、ブラウザに以下のURLを入力します。

http://127.0.0.1/webrtc

WebRTC プレーヤー ページの左側にあるライブ ストリーム リストをクリックして視聴を開始します。

要約する

ZLMediaKit は、完全な機能、優れたパフォーマンス、および強力なクロスプラットフォーム機能を備えています。商用レベルのストリーミング メディア アプリケーション ソリューションです。ストリーミング メディア アプリケーション開発と C++11 プログラミングを学習するための優れた例でもあります。 -深い研究と理解。

おすすめ

転載: blog.csdn.net/bigwave2000/article/details/132268733