惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
A
About on SuperTechFans
量子位
B
Blog RSS Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园_首页
MongoDB | Blog
MongoDB | Blog
小众软件
小众软件
Blog — PlanetScale
Blog — PlanetScale
Microsoft Azure Blog
Microsoft Azure Blog
V
V2EX
Google DeepMind News
Google DeepMind News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
H
Hackread – Cybersecurity News, Data Breaches, AI and More
G
Google Developers Blog
U
Unit 42
D
DataBreaches.Net
博客园 - Franky
D
Docker
宝玉的分享
宝玉的分享
Y
Y Combinator Blog
月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Hugging Face - Blog
Hugging Face - Blog

泠泫凝的异次元空间

通过串口安装Linux | 泠泫凝的异次元空间 curl自编译 | 泠泫凝的异次元空间 Minecraft 认证服务器代理 | 泠泫凝的异次元空间 飞塔分流配置实战 | 泠泫凝的异次元空间 Windows 安全启动证书检查 | 泠泫凝的异次元空间 Lxn-OneDriveCLI | 泠泫凝的异次元空间 华三交换机配置 ERPS 环网 | 泠泫凝的异次元空间 PVE 配置 VLAN 感知 | 泠泫凝的异次元空间 MT7922 无线网卡安装 | 泠泫凝的异次元空间 无显示输出 Linux 主机配置桌面显示 | 泠泫凝的异次元空间 Wireguard 部署 SOP 手册(自用) | 泠泫凝的异次元空间 Zabbix 7.4 通过钉钉发送告警提醒 | 泠泫凝的异次元空间 Debian with xfce 通过 VNC 共享屏幕 华三S6860 IRF堆叠 | 泠泫凝的异次元空间 iPad 应用侧载 | 泠泫凝的异次元空间 Smart DNS 分区解析 | 泠泫凝的异次元空间 建立 NFS 服务器并挂载到客户端 | 泠泫凝的异次元空间 将 Android 以 MTP 方式连接至 Debian PVE 虚拟机迁移至 vCenter | 泠泫凝的异次元空间 vCenter 虚拟机迁移至 PVE | 泠泫凝的异次元空间 PVE迁移时提示密钥验证失败 | 泠泫凝的异次元空间 修改Windows设备设置区域 | 泠泫凝的异次元空间 恢复 SecureCRT 7.x 保存的密码 | 泠泫凝的异次元空间 PVE 超融合下电与上电流程 | 泠泫凝的异次元空间 记一次Zabbix异常处理 | 泠泫凝的异次元空间 苹果设备保存SHSH2 | 泠泫凝的异次元空间 PVE超融合部署 | 泠泫凝的异次元空间 树莓派启用zram | 泠泫凝的异次元空间 在 Hyper-V 上安装 EVE-NG | 泠泫凝的异次元空间 Zabbix 部署与 Windows 硬件信息收集 | 泠泫凝的异次元空间
使用 MediaMTX + RTSP 搭建低延迟直播服务器
Lxn's Area · 2024-01-16 · via 泠泫凝的异次元空间

使用 MediaMTX 和 RTSP 协议搭建低延迟直播服务器

服务端部署

服务端采用MediaMTX,可以在Release页面中下载最新版本,目前官方支持arm架构的linux和x64版本的linux和Windows。

  1. 下载后解压,会获得一个可执行文件和一个yaml配置文件,首先修改yaml文件:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14



    protocols: [tcp]



    publishUser: "lxnchan"


    publishPass: "lxnchan1234"


    publishIPs: []
  2. 启动主程序
    1
    ./mediamtx
    记下其中一行输出:
    1
    2024/01/17 10:12:47 INF [RTSP] listener opened on :8554 (TCP), :8000 (UDP/RTP), :8001 (UDP/RTCP)

直播端推流

目前来说我这边推流使用OBS Studio,但OBS并不支持直接向服务器推RTSP流,因此我们这里采取曲线救国的方法,通过录像到URL的形式来推流。

  1. 打开OBS Studio,选择“文件”-“设置”-“输出”-“输出模式”更改为“高级”-切换到“录像”选项卡,下方“类型”选择“自定义输出”
  2. 下方“输出类型”选择“输出到URL”,随后URL按照如下格式填写:
    1
    rtsp://用户名:密码@服务器地址:端口/流id
    其中用户名和密码是上面设置的,服务器地址是你的服务器地址,端口是你的服务器端口(上面记录的那行日志中TCP的所在端口),流ID随意填写但不要和实例内别人重复。
    示例:
    1
    rtsp://lxnchan:lxnchan1234@192.168.10.12:8554/live1
  3. 容器格式选择rstp
  4. 视频码率和关键帧间隔根据实际情况调整,通常是越大质量越好,但对服务器和带宽要求更高,带机量相对更低。
  5. 视频编码器设置按如下填写
    1
    -preset:v llhq -tune:v zerolatency -profile veryfast
    • -preset:v llhq: 使用高质量低延迟预设(仅限显卡编码)
    • -tune:v zerolatency: 使用低延迟模式
    • -profile veryfast: 启用veryfast预设
  6. 保存设置后直接开始录制即开始推流。

客户端播放

这里采用VLC做播放介质。

打开VLC,选择“媒体”-“打开网络串流”,输入如下格式的URL:

1
rtsp://read用户名:read密码@IP地址:端口号/流id

例如:

1
rtsp://user:passw0rd@192.168.10.12:8554/live1

如果没设置read用户名密码可以直接去掉前半部分。

其他问题

报WARN:write queue is full

长时间推流需要先关一下或者提高配置文件中writeQueueSize的值。注意,提高该值会导致内存占用提高。

 上一篇

vmware