Ubuntu 环境下创建并启动一个 MediaMTX 的 systemd 服务

文章目录

  • 一、简介
  • 二、安装及使用
  • 三、创建系统服务
  • 小结

一、简介

MediaMTX 是一个现代、高性能、跨平台的 流媒体服务器,主要用于接收、转发、转码和分发 音视频流,支持多种协议。它的前身是 rtsp-simple-server,后来重命名为 MediaMTX,功能也变得更全面,不再局限于 RTSP。

二、安装及使用

  1. 参考github官网,选择合适的版本下载,解压后包含一个许可协议、一个mediamtx可执行程序以及一个yml配置文件。
    文件
  2. 参考官方主页,使用指令./mediamtx启动服务。但这样在前台中不利于生产环境使用,所以一般会创建mediamtx服务,这样可以更稳定、可控、自动化运行。
    启动服务

三、创建系统服务

  1. /etc/systemd/system目录下创建mediamtx.service文件并粘贴如下内容,ExecStart修改为实际的可执行文件路径,WorkingDirectory修改为可执行文件所在目录,在想要存放 日志文件 的目录下创建mediamtx.logmediamtx_error.log这两个文件并修改路径。

    [Unit]
    Description=mediamtx-Service
    After=network.target
    StartLimitIntervalSec=0
    StartLimitBurst=5[Service]
    ExecStart=/home/xxx/mediamtx/mediamtx
    Restart=always
    RestartSec=0
    WorkingDirectory=/home/xxx/mediamtx
    StandardOutput=append:/mnt/logs/mediamtx.log
    StandardError=append:/mnt/logs/mediamtx_error.log
    User=root
    Group=root[Install]
    WantedBy=multi-user.target
    
  2. 由于mediamtx.service指定了用户和组为root,所以需要确保文件所属对应的用户和组。读写权限一般是644就可以。

    sudo chown root:root /etc/systemd/system/mediamtx.service
    sudo chown root:root /mnt/logs/*.log
    
  3. 配置生效并设置开机自启。如果有 docker 的话,最好是将 mediamtx 安装并运行在宿主机中,让容器中的程序推送RTSP流到宿主机IP上的 mediamtx。另外,启动服务的时候要确认相关端口没有被占用,例如8888端口。

    # 重新加载 systemd 服务列表
    sudo systemctl daemon-reexec
    sudo systemctl daemon-reload# 启用开机启动
    sudo systemctl enable mediamtx.service# 立即启动服务(可选)
    sudo systemctl start mediamtx.service# 查看状态
    sudo systemctl status mediamtx.service
    
  4. 正常启动后,查看服务状态如下,如有Failederrorexited等关键词,可以在日志文件中查看具体原因。
    状态

  5. 可以在docker内通过ffmpeg指令测试将视频文件推流到 MediaMTX,并通过 VLC 拉取视频流验证传输是否正常。

    ffmpeg -re -i xxx.mp4 -c copy -f rtsp rtsp://mediamtx宿主机的ip:8554/live/stream1
    

小结

上述内容均参考官网及个人实践,如有其他问题欢迎在评论区讨论,谢谢!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/92805.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/92805.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在React中,函数式组件和类组件各有优缺点

函数式组件:无this,无生命周期,配合使用useEffect, 可使用Hooks。 类组件:有生命周期,状态管理,无Hooks,适用于需要明确生命周期方法和实例方法的场景。 函数式组件 优点&#xff1a…

【SketchUp插件推荐】Profile Builder 4.0 中文版下载安装使用教程(含语言设置图解)

一、插件简介 Profile Builder 4.0 是一款适用于 SketchUp 2017-2024 的高效参数化建模插件,中文名称为「参数化造型建模工具」。该插件基于参数化设计原理,允许用户通过简单的路径定义和参数设定,快速生成智能模型,从而大幅提高…

【小沐学GIS】基于Unity3d绘制三维数字地球Earth(Unity3d、OpenGL、GIS)

🍺三维数字地球GIS系列相关文章如下🍺:1【小沐学GIS】基于C绘制三维数字地球Earth(OpenGL、glfw、glut)第一期2【小沐学GIS】基于C绘制三维数字地球Earth(OpenGL、glfw、glut)第二期3【小沐学GI…

ARM汇编的一些编写和调用规范总结

ARM汇编在格式上有少数硬性要求,在排版上几乎没什么硬性要求,都不多,以下分别说明。格式要求 ARM 汇编有一些格式上的硬性要求,这些规则由汇编器(如 GNU 的gas、ARM 官方的armasm)强制执行,违反…

FastAPI框架下集成智谱大模型的RAG流式响应服务框架

RAG(检索增强生成)是结合检索与生成式 AI 的技术框架。核心逻辑是先从外部知识库精准检索相关信息,再将其作为上下文输入大模型生成回答。技术上依赖检索引擎(如向量数据库、BM25)、大语言模型(如 GPT、LLa…

基于深度学习的胸部 X 光图像肺炎分类系统(三)

目录 二分类胸片判断: 1. 数据加载时指定了两类标签 2. 损失函数用了二分类专用的 3. 输出层只有 1 个神经元,用了sigmoid激活函数 4. 预测时用 0.5 作为分类阈值 二分类胸片判断: import numpy as np import matplotlib.pyplot as plt f…

深入理解 BIO、NIO、AIO

目录 一、同步与非同步 二、阻塞与非阻塞 三、BIO(Blocking I/O,阻塞I/O) 四、NIO(Non-blocking I/O,非阻塞I/O) 五、AIO(Asynchronous I/O,异步I/O) 同步阻塞&…

电脑无法识别固态硬盘怎么办?

随着固态硬盘(SSD)越来越普及,不少用户在给电脑更换、加装SSD时会遇到一个让人头大的问题——电脑识别不了固态硬盘。可能是开不了机,或者在“此电脑”中找不到硬盘,甚至连系统安装界面都提示“找不到驱动器”。这时候…

Kingbasepostgis 安装实践

文章目录前言一、安装准备1.1 部署方案规划1.2 SELINUX、防火墙状态检查1.3 操作系统时间检查1.4 创建用户及密码1.5 目录创建1.6 操作系统参数配置1.6.1 配置limits.conf文件二、安装2.1 上传安装包以及license授权文件2.2 拷贝安装文件2.3 命令行方式安装2.3.1简介2.3.2 许可…

移动端设备能部署的llm

mlc-llm 内置RedPajama hf示例模型 TheBloke/Mistral-7B-Instruct-v0.2-GGUF https://github.com/mlc-ai/mlc-llm/tree/main llama.cpp https://github.com/ggml-org/llama.cpp reference --- MLC-LLM:大模型如何部署到浏览器 / 手机?完整流程复现…

Ubuntu硬盘挂载

一、在 Ubuntu 中,你可以用以下命令快速查看 所有已连接但尚未挂载的硬盘和分区:lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINT,UUID输出中 MOUNTPOINT 为空的行,就是 未挂载的分区。sda ├─sda1 500M ext4 /boot ├─sda2 1.8T ntfs └─sda3 …

JavaScript -Socket5代理使用

axios 安装两个包 socks-proxy-agent,axios const { SocksProxyAgent } require(socks-proxy-agent); const axios require(axios);const socks5Axios axios.create();const socks5 () > {const socks5Agent new SocksProxyAgent("socks5://112.194.8…

[特殊字符] 从数据库无法访问到成功修复崩溃表:一次 MySQL 故障排查实录

一次典型的 MySQL 故障排查与修复全过程,涵盖登录失败、表崩溃、innodb_force_recovery 救援、坏表剔除与数据恢复等关键操作。一、问题背景某业务系统运行多年,数据库使用的是 MySQL 8.0.18,近期在一次服务器重启后,发现无法正常…

【Agent】API Reference Manual(API 参考手册)

https://github.com/Intelligent-Internet/CommonGround/blob/main/docs/framework/03-api-reference.md 以下是这份 API Reference Manual(API 参考手册) 的完整中文翻译: API 参考手册 版本:0.1 目录 概览 1.1 API 目的 1.2 通信协议与核心概念 HTTP API 2.1 POST /se…

LeetCode Hot 100 全排列

给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。示例 1:输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例 2:输入:nums [0,1]…

AI大模型如何有效识别和纠正数据中的偏见?

当下,人工智能大模型已成为推动各行业发展的关键力量,广泛应用于自然语言处理、图像识别、医疗诊断、金融风控等领域,为人们的生活和工作带来了诸多便利。然而,随着其应用的不断深入,数据偏见问题逐渐浮出水面&#xf…

如何通过内网穿透,访问公司内部服务器?

“凌晨2点,销售总监王姐在机场候机时突然接到客户电话——对方要求立即查看产品库存数据。她慌忙翻出笔记本电脑,却发现公司内网数据库没有公网IP,VPN连接又卡在验证环节……这样的场景,是否让你想起某个手忙脚乱的时刻&#xff1…

12. isaacsim4.2教程-ROS 导航

1. Teleport 示例 ROS 服务的作用: 提供了一种同步、请求-响应的通信方式,用于执行那些需要即时获取结果或状态反馈的一次性操作或查询。 Teleport 服务在 ROS 仿真(尤其是 Gazebo)和某些简单机器人控制中扮演着瞬移机器人或对象…

DeepSpeed-FastGen:通过 MII 和 DeepSpeed-Inference 实现大语言模型的高吞吐文本生成

温馨提示: 本篇文章已同步至"AI专题精讲" DeepSpeed-FastGen:通过 MII 和 DeepSpeed-Inference 实现大语言模型的高吞吐文本生成 摘要 随着大语言模型(LLM)被广泛应用,其部署与扩展变得至关重要&#xff0…