docker搭建mstream

news/2024/5/2 11:33:40

mstream 是一个基于 M3U8 格式的直播流媒体服务器,它支持从多种源获取直播流,包括本地文件、网络流等,并将它们转换成 M3U8 格式的直播流,供客户端播放。mstream 特别适用于需要将非标准直播源转换为标准 HLS (HTTP Live Streaming) 格式的场景。

功能介绍

  • 多源支持:mstream 能够处理来自不同来源的直播流,包括本地文件、远程 URL 等。
  • 格式转换:将各种格式的直播流转换为 M3U8 格式,适用于 HLS 客户端。
  • 简单配置:配置文件简洁,易于设置不同的直播流参数。
  • 实时处理:支持实时处理直播流,转换延时低。

实际应用场景

  • 个人直播:个人用户可以使用 mstream 搭建自己的直播服务,播放本地视频文件或转播网络直播。
  • 在线教育:教育机构可以利用 mstream 将录制的视频转换为直播流,供学生在线观看。
  • 企业直播:企业可以将内部活动或发布会等实时视频通过 mstream 转换为 HLS 格式,供员工或客户在线观看。

使用 Docker CLI 搭建 mstream

拉取 mstream Docker 镜像
docker pull xiaohuangyu/mstream【参考链接】
运行 mstream 容器
docker run -d \--name mstream \-p 1935:1935 \-p 8080:8080 \-v /path/to/config:/usr/local/nginx/conf \xiaohuangyu/mstream

参数解释

  • -d: 后台运行容器。
  • --name mstream: 为容器指定一个名称。
  • -p 1935:1935: 将容器的 1935 端口映射到宿主机的 1935 端口,用于接收直播流。
  • -p 8080:8080: 将容器的 8080 端口映射到宿主机的 8080 端口,用于访问 HLS 播放页面。
  • -v /path/to/config:/usr/local/nginx/conf: 将宿主机的配置文件目录挂载到容器内的配置文件目录。
  • xiaohuangyu/mstream: 使用的 Docker 镜像名称。

使用 Docker Compose 搭建 mstream

创建 docker-compose.yml 文件
version: '3'
services:mstream:image: xiaohuangyu/mstreamcontainer_name: mstreamports:- "1935:1935"- "8080:8080"volumes:- /path/to/config:/usr/local/nginx/conf
启动 mstream 服务
docker-compose up -d

参数解释

  • version: Docker Compose 文件版本。
  • image: 指定使用的 Docker 镜像。
  • container_name: 为容器指定一个名称。
  • ports: 端口映射,将容器的端口映射到宿主机的端口。
  • volumes: 挂载宿主机目录到容器内,用于存放配置文件。

通过以上步骤,可以成功搭建 mstream 服务,并根据实际需求进行直播流的接收、转换和播放。


http://www.mrgr.cn/p/78376881

相关文章

【讲解下常见的分类算法】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

模拟电路学习笔记——二极稳压管

1.稳压二极管  *硅材料制成的面接触型晶体二极管*稳压管在反向击穿时,在一定的电流范围内(或者说在一定的功率损耗范围内),端电压几乎不变,表现出稳压特性*广泛应用于稳压电源/限幅电路中 2.稳压管伏安特性*稳压器伏安特性与普通二极管类似*稳压管正向特性为指数曲线*稳压…

如何在OceanBase v4.2 中快速生成随机数据

在使用传统数据库如 MySQL 和 Oracle 时,由于缺乏多样化的随机数据生成方案,或者实现成本过高,构造随机数据的开发成本受到了影响。OceanBase在老版本中虽然有相应的解决方案,但语法复杂和性能较差等问题仍然存在。 现在&#xf…

关于MCU产品开发参数存储的几种方案

关于MCU产品开发参数存储的几种方案 Chapter1 关于MCU产品开发参数存储的几种方案Chapter2 单片机参数处理[保存与读取]Chapter3 嵌入式设备参数存储技巧Chapter4 STM32硬件I2C的一点心得(AT24C32C和AT24C64C) Chapter1 关于MCU产品开发参数存储的几种方案 原文链接 在工作中…

c++四则运算结对编程 2252416 黄子轩

一、实验内容 本次课程内容为结对编程。与我组队的同学学号为2252428. 本次结对编程的题目是小学老师要每周给同学出300道四则运算练习题。 两个运算符,100 以内的数字,不需要写答案。 需要检查答案是否正确,并且保证答案在 0..100 之间 我们使用的是c++代码 二、代码 代码如…

python 爬虫 下载百度美女图片

因为要从网上下载很多图片,一张一张的复制下载速度很慢。爬虫实现方式查找到访问图片的链接URI 访问URI获取到图片的链接 访问图片的链接,并保存图片到本地废话不多说 上代码 import requests import jsondef get_image_url():url = https://image.baidu.com/search/index?…

Linux:Redis7.2.4的简单在线部署(1)

注意:我写的这个文章是以最快速的办法去搭建一个redis的基础环境,作用是为了做实验简单的练习,如果你想搭建一个相对稳定的redis去使用,可以看我下面这个文章 Linux:Redis7.2.4的源码包部署(2)-…

李沐45_SSD实现——自学笔记

主体思路: 1.生成一堆锚框 2.根据真实标签为每个锚框打标(类别、偏移、mask) 3.模型为每个锚框做一个预测(类别、偏移) 4.计算上述二者的差异损失,以更新模型weights 先读取一张图像。 它的高度和宽度分别为561和728像素。 %matplotlib inline import …

IO基础-IO多路复用基础

Java的Selector封装了底层epoll和poll的API,可以通过指定如下参数来调用执行的内核调用, 在Linux平台,如果指定 -Djava.nio.channels.spi.SelectorProvidersun.nio.ch.PollSelectorProvider 则底层调用poll, -Djava.nio.channels.spi.Selec…

HarmonyOS实战开发-自定义通知角标、如何设定应用的桌面图标角标的功能。

介绍 本示例主要展示了设定应用的桌面图标角标的功能,使用ohos.notificationManager 接口,进行桌面角标的设置,通知的发送,获取等。 效果预览 使用说明 在使用本应用时,需安装并启动仿桌面应用;在主界面…

Linux系统一键安装DataEase结合内网穿透实现公网访问本地WebUI界面

文章目录 前言1. 安装DataEase2. 本地访问测试3. 安装 cpolar内网穿透软件4. 配置DataEase公网访问地址5. 公网远程访问Data Ease6. 固定Data Ease公网地址 前言 DataEase 是开源的数据可视化分析工具,帮助用户快速分析数据并洞察业务趋势,从而实现业务…

GPT国内怎么用

2022年11月,OpenAI发布了ChatGPT,这标志着大型语言模型在自然语言处理领域迈出了巨大的一步。ChatGPT不仅在生成文本方面表现出了惊人的流畅度和连贯性,更为人工智能应用开启了全新的可能性。 ChatGPT的推出促进了人工智能技术在多个领域的广…

【GUI软件】小红书按关键词采集笔记详情,支持多个关键词,含笔记正文、转评赞藏等,爬了1024w条!

小红书采集软件,根据关键词自动采集笔记详情。一、背景介绍 1.1 爬取目标 熟悉我的小伙伴都了解,我之前开发过2款软件:【GUI软件】小红书搜索结果批量采集,支持多个关键词同时抓取! 【GUI软件】小红书详情数据批量采集,含笔记内容、转评赞藏等,支持多笔记同时采集!现在…

提升法律文书起草效率:AlphaGPT 助力律师快速生成诉讼和仲裁文件

法律文书起草对于法律专业人士而言是一项基础而关键的任务。无论是民事、刑事还是行政诉讼,以及仲裁案件,精确的法律文书撰写对于案件的成功至关重要。然而,这一过程往往既耗时又复杂,尤其是在处理复杂的案情和面对当事人难以理解…

图片批量高效管理,支持批量转换图片格式并按比例进行放大150%,高效掌握图片

在这个数字化时代,图片已经成为我们生活和工作中不可或缺的一部分。然而,面对海量的图片文件,如何高效地进行管理、编辑和优化,成为了摆在我们面前的一大难题。现在,一款全新的图片批量管理工具来了,它能够…

进程控制

linux下进程控制,等待,退出,fork()函数,fork返回id的细节目录1.fork函数1.1如何理解fork函数有两个返回值问题1.2如何理解fork给父进程返回自己的pid,自己返回01.3如何理解同一个id值,有两个不同的值2.进程终止2.1进程退出码2.2进程退出2.2.1进程常见退出办法2.2.3exit()…

React脚手架的搭建与使用

React脚手架是开发现代Web应用的必备,其充分利用Webpack、Babel、ESlint等工具辅助项目的开发,当然这些工具也无需手动配置即可使用,脚手架的意义更多的是关注的是业务而不是工具的配置;项目的整体技术架构为:react w…

JS 中 reduce()方法及使用详解

reduce()方法可以搞定的东西特别多,就是循环遍历能做的,reduce都可以做,比如数组求和、数组求积、统计数组中元素出现的次数、数组去重等等。 reduce() 方法对数组中的每个元素执行一个由您提供的reduce函数(依次执行),将其结果汇总为单个返回值。 1、语法介绍// arr.reduc…

探索Java世界中的七大排序算法(上)

文章目录 排序的概念直接插入排序希尔排序( 缩小增量排序)选择排序堆排序冒泡排序 在计算机科学中,排序算法是一类重要的算法,它们用于将一组元素按照一定的顺序进行排列。在Java编程中,我们经常需要对数组或集合进行排序操作。本文将介绍Jav…

高并发(AQS)

AQS 抽象的队列同步器框架,主要通过程序来构建锁和同步器AQS 抽象的队列同步器框架,主要通过程序来构建锁和同步器 AQS 的全称为 AbstractQueuedSynchronizer ,翻译过来的意思就是抽象队列同步器,它和Java的Synchronized作用和一样,用来同步加锁; 特性对比ReentrantLock …