Docker 搭建 Rss 阅读器 freshrss
前言
阿蛮君最近接触了 ffmpeg,之前只知道它很强大,但从来没有用过。由于工作上使用 ffmpeg 录制了摄像头的视频流,但是自己没有摄像头,于是想着如何搭建自己的直播流。
后来发现开源的 rtsp 服务器 rtsp-simple-server,它可以读取和发布实时流,并且还可以代理流,以及进行流转换,同时还可以进行身份验证,并可以使用 api 查询和控制服务器。
rtsp-simple-server 现已更名为 mediamtx,项目地址为:https://github.com/bluenviron/mediamtx
下面是一些常见的用法。
一、将视频发布为rtsp流
1. 启动服务器
这里指定了 rtsp 服务器的地址为 0.0.0.0:8554
,表示可以通过任何 IP 地址来访问。
docker run -d \ | |
--name rss \ | |
-e RTSP_RTSPADDRESS="0.0.0.0:8554" \ | |
--network host \ | |
aler9/rtsp-simple-server |
2. 发布实时流
将视频文件发布为实时流。
ffmpeg -re -stream_loop -1 -i input.mp4 -c:v libx264 -preset ultrafast -c:a aac -f rtsp rtsp://localhost:8554/mystream
-re
:告诉FFmpeg以实时模式读取输入文件,即按照文件的实际帧率进行处理,模拟实时流的传输速度。-stream_loop -1
:设置循环播放输入文件,其中-1
表示无限循环播放,即文件播放到末尾后会重新从开头开始播放。-f rtsp
:指定输出格式为RTSP(Real Time Streaming Protocol),用于将输入文件转换为RTSP流。
3. 查看实时流
可以通过 potplayer 等工具添加流地址:rtsp://ip:8554/mystream,替换 ip 即可。
这里说明一下,推流后,可以通过多种协议从服务器拿到数据。
rtsp://ip:8554/mystream | |
rtmp://ip:1935/mystream | |
http://ip:8888/mystream/ | |
# 还不清楚 |
如果能看见视频则说明流没有问题。
二、身份认证
1. 启动服务器
首先创建认证相关的配置文件。
mkdir -p /home/docker/rss/ && \ | |
cd /home/docker/rss/ && \ | |
touch rtsp-simple-server.yml && \ | |
cat > rtsp-simple-server.yml <<EOF | |
paths: | |
all: | |
publishUser: myuser | |
publishPass: mypass | |
readUser: user | |
readPass: userpass | |
EOF |
启动服务器。
docker run -d \ | |
--name rss \ | |
-v /home/docker/rss/rtsp-simple-server.yml:/rtsp-simple-server.yml \ | |
-e RTSP_RTSPADDRESS="0.0.0.0:8554" \ | |
--network host \ | |
aler9/rtsp-simple-server |
2. 发布实时流
ffmpeg -re -stream_loop -1 -i input.mp4 -c:v libx264 -preset ultrafast -c:a aac -f rtsp rtsp://myuser:mypass@localhost:8554/mystream
3. 查看实时流
操作和上面一样,由于这里添加的权限认证,所以填写地址:rtsp://user:userpass@ip:8554/mystream,替换 ip 即可。
三、补充
现在 rtsp-simple-server
已经更名为 mediamtx
,搭建方式基本一样,但是提供了自带 ffmpeg 的版本。
docker run -d \ | |
--name mediamtx \ | |
-v /home/docker/mediamtx/data:/data \ | |
-e RTSP_RTSPADDRESS="0.0.0.0:8554" \ | |
--network host \ | |
bluenviron/mediamtx:1.8.2-ffmpeg |
需要推流只需要运行如下命令即可:
docker exec -it mediamtx ffmpeg -re -stream_loop -1 -i /data/input.mp4 -c:v libx264 -preset ultrafast -c:a aac -f rtsp rtsp://localhost:8554/mystream
提醒:本文发布于398天前,文中所关联的信息可能已发生改变,请知悉!
阅读剩余
版权声明:
作者:admin
链接:http://999.zuizhuai.cn/?p=6953
文章版权归作者所有,未经允许请勿转载。
THE END