php - FFMPEG 不创建缩略图和转换视频

标签 php ffmpeg

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);

enter image description here

最佳答案

您是否尝试通过从命令提示符执行命令来转换和生成该文件?
还是有任何错误信息?

更新

我试过你的代码。

$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/

相关文章:

ffmpeg - 属性错误 : 'FFmpegPCMAudio' object has no attribute '_process'

php - 平均评分脚本

php - 使用正则表达式将字符串拆分为数组以获得键值对

php - 从数组中对数据库进行排序

python - 在 ffmpeg 中找不到选项

Android:下载时播放 mp4 文件,但选择 "Video"时播放器得到 "Cannot play video"

video - 使用ffmpeg向视频添加背景音乐?

java - 如何从视频java中提取帧?

php - 如何编写一个仅在匹配后有斜杠或什么都没有时才匹配的正则表达式?

php - MVC 中的依赖注入(inject)