This is what I coded after reading many blogs and about FFMPEG
$ffmpeg = "C:\\FFMPEG\\bin\\ffmpeg";
$video_file_path = $_FILES["file"]["name"];
$converted_video_path = "converted_videos/" . $video_file_path;
$image = $name .".jpg";
$imagepath="thumbnail/" . $image;
echo "<br>";
echo $video_file_path; echo "<br>";echo "<br>";
echo $converted_video_path; echo "<br>";echo "<br>";
echo $image; echo "<br>";echo "<br>";
echo $imagepath;
$size = "120x90";
$getFromSecond = 6;
$cmd_thumbnail_create = ("$ffmpeg -i C:\\xampp\\htdocs\\Media Barron\\assets\\uploaded_videos\\$video_file_path -an -ss $getFromSecond -s $size C:\\xampp\\htdocs\\Media Barron\\assets\\thumbnail\\$image");
$cmd_video_conversion = exec("$ffmpeg -i $video_file_path -qscale 4 -vcodec libx264 -f mp4 $converted_video_path.mp4");
shell_exec($cmd_thumbnail_create);
shell_exec($cmd_video_conversion);
PS: I had double quotes on the addresses earlier and also tired "\uploaded_videos\video_file_path", "uploaded_videos\video_file_path", Single quotes, "\C:\xampp\htdocs\Media Barron\assets\uploaded_videos\$video_file_path\"
This is the New script I have tried recently
<?php
$ffmpeg = "C:\\FFMPEG\\bin\\ffmpeg";
$video_file_path = $_FILES["file"]["name"];
$ffmpegVideoLocation = "C:\\xampp\\htdoc\\Media Barron\\uploaded_videos\\".$video_file_path;
$converted_video_path = "C:\\xampp\\htdoc\\Media Barron\\converted_videos\\" . $video_file_path;
$image = $name .".jpg";
$imagepath="thumbnail\\" . $image;
echo "<br>";
echo $video_file_path; echo "<br>";echo "<br>";
echo $ffmpegVideoLocation; echo "<br>";echo "<br>";
echo $converted_video_path; echo "<br>";echo "<br>";
echo $image; echo "<br>";echo "<br>";
echo $imagepath;
$size = "120x90";
$getFromSecond = 6;
$cmd_thumbnail_create = ("$ffmpeg -i $ffmpegVideoLocation -an -ss $getFromSecond -s $size $converted_video_path.jpg");
$cmd_video_conversion = exec("$ffmpeg -i $ffmpegVideoLocation -qscale 4 -vcodec libx264 -f mp4 $converted_video_path.mp4");
shell_exec($cmd_video_conversion);
shell_exec($cmd_thumbnail_create);
最佳答案
您是否尝试通过从命令提示符执行命令来转换和生成该文件?
还是有任何错误信息?
更新
我试过你的代码。
它$cmd_video_conversion
返回空值。因为你有 exec()
在您的命令中发挥作用。
我删除它然后它完美地工作。
在我的测试脚本下方。
$ffmpeg = "D:\\FFMPEG\\bin\\ffmpeg.exe";
echo "<br><br>--->ffmpeg = ".$ffmpeg;
echo "<br>--->file_exists = ".file_exists($ffmpeg);
//$video_file_path = $_FILES["file"]["name"];
$video_file_path = "sample.mp4";
echo "<br><br>--->filename = ".$video_file_path;
//$ffmpegVideoLocation = "C:\\xampp\\htdoc\\Media Barron\\uploaded_videos\\".$video_file_path;
$ffmpegVideoLocation = getcwd().DIRECTORY_SEPARATOR."uploaded".DIRECTORY_SEPARATOR.$video_file_path;
echo "<br><br>--->filepath = ".$ffmpegVideoLocation;
echo "<br>--->file_exists = ".file_exists($ffmpegVideoLocation);
//$converted_video_path = "C:\\xampp\\htdoc\\Media Barron\\converted_videos\\" . $video_file_path;
$converted_video_path = getcwd().DIRECTORY_SEPARATOR."converted".DIRECTORY_SEPARATOR.$video_file_path;
echo "<br><br>--->converted = ".$converted_video_path;
echo "<br>--->file_exists = ".file_exists($converted_video_path);
//$image = $name.".jpg";
$image = "thumbnail.jpg";
echo "<br><br>--->thumb names = ".$image;
//$imagepath= "thumbnail\\".$image;
$imagepath= getcwd().DIRECTORY_SEPARATOR."converted".DIRECTORY_SEPARATOR.$image;
echo "<br><br>--->thumb path = ".$imagepath;
echo "<br>--->file_exists = ".file_exists($imagepath);
$size = "120x90";
echo "<br><br>--->size = ".$size;
$getFromSecond = 6;
echo "<br><br>--->getFromSecond = ".$getFromSecond;
$cmd_thumbnail_create = ("$ffmpeg -i $ffmpegVideoLocation -an -ss $getFromSecond -s $size $imagepath.jpg");
echo "<br><br>--->command create thumb = ".$cmd_thumbnail_create;
$cmd_video_conversion = ("$ffmpeg -i $ffmpegVideoLocation -qscale 4 -vcodec libx264 -f mp4 $converted_video_path.mp4");
echo "<br><br>--->command convert = ".$cmd_video_conversion;
$exe1 = shell_exec($cmd_video_conversion);
echo "<br><br>--->process 1 = ".$exe1;
$exe2 = shell_exec($cmd_thumbnail_create);
echo "<br><br>--->process 2 = ".$exe2;
?>
关于php - FFMPEG 不创建缩略图和转换视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24134268/