gpt4 book ai didi

php - FFMPEG 在命令行而不是 PHP 中运行

转载 作者:可可西里 更新时间:2023-10-31 22:47:44 29 4
gpt4 key购买 nike

我正在使用 ffmpeg build for windows 制作视频缩略图。该命令在命令行中运行良好,但不适用于 PHP exec 方法。我正在使用 PHP 5.2.11

这是命令。

"E:/Documents and Settings/x/WINDOWS/ffmpeg" -itsoffset -4 -v "E:/Program Files/Apache Software Foundation/Apache2.2/htdocs/bs/files/videogal/c08c3d20eeb9083ed033577bd154cba6.flv" -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 "E:/Program Files/Apache Software Foundation/Apache2.2/htdocs/bs/files/gallery/8ff43b72b932d2a34e7a6733672ad4d6.jpg" 2>&1

谁能帮忙。我检查了他们似乎没问题的权限。 GD 已安装。

错误信息是'E:/Documents' 不是内部或外部命令,也不是可运行的程序或批处理文件

除了转义双引号外,我在我的路径中使用正斜杠

PHP 函数

function ExtractThumb($in, $out)
{$path=dbconf::FFMPEG_PATH;
$thumb_stdout;
$errors;
$retval = 0;
echo $in;
// Delete the file if it already exists
if (file_exists($out)) { unlink($out); }

// Use ffmpeg to generate a thumbnail from the movie
$cmd = "$path -itsoffset -4 -i $in -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 $out 2>&1";
echo $cmd;

exec($cmd, $thumb_stdout, $retval);

// Queue up the error for processing
if ($retval != 0) { $errors[] = "FFMPEG thumbnail generation failed"; }

if (!empty($thumb_stdout))
{
foreach ($thumb_stdout as $line)
{
echo $line . "\n";
}
}

if (!empty($errors))
{
foreach ($errors as $error)
{
echo $error . "\n";
}
}
}

有趣的是,如果我在没有 $in 和 $out 绝对路径的情况下运行,这就是我得到的结果

Copyright (c) 2000-2009 Fabrice Bellard, et al. configuration: --extra-cflags=-fno-common --enable-memalign-hack --enable-pthreads --enable-libmp3lame --enable-libxvid --enable-libvorbis --enable-libtheora --enable-libspeex --enable-libfaac --enable-libgsm --enable-libx264 --enable-libschroedinger --enable-avisynth --enable-swscale --enable-gpl libavutil 49.12. 0 / 49.12. 0 libavcodec 52.10. 0 / 52.10. 0 libavformat 52.23. 1 / 52.23. 1 libavdevice 52. 1. 0 / 52. 1. 0 libswscale 0. 6. 1 / 0. 6. 1 built on Jan 13 2009 02:57:09, gcc: 4.2.4 822ae86a93810dade2843e822390d723.flv: no such file or directory

最佳答案

exec("\"E:\\Documents and Settings\\x\\WINDOWS\\ffmpeg\" -i <inputfile> <options> <outfile>");

这是我过去用过的一个(假设我在 LAMP 堆栈上):

$cmd = "/usr/bin/ffmpeg -i ".$in." -y -an -sameq -vframes 1 -s 100x56 -ss 3 -t 0.001 ".$out;

您也可以考虑:http://ffmpeg-php.sourceforge.net/

关于php - FFMPEG 在命令行而不是 PHP 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2504842/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com