影片库

上传后仅登记元数据并生成可复制的 m3u8 地址;首次「播放」会自动 ffprobe 并写入完整索引;分片在请求时由 FFmpeg 以 copy 模式实时输出,不在磁盘保留 .ts。

拖拽或选择文件

支持:mp4, mov, mkv, webm, avi, m4v;单文件最大 2048 MB。

点击选择 或将文件拖放到此区域

工作流程

  1. 上传:仅保存源文件与数据库记录,此时 m3u8 链接已可复制,但播放器需先「准备」。
  2. 准备 / 播放:可单独「准备索引」供外链使用;点「播放」会在未准备时自动 ffprobe 并激活 m3u8。
  3. 分片:每个 .ts 请求由 PHP 调用 FFmpeg -c copy -f mpegts 直接输出到响应体,不在服务器保存 .ts 文件

说明:copy 切片在非关键帧边界可能出现短暂花屏,属流媒体常见权衡;若源为规范 MP4 通常表现良好。

运行环境

检测中…

部署提示

开发环境可执行:

php -S 127.0.0.1:8080 router.php

生产环境建议使用 Nginx / Apache 将请求转发到 index.php,并适当提高 PHP 与反向代理的超时时间,以便长视频分片输出。

项目未使用 public/ 目录;静态资源位于 assets/,源视频位于 storage/uploads/