文章
问答
冒泡
搭建本地 RTSP 推流环境

搭建本地 RTSP 推流环境

准备工作

  1. FFmpeg

  2. EasyDarwin音视频流媒体行业聚合与分享 - EasyDarwin(可以更换其他)

  3. 播放器,FLV,PotPlayer 等

  4. 一个 MP4 视频(可选)

推流流程

启动 EasyDarwin

注意监听 rtsp 流的 端口是 10054


Pasted image 20231222174100.png

使用 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 服务器的地址和端口。

Pasted image 20231222174521.png

捕获屏幕推流(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 跳转到本地播放器查看效果。


Pasted image 20231222174444.png


关于作者

shuque_user_1fqyw9gs
获得点赞
文章被阅读