Ubuntu 搭建 RTSP 服务器:本地视频推流实战(附局域网访问教程)
在开发或测试中,经常需要将本地视频文件以 RTSP 流的形式共享,方便局域网内其他设备(如 Windows 电脑、手机)访问。本文将详细介绍如何在 Ubuntu 系统中搭建 RTSP 服务器,并用 FFmpeg 推送本地视频流,最后在 Windows 上通过 VLC 播放,全程实操无坑,新手也能轻松上手。
一、为什么需要单独搭建 RTSP 服务器?
很多人尝试用 ffmpeg -f rtsp 直接推流时会遇到 Connection refused 错误,原因是:FFmpeg 本身不自带完整的 RTSP 服务器功能,它更擅长处理音视频编码 / 推流,而 RTSP 服务器需要专门的程序来实现会话管理、协议交互等功能。
因此,我们需要:
- 搭建一个独立的 RTSP 服务器(推荐轻量级的
rtsp-simple-server) - 用 FFmpeg 将本地视频推送到该服务器
- 局域网内的设备通过服务器 IP 访问 RTSP 流
二、准备工作
环境要求
- 操作系统:Ubuntu 20.04/22.04(其他版本类似)
- 本地视频文件:如
test.mp4(建议放在容易访问的路径,如~/videos/) - 工具:
ffmpeg(处理视频流)、rtsp-simple-server(RTSP 服务器) - 局域网环境:Ubuntu 服务器和 Windows 客户端需在同一网段
三、详细步骤
步骤 1:安装 FFmpeg(视频处理工具)
FFmpeg 用于读取本地视频并推送到 RTSP 服务器,先确保已安装:
# 更新软件源
sudo apt update
# 安装 FFmpeg
sudo apt install ffmpeg -y
# 验证安装(输出版本信息即成功)
ffmpeg -version
步骤 2:搭建 RTSP 服务器(rtsp-simple-server)
rtsp-simple-server 是一款轻量级、配置简单的 RTSP 服务器,支持 Linux、Windows 等多平台,非常适合新手。
2.1 下载服务器程序
打开 Ubuntu 终端,执行以下命令下载适合 Linux 的 64 位版本(版本号可根据最新发布调整):
# 下载压缩包(如果下载慢,可手动到 GitHub 下载)
wget https://github.com/aler9/rtsp-simple-server/releases/download/v0.21.6/rtsp-simple-server_v0.21.6_linux_amd64.tar.gz
手动下载地址:rtsp-simple-server GitHub Releases,选择
linux_amd64版本。
2.2 解压并启动服务器
# 解压压缩包
tar -zxvf rtsp-simple-server_v0.21.6_linux_amd64.tar.gz
# 进入解压后的目录
cd rtsp-simple-server_v0.21.6_linux_amd64
# 启动 RTSP 服务器(默认配置,监听 8554 端口)
./rtsp-simple-server
启动成功后,终端会显示:
2025/10/30 16:00:00 I [0/0] rtsp-simple-server v0.21.6
2025/10/30 16:00:00 I [0/0] [RTSP] listener opened on :8554 (TCP), :8000 (UDP/RTP), :8001 (UDP/RTCP)
2025/10/30 16:00:00 I [0/0] server is ready
注意:保持此终端开启,关闭终端会导致服务器停止运行。
示例如下:

步骤 3:用 FFmpeg 推送本地视频到 RTSP 服务器
打开新的终端(不要关闭服务器终端),执行以下命令推送视频流:
3.1 基础推流命令(推荐)
# 替换为你的视频文件路径(绝对路径或相对路径均可)
VIDEO_PATH="./20250912_wangjing.mp4"
# 推流命令
ffmpeg -re -stream_loop -1 -i ./20250912_wangjing.mp4
-c:v copy -c:a copy
-f rtsp -rtsp_transport tcp
rtsp://127.0.0.1:8554/mystream
示例如下:
命令参数说明:
-re:按视频实际帧率读取(避免一次性读完文件)-i "$VIDEO_PATH":输入本地视频文件路径-c:v copy -c:a copy:直接复制视频和音频流(不重新编码,节省性能)-f rtsp:输出格式为 RTSP-rtsp_transport tcp:使用 TCP 传输(局域网内更稳定,避免 UDP 丢包)rtsp://127.0.0.1:8554/mystream:推流目标地址(127.0.0.1是本地服务器,mystream是自定义流名称)-stream_loop -1:stream_loop是 FFmpeg 用于设置输入文件循环次数的参数。-1表示无限循环(视频播放结束后立即重新开始);- 循环 1 遍:输入文件播放 1 次后停止,参数设为
0(默认不循环就是播放 1 遍)。 -
-re -stream_loop 0 - 循环 2 遍:输入文件播放 2 次后停止,参数设为
1
(注意:次数是 “循环次数”,即 “播放次数 - 1”)。-re -stream_loop 1 - 循环 20 遍:输入文件播放 20 次后停止,参数设为
19。 -
-re -stream_loop 19 - 无数遍(无限循环):输入文件持续循环播放,参数设为
-1。 -
-re -stream_loop -1
- 注意:该参数必须放在
-i(输入文件)之前,否则无效。
3.2 推流成功的标志
终端会持续输出视频帧信息,类似:
frame= 250 fps= 25 q=-1.0 Lsize=N/A time=00:00:10.00 bitrate=N/A speed=1.01x
示例如下:
表示视频正在以 25fps 的速度推送,推流成功。
3.3 特殊情况处理(视频编码不兼容)
如果视频编码不被 RTSP 支持(如某些特殊编码的 MP4),推送可能失败,此时需要重新编码:
ffmpeg -re -i "$VIDEO_PATH"
-c:v libx264 -preset ultrafast -crf 25 # 视频重新编码为 H.264
-c:a aac -b:a 128k # 音频重新编码为 AAC
-f rtsp -rtsp_transport tcp
rtsp://127.0.0.1:8554/mystream
步骤 4:获取 Ubuntu 服务器的局域网 IP
Windows 电脑需要通过 Ubuntu 的 IP 访问 RTSP 流,先在 Ubuntu 终端中查询 IP:
ip addr show
在输出中找到局域网 IP(通常在 wlan0 或 eth0 下的 inet 字段),例如:192.168.2.18(本文以此为例,实际以你的 IP 为准)。
步骤 5:在 Windows 电脑上访问 RTSP 流
局域网内的 Windows 电脑需使用支持 RTSP 协议的播放器,推荐免费的 VLC 播放器。
5.1 安装 VLC 播放器
- 下载地址:VLC 官网
- 选择 Windows 版本,按提示安装即可。
5.2 播放 RTSP 流
- 打开 VLC 播放器,点击菜单栏 媒体 → 打开网络串流(或按快捷键
Ctrl+N)。


- 在 “网络 URL” 输入框中填写 RTSP 流地址,格式为:
例如:rtsp://[Ubuntu的IP]:8554/mystreamrtsp://192.168.2.18:8554/mystream(替换为你的 Ubuntu IP)。 - 点击 “播放”,等待 1-2 秒,即可看到 Ubuntu 推送的视频画面。
四、常见问题与解决方案
1. RTSP 服务器启动失败(端口被占用)
- 错误表现:终端显示
address already in use - 解决:
- 查看占用 8554 端口的进程:
sudo lsof -i :8554 - 杀死对应进程(替换
PID为实际进程号):sudo kill -9 PID - 若无法 kill,可修改服务器端口:编辑
rtsp-simple-server目录下的rtsp-simple-server.yml,将rtspPort: 8554改为8555,重启服务器后,推流和访问地址也需改为8555端口。
- 查看占用 8554 端口的进程:
2. Windows 无法连接 RTSP 流(Connection refused)
- 检查网络连通性:在 Windows cmd 中执行
ping 192.168.2.18,确保能 ping 通 Ubuntu。 - 开放 Ubuntu 防火墙端口(以 8554 为例):
sudo ufw allow 8554/tcp - 确认推流地址和访问地址的端口、流名称一致(如都是
8554和mystream)。
3. 视频卡顿或无法播放
- 尝试将推流命令中的
tcp改为udp(适合网络稳定的局域网):ffmpeg -re -i 视频路径 -c:v copy -c:a copy -f rtsp -rtsp_transport udp rtsp://127.0.0.1:8554/mystream - 若视频分辨率过高(如 4K),可降低分辨率后推送:
ffmpeg -re -i 视频路径 -s 1280x720 -c:v libx264 -c:a aac -f rtsp -rtsp_transport tcp rtsp://127.0.0.1:8554/mystream
五、总结
本文通过 rtsp-simple-server 搭建 RTSP 服务器,结合 FFmpeg 推送本地视频流,实现了局域网内的 RTSP 视频共享。核心步骤如下:
- 安装 FFmpeg 和 rtsp-simple-server
- 启动 RTSP 服务器(监听 8554 端口)
- 用 FFmpeg 将本地视频推送到服务器
- Windows 客户端通过 VLC 访问 RTSP 流
这种方法稳定可靠,适用于大多数 Ubuntu 版本,且配置简单,非常适合新手快速上手。如果需要推送实时摄像头画面,只需将 FFmpeg 的输入源(-i)改为摄像头设备(如 /dev/video0)即可,原理相同。
如果觉得本文有帮助,欢迎点赞收藏,也欢迎在评论区分享你的实践经验!










