流媒体服务--ZLMediaKit记录

编译

官方编译文档地址

  1. 拉取代码的方式在网上很多介绍,直接只是简单说下:
#国内用户推荐从同步镜像网站gitee下载 
git clone --depth 1 https://gitee.com/xia-chu/ZLMediaKit
cd ZLMediaKit
#千万不要忘记执行这句命令
git submodule update --init
  1. 安装编译器:
yum -y install gcc
yum -y install gcc-c++
  1. 安装依赖:
#安装libssl-dev
yum install openssl-devel

#安装libsdl-dev
yum install SDL-devel
  1. ffmpeg推荐尝试源码安装,这里不做介绍;cmake安装网上都有详细的教程
  2. 因为要求的ssl版本比较高这里使用下列方式:
    wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz
 tar -xvzf openssl-1.1.1k.tar.gz
 yum install -y zlib zlib-devel perl-CPAN
 ./config shared --openssldir=/usr/local/openssl --prefix=/usr/local/openssl
 make && make install
 echo "/usr/local/lib64/" >> /etc/ld.so.conf
 echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
 ldconfig
 # ln -s /usr/local/openssl/bin/openssl  /usr/local/bin/openssl # 替换系统openssl,非必须,也最好不要
 openssl version -a
  1. libsrtp安装
wget https://github.com/cisco/libsrtp/archive/refs/tags/v2.5.0.tar.gz
tar -xvzf libsrtp-2.5.0.tar.gz
cd libsrtp-2.5.0
./configure --enable-openssl --with-openssl-dir=/usr/local/openssl
make  && make install
  1. 安装ZLMediakit
 mkdir build
cd build
cmake .. -DENABLE_WEBRTC=true  -DOPENSSL_ROOT_DIR=/usr/local/openssl  -DOPENSSL_LIBRARIES=/usr/local/openssl/lib
cmake --build . --target MediaServer

上面的DENABLE_WEBRTC表示开启WebRTC,-DENABLE_FFMPEG=true,表示开启ffmpeg
8. 启动或关闭

./release/linux/Debug/MediaServer //  加-d会一守护进程的方式启动,再加&可以后台不占用当前窗口
killall -2 MediaServer //关闭
  1. 对于云服务的安全组配置是否打开必要的端口
  2. 推流测试
ffmpeg -re -i 11-10-套接字与套接字编程.mp4 -c:v libx264 -c:a aac -f rtsp -rtsp_transport tcp rtsp://39.97.110.12:558/live/test

补充::对于外部访问需要将:

allow_ip_range=::1,127.0.0.1,172.16.0.0-172.31.255.255,192.168.0.0-192.168.255.255,10.0.0.0-10.255.255.255

改为:

allow_ip_range=

或者将自己的ip加入到列表中

拉流

rtsp://39.97.110.12:558/live/test
rtmp://39.97.110.12:1936/live/test
http://39.97.110.12:8081/live/test/hls.m3u8
http://39.97.110.12:8081/live/test.live.ts
http://39.97.110.12:8081/live/test.live.mp4
http://39.97.110.12:8081/live/test.live.flv

网页管理

  1. webrtc流管理
https://39.97.110.12:8082/webrtc/

这样就可以打开流地址;

  1. 管理页面
https://39.97.110.12:8081/webassist/index.html

使用addFFmpegSource的api生成水印

  1. api调用如下
    命令如下:
https://39.97.110.12:8081/index/api/addFFmpegSource?src_url=rtsp://127.0.0.1:558/live/test&dst_url=rtmp://127.0.0.1:1936/live/test1&timeout_ms=10000&secret=095c73f7-9e6b-4d8c-a738-d96d2d1925ca

其中的src_url是指已经存在的流的完整链接,也就是要被代理流的地址,
dst_url是指目的地址,一般都是推送给自己;

  1. 服务配置修改,其中的ffmpeg项目修改如下:
cmd=%s -re -i %s -c:a copy -vf drawtext=text='123hello321':x=(w-tw):y=(2*lh):fontcolor=red:fontsize=150:fontfile='/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf' -c:v libx264 -f rtsp -rtsp_transport tcp %s

也就是将其中cmd项修改成上面的:fontfile一定要指定,如果要支持中文就使用中文字库;
效果如下:在这里插入图片描述
这个是后台管理界面的拉流显示效果。
如果要支持中文字体:
先试用c-list :lang=zh查看是否有中文字体,如果没有就安装:

  • 安装字体
// wqy-zenhei.ttc:文泉驿正黑字体 NotoSansCJK-Regular.ttc(思源字体)
sudo apt-get install fonts-wqy-zenhei fonts-noto-cjk

然后使用下列命令查看安装地址:

find /usr/share/fonts -name "*.ttf"
find /usr/share/fonts -name "*.ttc"

自定义字体安装:

  • 安装支持工具
sudo apt install ttf-mscorefonts-installer fontconfig
  • 进入到字体目录
cd /usr/share/fonts/truetype/
mkdir myfonts
  • 将下载字体文件到 /usr/share/fonts/truetype/myfont,一般是tts或ttf;
  • 执行下列命令刷新:
sudo mkfontscale
sudo mkfontdir
sudo fc-cache -fv

如图:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

简简单单lym

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值