Ubuntu에서 ZLMediaKit 컴파일 및 실행

요약

이 문서에서는 Ubuntu에서 ZLMediaKIt 프로젝트 소스 코드를 빌드하는 방법 과 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 테스트 웹페이지에서 카메라 해상도를 설정할 수 있습니다.

WebRTC push end로 method 옵션으로 push를 선택하고, datachannel을 체크한 후 시작 버튼을 클릭합니다.

당연히 다음 화면을 볼 수 있습니다.

 위 그림의 그림이 보이면 스트리밍이 시작되었다는 의미이며 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