使用php完成一个读取该php文件下raido文件中的视频列表,且在下方产生360p预览
时间: 2023-06-20 18:06:12 浏览: 111
首先,需要确保服务器上已经安装了 FFMPEG 工具。然后,我们可以使用 PHP 的 glob() 函数来获取指定目录下的所有文件,并使用正则表达式来筛选出视频文件。
以下是一个示例代码,可以读取指定目录下的所有视频文件,并在页面下方生成 360p 的预览。
```php
<?php
// 视频目录路径
$video_dir = '/path/to/videos';
// 匹配视频文件的正则表达式
$video_pattern = '/\.(mp4|avi|mov)$/i';
// 获取视频文件列表
$videos = glob($video_dir . '/*');
$videos = preg_grep($video_pattern, $videos);
// 生成视频预览
foreach ($videos as $video) {
$preview_url = generate_preview($video, '360p');
echo "<div><video src='$preview_url' controls></video></div>";
}
/**
* 生成指定分辨率的视频预览
*
* @param string $video_path 视频文件路径
* @param string $size 预览分辨率,例如 '360p'
*
* @return string 预览视频的 URL 地址
*/
function generate_preview($video_path, $size)
{
// 预览视频的保存路径
$preview_path = "/path/to/previews/{$size}/" . basename($video_path) . '.mp4';
// 检查预览视频是否已经存在
if (!file_exists($preview_path)) {
// 使用 FFMPEG 生成预览视频
$command = "ffmpeg -i {$video_path} -vf scale=-1:{$size} -c:v libx264 -preset medium -crf 22 -c:a copy -movflags +faststart {$preview_path}";
exec($command);
}
// 返回预览视频的 URL 地址
return "/previews/{$size}/" . basename($video_path) . '.mp4';
}
```
注意,生成视频预览的过程可能会比较耗时,请确保服务器配置足够强大,以避免影响其他网站的正常访问。
阅读全文