基于Docker部署M3U8流媒体

本方案基于Docker + Nginx-RTMP + Nginx,实现将本地 MP4 文件转换为 24/7 循环播放的 HLS (M3U8) 直播流。

一、 环境准备

1、操作系统

  • 已安装宝塔面板的 Linux 服务器(推荐 CentOS 7+ 或 Ubuntu 20.04+)。

2、基础软件

  • 宝塔面板内已安装Nginx
  • 系统已安装Docker(可在宝塔“软件商店”一键安装)。
  • 系统已安装FFmpeg(支持libx264的版本)

下载支持 libx264 的 FFmpeg:

https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz

解压后,将 ffmpeg 和 ffprobe 复制到 /usr/bin 目录下。

二、启动 Docker 容器

在终端执行以下命令,启动 RTMP 转流服务器。需要将 Docker 内部的流文件目录映射到宝塔的站点目录下,方便直接访问。

注意:先创建/hls文件夹。

docker run -d --name nginx-rtmp \ -p 1935:1935 \ -p 8088:8080 \ -v /projects/nginx.conf:/etc/nginx/nginx.conf \ -v /projects/hls:/opt/data/hls \ alfg/nginx-rtmp

启动后会生成 /projects/nginx.conf

里面包含推流的链接示例:

rtmp://localhost:1935/stream/$name

查看 docker 输出:

docker logs --tail 200 nginx-rtmp

三、设置 hls 目录权限

用 ACL 的“默认权限(default ACL)”,让将来新生成的所有文件/目录自动拥有权限,后面nginx访问不会再报错403/Permission denied

# 安装 ACL yum -y install acl # 永久读写执行权限 setfacl -R -m u:www:rwx /projects/hls # 保证新文件也有权限 setfacl -R -d -m u:www:rwx /projects/hls # 验证 getfacl /projects/hls | sed -n '1,20p'

四、启动 FFmpeg 循环推流

使用 FFmpeg 对视频裁剪+转码:

ffmpeg -i video.mp4 -t 00:15:00 -c:v libx264 -c:a aac output.mp4

启动循环推流:

nohup ffmpeg -re -stream_loop -1 -i /projects/input.mp4 -c:v libx264 -preset veryfast -tune zerolatency -profile:v baseline -level 3.1 -g 60 -keyint_min 60 -sc_threshold 0 -c:a aac -b:a 128k -ar 44100 -f flv "rtmp://127.0.0.1:1935/stream/test" > /tmp/log1.txt 2>&1 &

性能优化建议:

如果服务器 CPU 较弱,且 MP4 已经是 H.264 编码,可以将 -c:v libx264 改为 -c:v copy,这样可以极大降低 CPU 占用。

查看 /projects/hls 目录,看是否有生成 M3U8 文件和 ts 文件。

五、宝塔 Nginx 配置(HTTP / HTTPS 播放)

在 宝塔 → 网站 → 你的站点 → 配置文件 中加入:

location ^~ /hls/ { alias /projects/hls/; types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } add_header Cache-Control no-cache; add_header Access-Control-Allow-Origin * always; if ($request_method = OPTIONS) { return 204; } disable_symlinks off; }

查看 nginx 错误输出:

tail -n 30 /www/wwwlogs/my.domain.com.error.log

六、 播放与验证

直播流生成的地址如下,您可以使用 VLC 播放器或网页 HLS 播放器测试:

  • 视频流http://你的域名/hls/test_****/index.m3u8

在服务器上使用CURL指令测试视频流链接是否返回200

curl -I http://my.domain.com/hls/test_240p264kbs/index.m3u8

前端HTML嵌入视频流:

<video controls autoplay muted loop playsinline> <source src="http://my.domain.com/hls/test_720p2628kbs/index.m3u8" type="application/x-mpegURL"> 您的浏览器不支持 HLS 原生播放。 </video>

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

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

相关文章

华为光学工程师面试题

一、 基础理论类1. 请解释球差、彗差、场曲的成因及对应的校正方法◦ 答题思路&#xff1a;先点明像差类型&#xff08;轴上/轴外&#xff09;&#xff0c;再讲成因&#xff0c;最后说校正手段&#xff0c;结合工程实例。◦ 参考回答&#xff1a;球差是轴上点单色光成像的像差&…

国外研究文献去哪里找:实用检索渠道与方法指南

刚开始做科研的时候&#xff0c;我一直以为&#xff1a; 文献检索就是在知网、Google Scholar 里反复换关键词。 直到后来才意识到&#xff0c;真正消耗精力的不是“搜不到”&#xff0c;而是—— 你根本不知道最近这个领域发生了什么。 生成式 AI 出现之后&#xff0c;学术检…

AI媒体助理软件批量文章生成设置教程

配置批量生成文章的任务我们可以创建多条&#xff0c;让他同时进行生成任务&#xff08;使用web模型的时候不可以&#xff0c;只支持API模型批量同时进行&#xff0c;web模型只能单线程&#xff09;添加任务我们可以选择任务名称、文章分类、文字类型&#xff08;长文、短文、视…

【实战项目】 基于BP神经网络的情感机器人玩具的设计与实现

运行效果:https://lunwen.yeel.cn/view.php?id=5979 基于BP神经网络的情感机器人玩具的设计与实现摘要:本文针对情感机器人玩具在幼儿教育中的应用,提出了一种基于BP神经网络的情感识别与响应机制。首先,对情感机…

机械制造领域网页,JAVA如何实现大文件的分块与秒传?

大文件传输系统技术方案 一、技术选型与架构设计 作为项目负责人&#xff0c;我主导设计了基于现有技术栈的混合架构方案&#xff1a; 前端架构&#xff1a;采用Vue2 CLI框架兼容模式&#xff0c;通过Webpack配置同时支持Vue2/Vue3组件&#xff0c;通过条件编译实现React项目…

2026铝镁锰/铝镁锰板/铝镁锰合金屋面/金属屋面板厂家推荐,专业施工品质保障!

2026铝镁锰合金屋面系统:技术挑战与专业厂家的价值选择 在当代大型公共建筑与高端商业设施的建设中,金属屋面系统以其卓越的耐久性、丰富的造型能力和高效的施工速度,已成为主流选择。其中,以3004牌号(常被市场称…

国外的文献资料在哪里查?实用查询途径与方法指南

刚开始做科研的时候&#xff0c;我一直以为&#xff1a; 文献检索就是在知网、Google Scholar 里反复换关键词。 直到后来才意识到&#xff0c;真正消耗精力的不是“搜不到”&#xff0c;而是—— 你根本不知道最近这个领域发生了什么。 生成式 AI 出现之后&#xff0c;学术检…

写论文找不到外国文献?方法合集来了!——轻松获取国外文献的实用技巧分享

刚开始做科研的时候&#xff0c;我一直以为&#xff1a; 文献检索就是在知网、Google Scholar 里反复换关键词。 直到后来才意识到&#xff0c;真正消耗精力的不是“搜不到”&#xff0c;而是—— 你根本不知道最近这个领域发生了什么。 生成式 AI 出现之后&#xff0c;学术检…

BLDC直流无刷电机控制方案 采用R5F0C807控制,通过3三路具有中断触发功能的输入端口采...

BLDC直流无刷电机控制方案 采用R5F0C807控制&#xff0c;通过3三路具有中断触发功能的输入端口采集霍尔传感器输出信号 功能包括:启动/停止电机&#xff0c;电流检测&#xff0c;转速控制&#xff0c;过流保护等 资料包含:原理图&#xff0c;PCB&#xff0c;源代码&#xff0c;…

外文文献查找的6个途径及相关方法指南

刚开始做科研的时候&#xff0c;我一直以为&#xff1a; 文献检索就是在知网、Google Scholar 里反复换关键词。 直到后来才意识到&#xff0c;真正消耗精力的不是“搜不到”&#xff0c;而是—— 你根本不知道最近这个领域发生了什么。 生成式 AI 出现之后&#xff0c;学术检…

刷机固件是【当贝桌面4.0】误认为卡启动界面无法进入系统操作说明

刷机固件是【当贝桌面4.0】误认为卡启动界面无法进入系统操作说明刷机后很多人会遇到卡到这个界面&#xff0c;无法进入系统的问题其实这个不是有问题&#xff0c;是因为没有点击同意授权处理方法&#xff1a;1、按遥控器返回键&#xff0c;点击我已阅读并且同意后就正常了2、选…

2026汽车AI市场分析榜单原圈科技揭示决胜未来的秘诀

在2026年激烈的汽车AI市场分析竞争中&#xff0c;原圈科技的"洞察家"平台被普遍视为行业标杆。其在全景数据整合、深度洞察与敏捷策略生成等多个维度下表现突出&#xff0c;为车企提供了从洞察到客户服务的智慧营销中枢&#xff0c;是企业在该领域实现智能化转型的理…

外文文献去哪里找?这几大渠道别再错过了——实用查找渠道分享

刚开始做科研的时候&#xff0c;我一直以为&#xff1a; 文献检索就是在知网、Google Scholar 里反复换关键词。 直到后来才意识到&#xff0c;真正消耗精力的不是“搜不到”&#xff0c;而是—— 你根本不知道最近这个领域发生了什么。 生成式 AI 出现之后&#xff0c;学术检…

2026年高温连续石墨化炉厂家排名,株洲诺天电热科技上榜!

2026年新能源与半导体产业爆发式增长,热工装备作为材料提纯、烧结的核心载体,直接决定下游产品的性能与良率。无论是万吨级产能需求的高温连续石墨化炉,还是适配科研场景的实验型石墨化炉,优质设备厂家的技术实力、…

国外期刊论文搜索网站使用指南:高效查找学术资源的实用平台

刚开始做科研的时候&#xff0c;我一直以为&#xff1a; 文献检索就是在知网、Google Scholar 里反复换关键词。 直到后来才意识到&#xff0c;真正消耗精力的不是“搜不到”&#xff0c;而是—— 你根本不知道最近这个领域发生了什么。 生成式 AI 出现之后&#xff0c;学术检…

【实战项目】 移动端WebApp的桌面化适配方案

运行效果:https://lunwen.yeel.cn/view.php?id=5978 移动端WebApp的桌面化适配方案摘要:随着移动互联网的快速发展,移动端WebApp逐渐成为人们获取信息、进行交互的重要途径。然而,移动端WebApp在桌面端的显示和交…

如何查找国外期刊 国外期刊怎么找 国外期刊查找方法指南

刚开始做科研的时候&#xff0c;我一直以为&#xff1a; 文献检索就是在知网、Google Scholar 里反复换关键词。 直到后来才意识到&#xff0c;真正消耗精力的不是“搜不到”&#xff0c;而是—— 你根本不知道最近这个领域发生了什么。 生成式 AI 出现之后&#xff0c;学术检…

为什么程序员,越来越排斥面试时做题?

HR问&#xff1a;“以前线下笔试各种被程序员排斥&#xff0c;现在我用了线上测评&#xff0c;效果好多了&#xff0c;程序员会接受吗&#xff1f;”最近在知乎上发现这么一个话题&#xff1a;为什么程序员越来越排斥面试时做题&#xff1f;其中有几个回答挺有意思的&#xff0…

从夯到拉,锐评13个JavaWeb框架

先叠个甲 以下评价基于技术特性、生态成熟度、市场采用情况等客观维度&#xff0c;不代表对任何框架的贬低。 技术选型应根据具体场景&#xff0c;没有银弹。 不同项目有不同需求&#xff0c;合适的才是最好的。 评价维度说明 性能表现&#xff1a;吞吐量、响应时间、资源占…

原圈科技AI市场分析让客户需求“说“出来,赢在2026!

原圈科技AI市场分析&#xff0c;致力于为企业构建从洞察到增长的全流程智能闭环。通过整合全域数据、深度挖掘趋势、激发潜在需求并生成智能策略&#xff0c;其"AI专家"模式表现突出&#xff0c;帮助企业精准预见商机&#xff0c;实现营销投资回报率的显著提升&#…