
Nginx直播服务部署(直播+流媒体+屏幕水印)
基于docker-nginx-rtmp的配置和部署. 本文的意义是实现实时流媒体和实时图片水印.
Nginx 1.16.1(从源代码编译的稳定版本)
nginx-rtmp-module 1.2.1(从源代码编译)
ffmpeg 4.2.1(从源代码编译)
已配置Nginx.conf
水印图片的存储位置(在容器中):
/opt/images/logo.png
本地
Live Cloud(示例:
Mou Cloud,腾讯云potplayer打不开rtmp,ucloud)
仅1920 * 1080(有关其他分辨率,请参阅nginx.conf)

实现双向交通
实时水印效果
部署并运行
1安装docker(Centos7,请在其他系统上使用搜索功能)
$ yum -y安装docker
$ systemctl启用docker
$ systemctl启动docker
2拉docker映像并运行
$ docker pull ar414 / nginx-rtmp-ffmpeg
$ docker run -it -d -p 1935: 1935 -p 8080: 80 --rm ar414 / nginx-rtmp-ffmpeg
3将直播内容流式传输到:
rtmp: // <服务器IP>: 1935 /流/ $ STREAM_NAME

4个SSL证书
将证书复制到容器中,修改容器中的nginx.conf配置文件,然后重新提交(需要重新提交容器中的文件才能生效)
听443 ssl;
ssl_certificate / opt / certs / example.com.crt;
ssl_certificate_key /opt/certs/example.com.key;
5个OBS配置
流类型: 自定义流服务器
URL: rtmp: // <服务器ip>: 1935 /流
流键: ar414

6次观看测试
HLS播放测试工具: player.alicdn.com/aliplayer/s ...(如果配置了证书,则使用https)

7个HLS播放地址
RTMP测试工具: PotPlayer
8个RTMP播放地址
没有水印:
rtmp: // <服务器ip>: 1935 /流/ ar414

带有水印:
需要拆分到其他服务器
: page_face_up: 配置文件的简要说明(分流器potplayer打不开rtmp,水印和水印位置)
完整的配置文件:
9个RTMP配置
rtmp {
server {
listen 1935;
chunk_size 4000;
application stream {
live on;
exec ffmpeg -i rtmp://localhost:1935/stream/$name -i /opt/images/ar414.png
-filter_complex "overlay=10:10,split=1[ar414]"
-map '[ar414]' -map 0:a -s 1920x1080 -c:v libx264 -c:a aac -g 30 -r 30 -tune zerolatency -preset veryfast -crf 23 -f flv rtmp://localhost:1935/hls/$name_wm
-c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 2500k -f flv -g 30 -r 30 -s 1920x1080 -preset superfast -profile:v baseline rtmp://localhost:1935/hls/$name;
}
application hls {
live on;
hls on;
hls_fragment 5;
hls_path /opt/data/hls;
}
}
}

10如果需要推送多个实时云,则可以如下复制多个exec ffmpeg:
application stream {
live on;
#分流至本机hls
exec ffmpeg -i rtmp://localhost:1935/stream/$name -i /opt/images/ar414.png
-filter_complex "overlay=10:10,split=1[ar414]"
-map '[ar414]' -map 0:a -s 1920x1080 -c:v libx264 -c:a aac -g 30 -r 30 -tune zerolatency -preset veryfast -crf 23 -f flv rtmp://localhost:1935/hls/$name_wm
-c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 2500k -f flv -g 30 -r 30 -s 1920x1080 -preset superfast -profile:v baseline rtmp://localhost:1935/hls/$name;
#分流至腾讯云
exec ffmpeg -i rtmp://localhost:1935/stream/$name -i /opt/images/ar414.png
-filter_complex "overlay=10:10,split=1[ar414]"
-map '[ar414]' -map 0:a -s 1920x1080 -c:v libx264 -c:a aac -g 30 -r 30 -tune zerolatency -preset veryfast -crf 23 -f flv rtmp://live-push.tencent.com/stream/$name_wm
-c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 2500k -f flv -g 30 -r 30 -s 1920x1080 -preset superfast -profile:v baseline rtmp://live-push.tencent.com/stream/$name;
#分流至阿某云
exec ffmpeg -i rtmp://localhost:1935/stream/$name -i /opt/images/ar414.png
-filter_complex "overlay=10:10,split=1[ar414]"
-map '[ar414]' -map 0:a -s 1920x1080 -c:v libx264 -c:a aac -g 30 -r 30 -tune zerolatency -preset veryfast -crf 23 -f flv rtmp://live-push.aliyun.com/stream/$name_wm
-c:a libfdk_aac -b:a 128k -c:v libx264 -b:v 2500k -f flv -g 30 -r 30 -s 1920x1080 -preset superfast -profile:v baseline rtmp://live-push.aliyun.com/stream/$name;
}
11个水印位置
水印位置
|水印图像位置|重叠值|
左上角10:10
main_w-overlay_w-10: 右上角10个
左下角10: main_h-overlay_h-10
main_w-overlay_w-10: main_h-overlay_h-10
重叠参数
参数说明
main_w视频单帧图像宽度(当前配置文件为1920)
main_h视频单帧图像高度(当前配置文件为1080)
overlay_w水印图像宽度
overlay_h水印图像的高度
原始链接:
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/bofangqi/article-159600-1.html
对象不定
美国这样真没意思
他航他的