gpt4 book ai didi

php - 需要为视频上传创建缩略图(非常简单的代码)

转载 作者:可可西里 更新时间:2023-11-01 12:31:02 25 4
gpt4 key购买 nike

我有这个页面(非常简单地显示我需要什么)来上传 flv 文件 - 我阅读了一些关于 ffmpeg-php 的帖子但是如果它是解决方案以及如何使用它如何安装在服务器上?

<?php
if(isset($_REQUEST['upload'])){
$tmp_name = $_FILES['video']['tmp_name'];
$name = $_FILES['video']['name'];
$path = "videos/";
move_uploaded_file($tmp_name,$path.$name);
}
else{
?>
<form action="" method="post" enctype="multipart/form-data">
<input name="video" type="file" /> <input name="upload" type="submit" value="upload" />
</form>
<?php
}
?>

并且需要为上传到另一个同名文件夹的视频创建缩略图有帮助吗?提前致谢

最佳答案

安装 ffmpeg 应该很简单。在任何基于 Ubuntu/Debian 的发行版上,使用 apt-get:

apt-get install ffmpeg

之后,您可以使用它来创建缩略图。

首先您需要从文件中获取一个随机时间位置:

$video = $path . escapeshellcmd($_FILES['video']['name']);
$cmd = "ffmpeg -i $video 2>&1";
$second = 1;
if (preg_match('/Duration: ((\d+):(\d+):(\d+))/s', `$cmd`, $time)) {
$total = ($time[2] * 3600) + ($time[3] * 60) + $time[4];
$second = rand(1, ($total - 1));
}

现在您的 $second 变量已设置。获取实际缩略图:

$image  = 'thumbnails/random_name.jpg';
$cmd = "ffmpeg -i $video -deinterlace -an -ss $second -t 00:00:01 -r 1 -y -vcodec mjpeg -f mjpeg $image 2>&1";
$do = `$cmd`;

它会自动将缩略图保存到 thumbnails/random_name.jpg(您可能希望根据上传的视频更改该名称)

如果要调整缩略图大小,使用-s参数(-s 300x300)

查看 ffmpeg documentation获取您可以使用的参数的完整列表。

关于php - 需要为视频上传创建缩略图(非常简单的代码),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9053048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com