我正在编写一个块,其中收集视频文件的元数据并将其发送到我的块表,但问题是
我想通过检查元数据来验证服务器端的数据。例如,视频的持续时间 = 300 秒,
现在我想验证 timeduration 变量值不能超过 300 ,那么我如何在服务器端检索该文件信息并使用我的变量进行验证。
如果值不超过总时间限制,那么我可以插入到数据库。
目前我正在检索三个可以验证的值,
courseid、resrouce id 和实例 id
这三个值与文件信息相关联,但我无法了解如何获取文件元数据。
我尝试了各种网站和所有详细信息,但找不到任何解决方案。
我知道我在这个问题上来得有点晚了,但我今天也遇到了同样的问题。 我有几个解决方案,但我使用了我安装在运行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 还是在块插件文件中导入一些代码)