ffmpeg+nginx搭建HLS 推流

因项目需要,需要在开发环境搭建一个HLS 推流。实现步骤如下:

安装ffmpeg

bash 复制代码
yum install ffmpeg -y

在一个目录下上传001.mp4、002.mp4作为测试推流的原始文件。使用ffmpeg 进行转换。

001.sh

bash 复制代码
#!/bin/sh
`在这里插入代码片`nohup ffmpeg -stream_loop -1 \
  -i /data/public/video/mp4/001.mp4 \
  -c:v libx264 -preset veryfast -crf 23 \
  -c:a aac -b:a 128k \
  -hls_time 4 \
  -hls_list_size 20 \
  -hls_flags delete_segments \
  -f hls \
  /data/public/video/m3u8/001/index.m3u8 \
  > /data/public/video/m3u8/001/ffmpeg.log 2>&1 &

002.sh

bash 复制代码
#!/bin/sh
nohup ffmpeg -stream_loop -1 \
  -i /data/public/video/mp4/002.mp4 \
  -c:v libx264 -preset veryfast -crf 23 \
  -c:a aac -b:a 128k \
  -hls_time 4 \
  -hls_list_size 20 \
  -hls_flags delete_segments \
  -f hls \
  /data/public/video/m3u8/002/index.m3u8 \
  > /dev/null 2>&1 &

配置Nginx

bash 复制代码
# 核心配置:代理 HLS 视频目录
location /hls/ {
    # 1. 指定视频文件在服务器上的实际根目录
    # 注意:路径末尾的 '/' 很重要
    alias /data/public/video/m3u8/;

    # 2. 正确设置 MIME 类型,这是 HLS 播放的关键
    types {
        application/vnd.apple.mpegurl m3u8;
        video/mp2t ts;
    }

    # 3. 解决跨域问题 (CORS),允许前端页面访问
    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Methods' 'GET, OPTIONS';
    add_header 'Access-Control-Allow-Headers' 'Range';
    
    # 4. 优化缓存策略
    # m3u8 文件更新频繁,不缓存或缓存时间很短
    # ts 分片文件生成后不变,可以长期缓存
    expires 1y;
    add_header Cache-Control "public, immutable";
}

两个访问地址分别如下:

https://192.168.31.100/hls/001/index.m3u8

https://192.168.31.100/hls/001/index.m3u8

相关推荐
wanhengidc5 小时前
服务器租用有何优点
运维·服务器·安全·web安全
ZGi.ai5 小时前
人工审查节点:让自动化工作流多一步人工把关
运维·人工智能·自动化·人机协同·智能体工作流·人工审查
艾莉丝努力练剑5 小时前
【Linux:文件】Ext系列文件系统进阶
linux·运维·服务器·c++·文件系统·文件io·ext
海市公约5 小时前
Linux核心基础命令与权限管理实战指南
linux·运维·服务器·vim·权限管理·系统监控·命令行
wkd_0076 小时前
Ubuntu 22.04 Samba 连接故障排查记:从“用户名或密码错误”到 NTLM 版本不兼容
linux·运维·ubuntu
企服AI产品测评局6 小时前
Agent适配信创环境实测:企业级自动化如何实现国产操作系统与数据库全兼容?
运维·数据库·人工智能·ai·chatgpt·自动化
mixboot7 小时前
Linux 进程工作目录查看利器:pwdx 命令详解
linux·运维·服务器
盖小雅7 小时前
自动化排班如何破解劳动法合规难题:从规则冲突到可追溯的排班表
大数据·运维·机器学习·自动化
NiceCloud喜云8 小时前
Claude Code Routines 实战:三种触发器跑通云端自动化编码
android·运维·数据库·人工智能·自动化·json·飞书
zhz521410 小时前
服务器等保加固实施报告
运维·服务器·信创·国密·等保