搭建本地 RTSP 推流环境
准备工作
播放器,FLV,PotPlayer 等
一个 MP4 视频(可选)
推流流程
启动 EasyDarwin
注意监听 rtsp
流的 端口是 10054
使用 FFmpeg 推流
本地视频
注意更换实际视频路径。将一个本地的视频文件(test.mp4
)通过 RTSP(Real Time Streaming Protocol)协议进行实时传输。
ffmpeg -re -stream_loop -1 -i .\test.mp4 -vcodec h264 -f rtsp -rtsp_transport tcp rtsp://localhost:10054/test
-re
: 表示按照实际速度读取输入,用于模拟实时传输,确保按照视频的实际帧率进行传输。-stream_loop -1
: 表示无限循环播放输入的视频文件。-1
表示无限循环。-i .\test.mp4
: 指定输入文件,这里是一个名为test.mp4
的视频文件。-vcodec h264
: 指定视频编码器为 H.264。-f rtsp
: 指定输出格式为 RTSP。-rtsp_transport tcp
: 指定使用 TCP 传输协议来进行 RTSP 传输。RTSP 协议本身并不规定传输协议,但使用 TCP 可以提高稳定性,特别是在存在网络丢包的情况下。rtsp://localhost:10054/test
: 指定输出的 RTSP URL,包括主机地址localhost
、端口10054
以及路径/test
。这就是实际 RTSP 服务器的地址和端口。
捕获屏幕推流(Windows)
ffmpeg -f gdigrab -framerate 30 -i desktop -c:v libx264 -preset ultrafast -tune zerolatency -pix_fmt yuv420p -f rtsp -rtsp_transport tcp rtsp://localhost:10054/desktop
-f gdigrab
: 使用 GDI (Graphics Device Interface) 抓取。-framerate 30
: 设置帧率为 30 帧每秒。-i desktop
: 指定输入源为整个桌面。-c:v libx264
: 使用 H.264 编码器。-preset ultrafast
: 设置编码速度为 ultrafast,以提高传输速度。-tune zerolatency
: 优化用于低延迟。-pix_fmt yuv420p
: 设置像素格式为 yuv420p。-f rtsp
: 指定输出格式为 RTSP。-rtsp_transport tcp
: 指定使用 TCP 传输协议来进行 RTSP 传输。RTSP 协议本身并不规定传输协议,但使用 TCP 可以提高稳定性,特别是在存在网络丢包的情况下。rtsp://localhost:10054/desktop
: 指定输出的 RTSP URL,包括主机地址localhost
、端口10054
以及路径/desktop
。这就是实际 RTSP 服务器的地址和端口。
播放
浏览器打开 rtsp://localhost:10054/test
跳转到本地播放器查看效果。