文章
278
标签
819
分类
133
开发
大前端
人工智能
小程序
桌面应用
游戏开发
服务器&网络
服务器
网络
归档
标签
友链
仰观苍穹思环宇
搜索
开发
大前端
人工智能
小程序
桌面应用
游戏开发
服务器&网络
服务器
网络
归档
标签
友链
使用FFmpeg对mp4视频批量生成m3u8文件支持客户端通过HTML5的video地址使用blob访问资源片段
发表于
2024-09-30
|
更新于
2024-11-07
|
大前端
视频
您好, 这里需要密码.
FFmpeg
blob
HLS(HTTP Live Streaming)
视频流
视频格式转换
m3u8
mp4
实时转码
文件监控
流媒体
nginx跨域配置
上一篇
HFS(HTTP File Server)详细使用方法和注意事项
下一篇
深入掌握FFmpeg:从基础操作到高级视频处理技巧全面指南
相关推荐
2024-10-11
使用WebRTC实现视频通话的指南以及多场景应用实施详细流程
2024-09-29
深入掌握FFmpeg:从基础操作到高级视频处理技巧全面指南
鸢尾花序
文章
278
标签
819
分类
133
关注我们
目录
1.
先在服务端那边做好相关的配置和资源准备
1.1.
1. 服务端设置
1.1.1.
Windows 上安装 FFmpeg
1.1.2.
Linux 上安装 FFmpeg
1.1.3.
使用 FFmpeg 生成 HLS
1.1.4.
Nginx HLS 配置示例(/www/server/panel/vhost/nginx/你要配置的站点名称.conf)
1.1.5.
配置说明
1.1.6.
创建 HLS 流
1.1.7.
访问 HLS 流
1.1.8.
最后步骤
1.1.9.
这里说一个逆向思维
1.2.
2. 客户端设置
1.3.
HTML 示例
1.3.1.
3. 关键点
1.3.2.
4. 进一步优化
2.
如果我有无数个mp4视频,如何很好的使用 FFmpeg 生成 HLS来处理这个问题呢?
2.0.1.
批量转换 MP4 到 HLS
2.0.1.1.
1. 创建脚本
2.0.1.2.
2. 修改脚本参数
2.0.1.3.
3. 赋予执行权限
2.0.1.4.
4. 运行脚本
2.0.2.
解释脚本内容
2.0.3.
访问生成的 HLS 流
2.0.4.
其他选项
2.0.4.1.
解释
2.0.4.2.
HLS 文件生成
3.
我们可以在前端使用html5的video的时候只需要跟平常一样输入服务端的mp4的资源地址就可以在前端重写后缀就可以了
3.0.1.
HTML 结构
3.0.2.
功能说明
3.0.3.
结果
4.
比如:一个上线的网站,编辑者不断的上传mp4视频,如何实时的监控到目录里面有新添加的视频,然后做计划任务批量转换呢?请给出一个合理有效的解决方案?也要考虑服务器的性能
4.0.1.
方案概述
4.0.2.
实现步骤
4.0.2.1.
1. 安装依赖
4.0.2.2.
2. 创建监控脚本
4.0.2.3.
3. 给予执行权限
4.0.2.4.
4. 启动监控脚本
4.0.2.5.
5. 监控性能和限制并发
4.0.2.6.
6. 定期清理和管理
5.
脚本如何自动运行呢?
5.0.0.1.
方法 1: 使用 nohup 后台运行脚本(用来测试,偶尔使用这个也可以)
5.0.0.2.
方法 2: 使用 screen 保持脚本运行
5.0.0.3.
方法 3: 使用 systemd 创建服务(如果生产环境的话,可以使用systemd来管理会更方便)
5.0.0.4.
方法 4: 使用 crontab 自动启动脚本
5.0.0.5.
总结
6.
但是有的时候不工作,我们可以做一些检查工作。
6.0.1.
1. 检查脚本日志输出
6.0.2.
2. 确保 inotifywait 正常工作
6.0.3.
3. 检查脚本权限
6.0.4.
4. 调试模式
6.0.5.
5. 验证 FFmpeg 的权限
6.0.6.
6. 防止脚本被系统限制(笔者做了这个设置就能工作了,如果你那里不能工作可以试试这个)
6.0.6.1.
解释命令
6.0.6.2.
为什么需要增加这个限制?
6.0.7.
7. 测试无 nohup 直接运行
7.
目前使用了nohup来运行脚本和systemd来启动这个服务,以及如何停止服务呢?
7.0.0.1.
检查 nohup 进程
7.0.0.2.
步骤 1: 杀死多余的进程
7.0.0.3.
步骤 2: 确认进程已被终止
7.0.0.4.
步骤 3: 启动单一实例
7.0.0.5.
使用 nohup 启动
7.0.0.6.
使用 systemd 启动
7.0.0.7.
步骤 4: 检查运行状态
7.0.0.8.
注意事项
7.0.0.9.
检查 systemd 服务
7.0.0.10.
终止不需要的进程
7.0.0.11.
最佳实践
7.0.0.12.
示例
8.
我想要解决我通过systemd启动服务的时候就启动一个服务而不是多个
8.0.0.1.
1. 确保服务以简单模式运行
8.0.0.2.
2. 防止多个实例
8.0.0.3.
修改你的脚本
8.0.0.4.
3. 更新服务单元文件
8.0.0.5.
4. 启动和检查服务
8.0.0.6.
5. 检查服务状态
8.0.0.7.
总结
8.0.1.
总结
最新文章
web页面版块(多列版块)流程间动画实现技术详解和相关方案
2024-11-12
使用git管理hexo博客仓库的最佳实践及问题解决
2024-11-07
mermaid在markdown编辑器里面常见的写法报错或语法报错(引用块)注意事项和解决办法
2024-11-06
CSS实现鼠标悬浮版块上去边框渐变效果以及版块悬浮边框动画渐变效果
2024-11-05
使用云服务器搭建WireGuard VPN实现外网访问
2024-11-05
上下文在计算机编程中的重要性
2024-11-04
云服务器安装nginx并且进行正向代理和反向代理剖析和演示
2024-11-01
使用PowerToys的无界鼠标在同一局域网中控制多台Windows电脑
2024-10-30
搜索
数据库加载中