一、RTSP转RTMP
Nginx-Rtmp环境搭建
拉取镜像
docker pull tiangolo/nginx-rtmp:latest-2024-08-26
启动镜像
docker run --name nginx-rtmp -itd --restart=always -p 1935:1935 tiangolo/nginx-rtmp
ffmpeg环境搭建
拉取镜像
docker pull chainguard/ffmpeg:latest
启动镜像,并将一个rtsp流转为rtmp流
docker run --name ffmpeg29 -itd --restart=always chainguard/ffmpeg -rtsp_transport tcp -i rtsp://admin:CSG300222@10.10.10.29:554/h264/ch1/main/av_stream -f flv -r 25 -s 1920*1080 -an rtmp://192.168.6.209:1935/live/29
测试
二、RTSP流转HLS
创建映射目录
mkdir /usr/local/docker/data/nginx/hls
chmod 777 /usr/local/docker/data/nginx/hls
nginx 配置
server {
listen 8002;
server_name server_hls;
location / {
types {
application/vnd.apple.mpegusr m3u8;
video/mp2t ts;
}
root hls; #8002端口服务的根目录,nginx目录下的hls目录
add_header Cache-Control no-cache;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
add_header Access-Control-Methods "GET, POST, OPTIONS";
}
}
nginx 映射路径
-v /usr/local/docker/data/nginx/hls:/etc/nginx/hls
nginx 映射端口
-p 8002:8002
ffmpeg启动容器
docker run --name ffmpeghls --privileged=true -v /usr/local/docker/data/nginx/hls:/hls -itd --restart=always chainguard/ffmpeg -f rtsp -rtsp_transport tcp -i rtsp://admin:CSG300222@10.10.10.29:554/h264/ch1/main/av_stream -codec copy -f hls -hls_list_size 10 -hls_flags 20 -hls_time 15 /hls/test.m3u8
hls流访问地址
nginx ip + 映射端口
http://192.168.6.209:8002/test.m3u8
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 george_95@126.com