escolalms/video

Escola 无头 LMS 视频处理

安装次数: 8,193

依赖项: 2

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:软件包

0.0.23 2024-02-14 14:26 UTC

README

codecov phpunit downloads downloads downloads

它做什么

将主题视频转换为 HLS 流。

安装

  • composer require escolalms/video

要求

  • ffmpeg必须已安装
  • 一旦EscolaLms\TopicType\TopicTypeChanged被分发,将工作ProccessVideo添加到队列

配置

您可以通过在config.php文件中的bitrates键下设置值来配置处理视频的质量和分辨率。该键接受值数组。

  • kiloBitrates参数负责视频质量。
  • scale参数负责视频分辨率,设置此参数可能会造成视频扭曲。

您还可以禁用视频处理或更改驱动器。

示例配置

return [
    'disk' => env('VIDEO_DISK', config('filesystems.default')),
    'enable' => env('VIDEO_PROCESSING_ENABLE', true),
    'bitrates' => [
        [
            'kiloBitrate' => 250, // video quality
            'scale' => '640:480' // This parameter changes the video resolution. You can omit this parameter.
        ],
        ...
    ]
];

示例

此软件包扩展了EscolaLms\TopicType软件包中的 API 资源。

  • \EscolaLms\TopicTypes\Http\Resources\TopicType\Client\VideoResource - 用 HLS 值替换值和 URL 字段
{
  "id": 1,
  "value": "course/1/topic/1/video/hls.m3u8",
  "url": "https://escolalms.com/course/1/topic/1/video/hls.m3u8"
}
  • \EscolaLms\TopicTypes\Http\Resources\TopicType\Admin\VideoResource - 添加 HLS 值
{
  "id": 1,
  "value": "course/1/topic/1/video/video.mp4",
  "url": "https://escolalms.com/course/1/topic/1/video/video.mp4",
  "hls": "course/1/topic/1/video/hls.m3u8",
  "hls_url": "https://escolalms.com/course/1/topic/1/video/hls.m3u8"
}

处理状态保存在topics表中的 JSON 字段中

  • 处理成功
{
  "ffmpeg": {
    "state": "finished",
      "path": "course/1/topic/1/video/hls.m3u8"
  }
}
  • 处理失败
{
  "ffmpeg": {
    "state" : "error",
    "message" : "Unable to probe /path/video.mp4"
  }
}

测试

运行./vendor/bin/phpunit以运行测试。请参阅tests文件夹,它是文档附录的良好起点。

测试详情 codecov phpunit

事件

  1. ProcessVideoStarted - 处理开始后分发的事件
  2. ProcessVideoFailed - 处理失败后分发的事件