escolalms / video
Escola 无头 LMS 视频处理
0.0.23
2024-02-14 14:26 UTC
Requires
- php: >=7.4 | >=8.0
- escolalms/courses: ^0
- escolalms/settings: ^0
- escolalms/topic-types: ^0
- laravel/framework: >=8.0
- league/flysystem-aws-s3-v3: ^3
- pbmedia/laravel-ffmpeg: ^8
Requires (Dev)
- orchestra/testbench: >=5.0
- phpunit/phpunit: ^9.0
README
它做什么
将主题视频转换为 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文件夹,它是文档附录的良好起点。
事件
ProcessVideoStarted
- 处理开始后分发的事件ProcessVideoFailed
- 处理失败后分发的事件