【Docker】WVPビデオ監視プラットフォームをデプロイ

Docker シリーズに戻りますが、今日はオープン ソースの WVP ビデオ監視プラットフォームの構築に関する記事を紹介します。結論から言うと、最初はネットで紹介されている順を追って構築して失敗したバージョンが古すぎるのか、自分のマシンに問題があるのか​​わからない. ビルドするためにいくつかの異なる方法を試みましたが、失敗しました. 最終的に、Docker イメージを介して完成しました.
直接施工はうまくいきませんでしたが、工程もとても重要なので、全工程を記録しておくと便利です。

1.ffmpeg デコーダー

1.1 yasm のインストール

# 切换到home目录
cd /home
# 创建一个gb28181的文件夹
mkdir gb28181
# 进入文件夹
cd gb28181/
# 到官网下载yasm的二进制压缩包
curl http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz > yasm.tar.gz
# 压缩包解压
tar xzvf yasm.tar.gz
# 切换到文件目录
cd yasm-1.2.0
# 先进行系统配置预设
./configure 
# 多线程进行编译
make -j
# 安装软件
sudo make install

1.2 SDL のインストール

# 切换到上级目录
cd ..
# 到官网下载最新的安装包
curl https://www.libsdl.org/release/SDL2-2.0.22.tar.gz > SDL2-2.0.22.tar.gz
# 解压
tar -xf SDL2-2.0.22.tar.gz
# 切换目录
cd SDL2-2.0.22
# 先进行系统配置预设
./configure
# 多线程进行编译
make -j
# 安装软件
sudo make install

1.3 libmp3lame のインストール

# 切换到根目录
cd ..
# 下载组件安装包
curl https://udomain.dl.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz > lame-3.100.tar.gz
# 解压组件
tar -xf lame-3.100.tar.gz
# 切换到组件目录
cd lame-3.100
# 做编译前配置
./configure
# 进行编译
make -j
# 安装组件
sudo make install

1.4 libx264 のインストール

# 切换到根目录
cd ..
# 由于编译libx264还需要nasm依赖,因此先安装nasm
yum install -y nasm
# 下载x264组件
curl https://code.videolan.org/videolan/x264/-/archive/master/x264-master.tar.gz > x264-master.tar.gz
# 对组件进行解压
tar -zxvf ./x264-master.tar.gz
# 进入安装目录
cd x264-master
# 进行配置
./configure --disable-asm
# 进行编译
make -j
# 编译并安装
make install

上記の「依存関係」がインストールされたら、ffmpeg を正式にインストールできます。

1.5 ffmpeg のインストール

# 切换到根目录
cd ..
# 下载ffmpeg组件
curl https://ffmpeg.org/releases/ffmpeg-4.4.2.tar.gz > ffmpeg-4.4.2.tar.gz
# 解压组件
tar -xf ffmpeg-4.4.2.tar.gz
# 切换到安装目录
cd ffmpeg-4.4.2
# 编译前配置
./configure
# 进行编译
make -j
# 编译并安装
sudo make install

ffmpeg のインストール処理中に、コンパイルの失敗や警告情報が表示される場合があります.この時点で、別のバージョンに切り替えて試す必要があります. この ffmpeg は非常に便利で、勉強すればするほど、ffmpeg は単に「怪物」であり、恐ろしいパフォーマンスと小さなサイズであることがわかります...後で機会があればお話しします。

2. zlMediaKit のインストール

ffmpeg コンポーネントがインストールされると、最新の zlMediaKit コードを gitee でダウンロードできます (github のネットワーク接続には問題があることがよくあります)。

# 切换到根目录
cd ..
# 创建zlmediakit文件夹
mkdir zlmediakit
# 切换到zlmediakit文件夹
cd zlmediakit
# 从gitee中下载ZLMediaKit源码
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
# 切换到ZLMediaKit源码目录
cd ZLMediaKit/
# 对当地代码进行更新并初始化
git submodule update --init

実際に ZLMediaKit をコンパイルする前に、gcc と gcc-c++ をアップグレード (またはインストール) する必要があります。

yum -y install gcc
yum -y install gcc-c++

さらに、cmake を最新バージョンにアップグレードする必要があります。そうしないと、次のエラーが表示され、
画像.png
cmake を 3.1.x 以降に更新する必要があります。

# 先删除本地的cmake
yum remove cmake -y
# 从官网上下载最新版本
wget https://cmake.org/files/v3.21/cmake-3.21.0.tar.gz
# 解压cmake
tar -zxvf cmake-3.21.0.tar.gz
# 切换到cmake安装目录
cd cmake-3.21.0
# 根据指南进行预编译和安装
./bootstrap && make && sudo make install

この過程でコンパイル失敗が発生し、OpenSSL を取得する必要がある
画像.png
ため、OpenSSL を再インストールする必要があります。

yum install openssl openssl-devel -y 

上記の 2 つの手順が完了すると、ZLMediaKit を再コンパイルできます。

# 创建build目录
mkdir build
# 切换到build目录进行cmake
cd build
# 进行编译
cmake ..
# 编译使用4线程
make -j4

その後、正常にコンパイルできるはずです。少なくとも、ここのサーバーは正常にコンパイルされています。

3.WVPのインストール

After the above dependencies are installed, you can go to gitee to download the source code and compile it. Maven を介してパッケージ化されたコードは、構成ファイルの情報に注意する必要があります。さまざまなコンポーネントのバージョンの違いに注意してください。WVP のコードが依存関係の更新速度についていけない可能性があるため、テスト後、成功するのは最新バージョンではありません。ローカルでコンパイルしたときに発生した問題は次のとおりです。
wvp-GB28181-pro + ZLMediaKit の実装プランを使用して、wvp-GB28181-pro を構成した後、下の図に示すように、ZLMediaKit を最初に起動する必要があることがわかりました。 ZLMediaKitの設定を開始しました
画像.png
Mac版ではZLMediaKitが特殊で再コンパイルが必要なのですが、コンパイル時にエラーが発生します。次のように:

在构造两数’mediakit::FFmpegDecoder::FFmpegDecoder(constptr&,int)’中:中:

github の専門家によって提案された解決策は、最新の 5.x バージョンを使用する代わりに ffmpeg をダウングレードすることです。バージョン 4.4 に変更し、再度コンパイルします。したがって、公式サイトから 4.4.2 をダウンロードしてコンパイルおよびインストールする必要があります.最初にルート ディレクトリで ./configure を構成および実行する必要がありますが、この構成を行うプロセスには別の問題があります。エラーが発生します:

nasm/yasm not found or too old. Use --disable-x86asm for a crippled build.

このエラーの主な原因は、yasm のバージョンが低すぎるか、対応するソフトウェアが見つからないため、yasm を再インストールしました。その後、./configure基本的に動作します。
これまでのところ、すべてのエラーは解決されており、プログラムは正常にコンパイルおよび開始されています。しかし、最終的には、構成の問題により、インターフェイスに画像表示がありません。何が問題なのかというと、今のところ発見されておらず、直接配備計画は断念されています。

4. Docker バージョンのデプロイ

https://hub.docker.com/にアクセスしてwvp-pro キーワードを直接クエリし、ダウンロード数が最も多いものを見つけてそのイメージをダウンロードします。
正式にデプロイする前に、プログラムの実行中に出力されるログ ファイルをマウントする wvp フォルダーと、イメージ内の ZLMediaKit コンポーネントのログ ファイルをマウントする zlm フォルダーの 4 つのフォルダーを作成します。はアシストのログ出力をマウントするためのアシストフォルダ、4つ目はリモートでダウンロードした動画ファイルをマウントするための記録フォルダです。
準備ができたら、次のコマンドでデプロイします。

docker run --name wvp --env WVP_IP=192.168.11.221 \
-it -p 18080:18080 \
-p 6579:6379 \
-p 30000-30500:30000-30500/udp \
-p 30000-30500:30000-30500/tcp \
-p 80:80 \
-p 5060:5060 \
-p 5060:5060/udp \
-v /home/yzh/Documents/document_file/gb28181/wvp:/opt/wvp/logs \
-v /home/yzh/Documents/document_file/gb28181/zlm:/opt/media/log \
-v /home/yzh/Documents/document_file/gb28181/assist:/opt/assist/logs \
-v /home/yzh/Documents/document_file/gb28181/record:/opt/media/www/record \
648540858/wvp_pro

独自のインターフェースを持っているので、インターフェースに入って起動後の状況を確認することができます。

おすすめ

転載: blog.csdn.net/kida_yuan/article/details/129355513