docker中部署Universal Media Server (UMS)

Universal Media Server (UMS) 本身主要是作为桌面服务程序开发的(主要面向 Java GUI + DLNA 播放),但确实可以通过 Docker 进行部署。虽然官方没有提供 Docker 镜像,但社区有一些可用的方式可以在 Docker 中运行它。

下面是一个可行的 UMS Docker 部署方案(基于社区维护的镜像),并带有设置媒体文件挂载与配置保存的步骤。


✅ 步骤:Docker 中部署 Universal Media Server (UMS)

🧱 1. 拉取 Docker 镜像(推荐镜像:lancachenet/umsumsdocker/ums

docker pull umsdocker/ums 

或者也可以选择另一个社区镜像(功能类似):
docker pull lancachenet/ums


📂 2. 创建媒体文件和配置目录(例如挂载到 /mnt/media/mnt/config

mkdir -p ~/ums/media 
mkdir -p ~/ums/config 

将你的视频文件放到 ~/ums/media 中。


▶️ 3. 运行 UMS 容器

docker run -d \--name ums \-p 5001:5001 \-p 9001:9001 \-v ~/ums/media:/media \-v ~/ums/config:/config \--restart unless-stopped \umsdocker/ums
参数说明:
参数作用
-p 5001:5001DLNA 默认服务端口
-p 9001:9001UMS Web 界面端口
-v ~/ums/media:/media将你的本地媒体文件目录挂载进容器
-v ~/ums/config:/config配置文件持久化
--restart unless-stopped自动重启容器


🌐 4. 访问 UMS Web 界面(如果支持)

某些版本带 Web 控制台,可访问:

http://<你的主机IP>:9001/ 

注意:UMS 更常通过 DLNA(电视、PS、DLNA 客户端)使用,而非 Web 播放。如果你想 Web 播放电影,建议用 Jellyfin 或 Plex。


📁 配合 SMB 网络驱动器访问媒体文件

  1. ~/ums/media 目录通过 Samba 共享出去(在宿主机设置),

  2. Windows 端就可以通过 \\host-ip\media 映射成网络驱动器,

  3. 同时 DLNA 客户端也能通过 UMS 播放媒体内容。


🚨 注意事项

  • UMS 偏向 DLNA 播放器,Web UI 和跨平台体验不如 Jellyfin。

  • 它适用于电视、PS4、老式 DLNA 播放器自动发现媒体服务。

  • 如果你更倾向于 Web 播放 + 多客户端支持,建议 Jellyfin。

     

🎯 目标

  1. 使用 docker-compose 部署 Universal Media Server (UMS)。

  2. 使用 Samba(SMB)共享 /media 文件夹给 Windows,本地网络中可映射为网络驱动器。

  3. 所有数据(视频、配置)保存在宿主机上,便于管理与重启持久化。


📁 目录结构建议(可自由修改)

~/ums-docker/
├── docker-compose.yml
├── media/          ← 存放视频
└── config/         ← 存放UMS配置文件

✅ 第一步:编写 docker-compose.yml

请在 ~/ums-docker/ 目录下创建 docker-compose.yml 文件,内容如下:

version: '3.8'services:ums:image: umsdocker/umscontainer_name: umsports:- "5001:5001"  # DLNA 服务端口- "9001:9001"  # (如果有)Web 管理界面volumes:- ./media:/media- ./config:/configrestart: unless-stopped

✅ 第二步:运行容器

cd ~/ums-docker
docker-compose up -d

启动后,UMS 会开始在局域网中广播 DLNA 服务,可被电视、PS、VLC 等自动发现。


✅ 第三步:配置 Samba 共享 /media 文件夹

下面以 Ubuntu 为例说明如何将 ~/ums-docker/media 共享给 Windows 用户访问。

1. 安装 Samba:

sudo apt update
sudo apt install samba

2. 编辑配置文件:

sudo nano /etc/samba/smb.conf 

在文件末尾添加:

[Media]path = /home/你的用户名/ums-docker/mediabrowseable = yesread only = noguest ok = yescreate mask = 0777directory mask = 0777

请把 /home/你的用户名 改成你实际用户名的路径。

3. 重启 Samba 服务:

sudo systemctl restart smbd 

4. 设置文件夹权限(如果你使用 guest ok):

chmod -R 777 ~/ums-docker/media 

✅ 第四步:Windows 端访问共享媒体

在文件资源管理器中输入地址:

\\你的Linux主机IP地址\Media 

也可以右键“此电脑” → “映射网络驱动器” → 输入上述路径 → 映射为 Z:盘或其他。


🧪 可选测试方式

你可以使用手机上的 VLC、电视、PlayStation、Windows 下的播放器(如 PotPlayer)测试是否能发现 DLNA 服务。


✅ 可选推荐:添加 Jellyfin 做 Web 播放(如你不只面向 DLNA)

我可以帮你在同一个 docker-compose.yml 中加入 Jellyfin,这样你就可以同时:

  • 用 Jellyfin 网页观看视频(多端支持)

  • 用 UMS 提供 DLNA 播放

  • 用 Samba 共享给 Windows 管理

如果你也想要这个方案,我可以一并给你添加。

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

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

相关文章

配置文件,xml,json,yaml,我该选哪个?

文章目录 一、核心特性对比二、性能与生态系统三、适用场景与选型建议四、替代方案与趋势五、总结 在软件开发中&#xff0c;配置文件格式的选择直接影响开发效率和维护成本。XML、JSON、YAML 是目前主流的三种格式&#xff0c;但它们各有适用场景和局限性。本文将从语法特性、…

产品迭代与放弃的判断:MVP、PMF 与 Scale Fit 的三重验证

在创业和产品管理的世界里&#xff0c;一个永恒的难题是&#xff1a;什么时候应该继续投入资源进行产品迭代&#xff1f;什么时候又该果断放弃&#xff1f; 这是一个既关乎战略方向&#xff0c;又涉及资源分配的核心命题。许多初创公司或产品团队往往在错误的方向上坚持太久&a…

DAY 35 模型可视化与推理

知识点回顾&#xff1a; 三种不同的模型可视化方法&#xff1a;推荐torchinfo打印summary权重分布可视化进度条功能&#xff1a;手动和自动写法&#xff0c;让打印结果更加美观推理的写法&#xff1a;评估模式 作业&#xff1a;调整模型定义时的超参数&#xff0c;对比下效果。…

20250523-BUG-E1696:无法打开元数据文件“platform.winmd(已解决)

BUG&#xff1a;E1696&#xff1a;无法打开元数据文件“platform.winmd&#xff08;已解决&#xff09; 最近在用VisualStudio2022打开一个VisualStudio2017的C老项目后报了这个错&#xff0c;几经周折终于解决了&#xff0c;以下是我用的解决方法&#xff1a; 将Debug从Win32改…

Hellorobot 移动操作机器人开源实践:HPR 模型 + 全栈资源,降低家庭机器人开发门槛

Hellorobot在DobbE框架中扮演了重要的技术支柱角色。通过其尖端的模块化设计和高效算法优化&#xff0c;Hellorobot为家庭机器人领域注入了强大的创新动力。DobbE框架的核心技术——Home Pretrained Representations (HPR) 模型&#xff0c;得益于Hellorobot的技术支持&#xf…

onnx模型转入rknn3399平台上工作记录

1.rknn虚拟环境使用时报错问题 使用rknn17环境的报错&#xff1a; ImportError: libdc1394.so.22: cannot open shared object file: No such file or directory 参考链接&#xff1a;https://blog.csdn.net/2301_80032564/article/details/142316410 创作软连接&#xff1a; …

杰发科技AC7840——CSE硬件加密模块使用(1)

1. 简介 2. 功能概述 3. 简单的代码分析 测试第二个代码例程 初始化随机数 这里的CSE_CMD_RND在FuncID中体现了 CSE_SECRET_KEY在17个用户KEY中体现 最后的读取RNG值&#xff0c;可以看出计算结果在PRAM中。 总的来看 和示例说明一样&#xff0c;CSE 初次使用&#xff0c;添加…

AI要掌握的知识

AI&#xff08;人工智能&#xff09;是一个跨学科的复杂领域&#xff0c;其知识体系涵盖理论基础、技术工具和实践应用等多个层面。以下从核心知识模块、技术工具、实践方向等角度&#xff0c;详细梳理 AI 从业者需要掌握的知识体系&#xff1a; 一、数学基础&#xff1a;AI 的…

Python Click库:轻松构建优雅的命令行工具

Python Click库&#xff1a;轻松构建优雅的命令行工具 引言一、Click 适用场景二、安装 Click三、基础使用1. 第一个 Click 程序2. 添加位置参数3. 使用选项参数 四、高级功能1. 子命令分组&#xff08;多级命令&#xff09;2. 参数类型验证3. 彩色终端输出 五、实用功能示例&a…

三种常见脉冲神经网络编码方式解读

速率编码&#xff08;rate coding) 速率编码使用输入特征来确定尖峰频率&#xff0c;例如将静态输入数据&#xff08;如 MNIST 图像&#xff09;转换为时间上的脉冲&#xff08;spike&#xff09;序列。它是将神经元发放脉冲的频率与输入值&#xff08;如像素强度&#xff09;…

Selenium 测试框架 - Python

🚀Selenium Python 实战指南:从入门到进阶 Selenium 是 Web 自动化测试中最受欢迎的工具之一,支持多种浏览器和语言。本文将从环境搭建到多浏览器兼容、测试框架集成、元素定位方式、常用操作、浏览器配置等多个方面进行详细讲解,并分享常见的最佳实践建议。 📦一、环境…

第四十九节:图像分割-基于深度学习的图像分割

1. 引言 在计算机视觉领域,图像分割(Image Segmentation)是一项基础且关键的技术,其目标是将图像划分为多个具有特定语义的区域。随着深度学习技术的突破,基于神经网络的图像分割方法在精度和效率上都实现了质的飞跃。本文将重点介绍如何利用OpenCV结合深度学习模型实现高…

【GESP】C++三级真题 luogu-B4039 [GESP202409 三级] 回文拼接

GESP三级真题&#xff0c;字符串相关题目&#xff0c;难度★★✮☆☆。 题目题解详见&#xff1a;https://www.coderli.com/gesp-3-luogu-b4039/ 【GESP】C三级真题 luogu-B4039 [GESP202409 三级] 回文拼接 | OneCoderGESP三级真题&#xff0c;字符串相关题目&#xff0c;难…

什么是深度学习中的层次分类问题?

深度学习中的层次分类问题&#xff08;Hierarchical Classification&#xff09;是指分类任务中存在类别间的层次结构&#xff0c;且模型需要根据这种层次关系进行预测的问题。与传统的扁平分类&#xff08;Flat Classification&#xff09;不同&#xff0c;层次分类要求模型在…

黑马点评-乐观锁/悲观锁/synchronized/@Transactional

文章目录 全局ID生成器超卖乐观锁 一人一单悲观锁 当我们确认订单时&#xff0c;系统需要给我们返回我们的订单编号。这个时候就会出现两个大问题。 1.订单id采用数据库里的自增的话&#xff0c;安全性降低。比如今天我的订单是10&#xff0c;我明天的订单是100&#xff0c;那…

python下通过wmic设置程序的优先级~~~

在开发过程中&#xff0c;经常会碰到需要设置程序优先级&#xff0c;这时候可以手动到任务管理器中调整&#xff0c;但是这多多少少有些不方便&#xff0c;那么这时候我们就可以通过subprocess调用wmic命令来实现&#xff0c;方法如下: step 1 必要的引用: import subprocess…

在Mac中使用pyenv管理Python版本:从安装到虚拟环境的全流程指南

# 在Mac中使用pyenv管理Python版本&#xff1a;从安装到虚拟环境的全流程指南 ## 一、为什么选择pyenv&#xff1f; 在开发过程中&#xff0c;不同项目往往需要不同的Python版本&#xff08;如3.8 vs 3.10&#xff09;&#xff0c;而系统默认的Python环境难以满足灵活切换的需…

FFT Shift

在频域图像处理中,交换四个象限实现FFT移位(也称为FFT Shift)是一种将频域图像的低频成分移动到中心的标准化操作。 1. 为什么需要FFT移位? 原始FFT输出特性: 二维FFT的直接计算结果中: 低频分量(图像的整体亮度和平滑部分)位于频谱图的四个角落 高频分量(边缘、细节…

python打卡day34@浙大疏锦行

知识点回归&#xff1a; CPU性能的查看&#xff1a;看架构代际、核心数、线程数GPU性能的查看&#xff1a;看显存、看级别、看架构代际GPU训练的方法&#xff1a;数据和模型移动到GPU device上类的call方法&#xff1a;为什么定义前向传播时可以直接写作self.fc1(x) ①CPU性能查…

Windows 配置 ssh 秘钥登录 Ubuntu

在 Windows 上推送 SSH 公钥到远程服务器&#xff08;类似于 Linux 上的 ssh-copy-id&#xff09;可以通过以下几种方法实现&#xff1a; ** 手动复制公钥内容** 查看本地公钥内容&#xff1a;type $env:USERPROFILE\.ssh\id_rsa.pub登录远程服务器&#xff0c;将公钥内容粘贴…