【问题标题】:Getting image from mp4 video using ffmpeg in YII在 YII 中使用 ffmpeg 从 mp4 视频中获取图像
【发布时间】:2015-07-06 10:23:07
【问题描述】:

我已经编写了一个代码,用于在 YII 中使用 ffmpeg 从上传的 mp4 视频中获取图像。

在 localhost 中,当我像这样编写像 d:/wamp/www/projectname/ffmpeg 这样的绝对路径时,它运行良好并且我正在获取图像,但是当我尝试像下面这样使用 baseurl

$var="http://".$_SERVER['HTTP_HOST'].Yii::app()->request->baseUrl;
$ffmpeg = $var."/ffmpeg/bin/ffmpeg.exe";

我无法从视频中获取图像。

这是我的代码

$var="http://".$_SERVER['HTTP_HOST'].Yii::app()->request->baseUrl;
$ffmpeg = $var."/ffmpeg/bin/ffmpeg.exe";
// $uploaddir is my file upload path
$video = $uploaddir.$image_name;  
//where to save the image
$iname = basename($image_name, ".mp4");
$image = $uploaddir.'/'.$iname.'_img.jpg';  
//time to take screenshot at  
$interval = 5;  
//screenshot size  pn 
$size = '640x480';  
//ffmpeg command  
$cmd="$ffmpeg -i ".$video." -ss 00:00:01.100 -f image2 -vframes 1 ".$image;
exec($cmd);

【问题讨论】:

    标签: php yii ffmpeg


    【解决方案1】:

    无法执行“http://foo.bar/ffmpeg/ffmpeg.exe”, exec 需要二进制文件的绝对路径:

    /**
     * return d:/wamp/www/projectname
     */
    $var = dirname(Yii::app()->getBasePath());
    $ffmpeg = $var."/ffmpeg/bin/ffmpeg.exe";
    if(!file_exists($ffmpeg))
       exit("sorry dude, i cant find ffmpeg.exe!");
    

    【讨论】:

    • 感谢您的回复。我已经尝试过您的代码,它在我的本地主机上运行良好,但来到服务器,它无法正常工作。
    • 我已经修改了我的代码。在您的服务器上触发错误时,ffmpeg.exe 不在 d:/wamp/www/projectname/ffmpeg/bin/ffmpeg.exe 中。在这种情况下,您必须在服务器上安装 ffmpeg 或在本地环境中提供 API。
    • 嗨 henry,感谢您的回复...我已根据您的行更改了代码,但我没有从视频中获得任何图像,在本地它运行良好,当我们写文件也存在,它没有显示任何错误,并且文件存在于具有给定路径的文件夹中,但图像没有从视频中获取
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-06
    相关资源
    最近更新 更多