如何在服务器端获取文件元数据

问题描述 投票:0回答:1

我正在编写一个块,其中收集视频文件元数据并将其发送到我的块表,但问题是
我想通过检查元数据来验证服务器端的数据。例如,视频的持续时间 = 300 秒,
现在我想验证 timeduration 变量值不能超过 300 ,那么我如何在服务器端检索该文件信息并使用我的变量进行验证。

如果值不超过总时间限制,那么我可以插入到数据库

目前我正在检索三个可以验证的值,
courseid、resrouce id 和实例 id
这三个值与文件信息相关联,但我无法了解如何获取文件元数据。

我尝试了各种网站和所有详细信息,但找不到任何解决方案。

moodle moodle-api
1个回答
0
投票

我知道我在这个问题上来得有点晚了,但我今天也遇到了同样的问题。 我有几个解决方案,但我使用了我安装在运行moodle的服务器上的FFMPEG,(你需要php 8,但如果你运行moodle 4.x,应该已经是这种情况了)

然后我通过这种方式获取信息:

if (isset($vid) && file_exists($vid)) { //$vid url got with file API
    $ffprobe = FFMpeg\FFProbe::create();
    $vidInfo = array(
        'format' => $ffprobe->format($vid) // extracts file informations,
        'length' => $ffprobe->->get('duration'); // returns the duration property,
    );
    return $vidInfo;
}

您可以在这里找到它的文档:https://github.com/PHP-FFMpeg/PHP-FFMpeg/blob/master/README.md

您还可以找到多种解决方案,例如https://github.com/JamesHeinrich/getID3

但请记住,可能必须在服务器上安装某些东西(无论是使用 Composer 还是在块插件文件中导入一些代码)

© www.soinside.com 2019 - 2024. All rights reserved.