【问题标题】:FFMPEG not creating thumbnails and converting videosFFMPEG 不创建缩略图和转换视频
【发布时间】:2014-06-10 06:27:39
【问题描述】:

这是我在阅读了许多博客和关于 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:我之前在地址上加了双引号,而且还累了 "\uploaded_videos\video_file_path"、"uploaded_videos\video_file_path"、单引号、"\C:\xampp\htdocs\Media Barron\assets\uploaded_videos\$video_file_path \"

这是我最近尝试的新脚本

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

【问题讨论】:

  • 实际的错误信息是什么?

标签: php ffmpeg


【解决方案1】:

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

更新

我已经尝试过你的代码。

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

?>

【讨论】:

  • C:\FFMPEG\bin>ffmpeg -i "C:\\xampp\\htdocs\\Media Barron\\assets\\uploaded_video s\outro_en.mp4" -qscale 4 -vcodec libx264 - f mp4 "C:\\xampp\\htdocs\\Media Barro n\\assets\\converted_videos\outro_en.mp4" 工作正常,C:\FFMPEG\bin>ffmpeg -i "C:\\xampp\\htdocs \\Media Barron\\assets\\uploaded_video s\\outro_en.mp4" -an -ss 6 -s 120*90 "C:\\xampp\\htdocs\\Media Barron\\assets\\t humbnail\\outro .jpg”也是工作文件
  • 你能发布那个脚本的输出吗?我猜$cmd_video_conversion = exec("$ffmpeg -i $video_file_path -qscale 4 -vcodec libx264 -f mp4 $converted_video_path.mp4"); 一定是$cmd_video_conversion = ("$ffmpeg -i $video_file_path -qscale 4 -vcodec libx264 -f mp4 $converted_video_path.mp4");
  • outro_en.mp4 C:\xampp\htdoc\Media Barron\uploaded_videos\outro_en.mp4 C:\xampp\htdoc\Media Barron\converted_videos\outro_en.mp4 outro_en.jpg thumbnail\outro_en.jpg 视频outro_en.mp4 已保存。新视频上传..!!!!
  • 哈哈。很抱歉造成误解。 :p 你能发布那个脚本的输出吗? (我的意思是浏览器中的输出预览)
猜你喜欢
  • 2011-04-24
  • 2019-06-08
  • 2013-12-20
  • 2015-01-24
  • 2012-02-24
  • 2018-12-21
  • 1970-01-01
  • 2017-12-27
  • 2014-09-07
相关资源
最近更新 更多