有时候只是需要监控一个电脑屏幕,并且将流通过网络投放到一个电视大屏上。方案有很多,最终选择了ffmpeg方案。
方案对比:
- OBS Studio方案:不方便传输到外网
- VLC串口方案:经过失败,不可用
- ffmpeg:简单,且没有界面,更实用
一、OBS Studio方案
- 下载安装OBS Studio;
- 安装rtsp-server插件;iamscottxu/obs-rtspserver: RTSP server plugin for obs-studio (github.com)
- 启用RTSP插件;
启用插件:
VLC播放测试:
二、VLC方案
经过测试,太容易出问题,断连,不可播放。
所以直接放弃。
三、ffmpeg+mediamtx方案
1.原始地址
mediamtx地址:https://github.com/bluenviron/mediamtx
ffmpeg地址: https://ffmpeg.org/
2.ffmpeg捕获桌面开始rtsp推流
命令:
ffmpeg -f gdigrab -framerate 20 -video_size 1920x1080 -i desktop -c:v libx265 -preset veryfast -b:v 1000k -f rtsp rtsp://127.0.0.1:8554/stream
# 经过测试帧率最低可以设置5帧,码率最低可以到500k
3.启动mediamtx rtsp流媒体服务器
启动命令:
mediamtx.exe
自启动注册:
#/etc/systemd/system/mediamtx.service
[Unit]
Description = mediamtx
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
#RootDirectory=/opt/iios-docker-deploy/tools/frpcv1/
ExecStart = /opt/iios-docker-deploy/tools/mediamtx/mediamtx /opt/iios-docker-deploy/tools/mediamtx/mediamtx.yml
Restart=always
RestartSec=10
#StartLimitInterval=0
[Install]
WantedBy = multi-user.target
4.使用VLC播放流
建议采用windows快捷方式,使用一下配置vlc实现断线重连:
vlc --loop --repeat rtsp://127.0.0.1:8554/stream