当前位置: 首页 > news >正文

rtsp,。。。。

下面是基于 FFmpeg + H.264 + RTSP + GStreamer 的低延时视频传输方案的详细搭建指南。此方案可将延迟控制在 <100ms,适合远程驾驶、监控等实时性要求较高的应用场景。


📦 方案架构

摄像头(OpenCV)→ FFmpeg(H.264编码+RTSP推流)→ RTSP服务端 → GStreamer(客户端接收+播放)

✅ 1. 准备工作

✅ 安装依赖

Ubuntu 系统:
sudo apt update
sudo apt install ffmpeg gstreamer1.0-tools gstreamer1.0-plugins-base \gstreamer1.0-plugins-good gstreamer1.0-plugins-bad \gstreamer1.0-plugins-ugly gstreamer1.0-libav \libgstrtspserver-1.0-dev v4l-utils

✅ 2. RTSP 服务器搭建方案

RTSP 服务器推荐使用轻量级的 RTSPServerGStreamer RTSP Server(支持自定义管道)。

方式一:使用 ffmpeg 自带推流到 RTSP Simple Server(最简单)

安装 RTSP Simple Server(github.com/aler9/rtsp-simple-server)
wget https://github.com/bluenviron/mediamtx/releases/download/v1.12.2/mediamtx_v1.12.2_linux_amd64.tar.gz
tar -xvzf mediamtx_v1.12.2_linux_amd64.tar.gz
./rtsp-simple-server &

默认 RTSP 地址为:

rtsp://localhost:8554/mystream

✅ 3. 摄像头 H.264 推流(使用 OpenCV + FFmpeg)

你可以用 FFmpeg 从摄像头采集并直接推送 RTSP:

示例脚本 push_rtsp.py

import cv2
import subprocesswidth, height, fps = 640, 480, 25
cap = cv2.VideoCapture(0)
cap.set(cv2.CAP_PROP_FRAME_WIDTH, width)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, height)
cap.set(cv2.CAP_PROP_FPS, fps)# FFmpeg 推流命令:推送到本地 RTSP Server(H.264)
rtsp_url = 'rtsp://127.0.0.1:8554/mystream'
ffmpeg_cmd = ['ffmpeg','-f', 'rawvideo','-pix_fmt', 'bgr24','-s', f'{width}x{height}','-r', str(fps),'-i', '-',  # 从stdin接收'-c:v', 'libx264','-preset', 'ultrafast','-tune', 'zerolatency','-f', 'rtsp','-rtsp_transport', 'tcp',rtsp_url
]process = subprocess.Popen(ffmpeg_cmd, stdin=subprocess.PIPE)while True:ret, frame = cap.read()if not ret:breakprocess.stdin.write(frame.tobytes())

运行此脚本后,会实时把视频数据推送到 RTSP 服务端。


✅ 4. 客户端使用 GStreamer 接收播放

推荐命令(延时极低):

gst-launch-1.0 rtspsrc location=rtsp://192.168.31.100:8554/mystream latency=0 ! \
rtph264depay ! avdec_h264 ! autovideosink sync=false

说明:

  • latency=0: 表示极低缓冲

  • sync=false: 不等待系统时间戳,直接渲染

  • 可替换为其他渲染后端如 xvimagesink, glimagesink


✅ 5. 多摄像头支持

你可以运行多个脚本,推送到不同 RTSP 路径:

摄像头地址
/dev/video0rtsp://localhost:8554/cam0
/dev/video2rtsp://localhost:8554/cam2

订阅方式:

gst-launch-1.0 rtspsrc location=rtsp://localhost:8554/cam0 latency=0 ! rtph264depay ! avdec_h264 ! autovideosink sync=false
gst-launch-1.0 rtspsrc location=rtsp://localhost:8554/cam2 latency=0 ! rtph264depay ! avdec_h264 ! autovideosink sync=false

🚀 延迟优化建议

优化项建议设置
编码参数-preset ultrafast -tune zerolatency
GStreamerlatency=0 sync=false
分辨率480p 推荐,控制带宽
传输协议使用 -rtsp_transport tcp,更稳定

✅ 总结

模块工具
采集与推流Python + OpenCV + FFmpeg
服务端RTSP Simple Server
播放端GStreamer(gst-launch-1.0

相关文章:

  • 探索Stream流:高效数据处理的秘密武器
  • 小红书视频无水印下载方法
  • CSdiy java 07
  • 数字IC前端学习笔记:锁存器的综合
  • 前端工程化和性能优化问题详解
  • 位移监测仪,精准测量,专业守护
  • 单调栈所有模版(2)
  • 制造单元智能化改造与集成技术平台成套实训设备
  • 7、三维机械设计、装配与运动仿真组件 - /设计与仿真组件/3d-mechanical-designer
  • 线程的生命周期·
  • 加密领域 AI Agent 的崛起:DeFAI 如何重塑金融
  • Webpack基本用法学习总结
  • Java EE初阶——初识多线程
  • 基于阿里云DataWorks的物流履约时效离线分析
  • 2025.05.07-淘天算法岗-第二题
  • UI设计公司兰亭妙微分享:汽车 MHI 设计的界面布局创新法则
  • CNG汽车加气站操作工岗位职责
  • Oracle版本、补丁及升级(12)——版本体系
  • 涨薪技术|0到1学会性能测试第56课- 堆与栈、GC回收机制
  • 深入探索 Python 的 QuTiP 5 库:量子计算与开放量子系统模拟的利器
  • 道指跌逾100点,特斯拉涨近5%
  • 山东14家城商行中,仅剩枣庄银行年营业收入不足10亿
  • “仓促、有限”,美英公布贸易协议框架,两国分别获得了什么?
  • 纽约大学朗格尼医学中心的转型带来哪些启示?
  • 保证断电、碰撞等事故中车门系统能够开启!隐藏式门把手将迎来强制性国家标准
  • 印巴冲突升级,巴基斯坦股市重挫7.29%,创5年来最大单日跌幅