首页 / PHP / MP4视频缩略图使用php GD创建
MP4视频缩略图使用php GD创建
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了MP4视频缩略图使用php GD创建,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4885字,纯文字阅读大概需要7分钟。
内容图文
![MP4视频缩略图使用php GD创建](/upload/InfoBanner/zyjiaocheng/725/bf4c492b02134b9285e83314bab8cbce.jpg)
我使用GD图像库上传视频,但我无法创建任何缩略图,有没有办法使用php gb图像库创建mp4视频文件缩略图?
这是我的代码;是否有可能融入ffmpeg?
<?php
if(isset($_POST))
{
############ Edit settings ##############
$ThumbSquareSize = 400; //Thumbnail will be 200x200
$ThumbPrefix = "thumb_"; //Normal thumb Prefix
$DestinationDirectory = 'uploads/'; //specify upload directory ends with / (slash)
$Quality = 90; //jpeg quality
##########################################
//check if this is an ajax request
if (!isset($_SERVER['HTTP_X_REQUESTED_WITH'])){
die();
}
// check $_FILES['ImageFile'] not empty
if(!isset($_FILES['ImageFile']) || !is_uploaded_file($_FILES['ImageFile']['tmp_name']))
{
die('Something wrong with uploaded file, something missing!'); // output error when above checks fail.
}
// Random number will be added after image name
$RandomNumber = rand(0, 9999999999);
$ImageName = str_replace(' ','-',strtolower($_FILES['ImageFile']['name'])); //get image name
$ImageSize = $_FILES['ImageFile']['size']; // get original image size
$TempSrc = $_FILES['ImageFile']['tmp_name']; // Temp name of image file stored in PHP tmp folder
$ImageType = $_FILES['ImageFile']['type']; //get file type, returns "image/png", image/jpeg, text/plain etc.
//Let's check allowed $ImageType, we use PHP SWITCH statement here
switch(strtolower($ImageType))
{
case 'video/mp4':
break;
default:
die('Unsupported File!'); //output error and exit
}
//PHP getimagesize() function returns height/width from image file stored in PHP tmp folder.
//Get first two values from image, width and height.
//list assign svalues to $CurWidth,$CurHeight
list($CurWidth,$CurHeight)=getimagesize($TempSrc);
//Get file extension from Image name, this will be added after random name
$ImageExt = substr($ImageName, strrpos($ImageName, '.'));
$ImageExt = str_replace('.','',$ImageExt);
//remove extension from filename
$ImageName = preg_replace("/\\.[^.\\s]{3,4}$/", "", $ImageName);
//Construct a new name with random number and extension.
$NewImageName = $ImageName.'-'.$RandomNumber.'.'.$ImageExt;
$pageurl = 'http://'.@$_SERVER['HTTP_HOST'].strtr(dirname($_SERVER['SCRIPT_NAME']), '\\', '/').'';
//set the Destination Image
$thumb_DestRandImageName = $DestinationDirectory.$ThumbPrefix.$NewImageName; //Thumbnail name with destination directory
$DestRandImageName = $DestinationDirectory.$NewImageName; // Image with destination directory
//Resize image to Specified Size by calling resizeImage function.
if(move_uploaded_file($_FILES['ImageFile']['tmp_name'], $DestinationDirectory.$NewImageName ))
{
//Create a square Thumbnail right after, this time we are using cropImage() function
if(!resizeImage($CurWidth,$CurHeight,$ThumbSquareSize,$thumb_DestRandImageName,$Quality,$ImageType))
{
echo 'Error Creating thumbnail';
}
/*
We have succesfully resized and created thumbnail image
We can now output image to user's browser or store information in the database
*/
$variable = <<<XYZ
<div class="kingimgupload">
<iframe src="$pageurl/uploads/$NewImageName" alt="Resized Image"></iframe>
<img src="$pageurl/uploads/$ThumbPrefix$NewImageName" alt="Resized Image">
</div>
XYZ;
echo $variable;
/*
// Insert info into database table!
mysql_query("INSERT INTO myImageTable (ImageName, ThumbName, ImgPath)
VALUES ($DestRandImageName, $thumb_DestRandImageName, 'uploads/')");
*/
}else{
die('Resize Error'); //output error
}
}
// This function will proportionally resize image
function resizeImage($CurWidth,$CurHeight,$MaxSize,$DestFolder,$SrcImage,$Quality,$ImageType)
{
//Check Image size is not 0
if($CurWidth <= 0 || $CurHeight <= 0)
{
return false;
}
//Construct a proportional size of new image
$ImageScale = min($MaxSize/$CurWidth, $MaxSize/$CurWidth);
$NewWidth = ceil($ImageScale*$CurWidth);
$NewHeight = ceil($ImageScale*$CurHeight);
$NewCanves = imagecreatetruecolor($NewWidth, $NewHeight);
// Resize Image
if(imagecopyresampled($NewCanves, $SrcImage,0, 0, 0, 0, $NewWidth, $NewHeight, $CurWidth, $CurHeight))
{
switch(strtolower($ImageType))
{
case 'video/mp4':
imagepng($NewCanves,$DestFolder);
break;
default:
return false;
}
//Destroy image, frees memory
if(is_resource($NewCanves)) {imagedestroy($NewCanves);}
return true;
}
}
解决方法:
不,你不能用GD做到这一点.
查看文档
http://php.net/manual/de/book.image.php
您只有以下imagecreatefrom *函数:
imagecreatefromgd2
imagecreatefromgd2part
imagecreatefromgd
imagecreatefromgif
imagecreatefromjpeg
imagecreatefrompng
imagecreatefromstring
imagecreatefromwbmp
imagecreatefromwebp
imagecreatefromxbm
imagecreatefromxpm
没有视频格式.所以不,这是不可能的.
看看FFMpeg并考虑这个库:
FFMpeg:https://www.ffmpeg.org/
PHP库:https://github.com/PHP-FFMpeg/PHP-FFMpeg/
当然,它并没有安装在大多数共享环境中,但如果你看一下这个合同,你会发现,不允许使用视频托管.
当然还有其他的可能性,但我无法想象只有PHP的方式.
内容总结
以上是互联网集市为您收集整理的MP4视频缩略图使用php GD创建全部内容,希望文章能够帮你解决MP4视频缩略图使用php GD创建所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。