ffmpeg的充分利用视频图像错误或缩略图(ffmpeg Getting image or thum

2019-10-18 07:10发布

我有一个简单的网站,让人们上传视频,所以我要生成上传影片的简单的缩略图。 我已经尽了浑身解数和方法,从一些网站做到这一点,但我不能让命令运行没有问题。

$video = $_FILES['vpopupdropin']["tmp_name"];
    $ffmpeg = "C:\\Ffmpeg\\ffmpeg-20130605-git-3289670-win64-static\\bin";
    $image = "manu.jpg";
    $second = 12;
    $size = "150x90";
$command = "$ffmpeg -i $video -an -ss $second -s $size -vcodec mjpeg      $image";
echo $command;
    shell_exec($command);

    if(shell_exec($command)){
        echo 'okay';
        echo '<img src="'.$image.'"/ >';
        }

    else{
        echo ' Problem';
        }

我从PHP呼应的命令,这是我得到:C:\ ffmpeg的\ ffmpeg的-20130605-的git-3289670-Win64的静态\ BIN -i C:\ XAMPP \ tmp目录\ php27F1.tmp -an -ss 12 - 小号150x90 -vcodec MJPEG manu.jpg问题

所以我把上面的命令,并在cmd中输入的,并得到这个错误

[图像2 @ 00000000000000003d87580]无法打开文件:manu.jpg av_interleaved_write_frame():输入/输出错误。 上传的文件传输以及到IAM保存它,该网站表示文件的播放以及未损坏。 但缩略图命令似乎失败了,我甚至检查本网站上的其他问题,但我似乎无法得到正确的解决方案。 在命令的路径是正确的,我已经证实至少

Answer 1:

你没有给ffmpeg的名字:-)所以,你试图执行一个\\bin文件夹!

$ffmpeg = "C:\\Ffmpeg\\ffmpeg-20130605-git-3289670-win64-static\\bin";

你忘了ffmpeg.exe

$ffmpeg = "C:\\Ffmpeg\\ffmpeg-20130605-git-3289670-win64-static\\bin\\ffmpeg";

我做它用下面的命令.AVI

ffmpeg -i Echo2012.avi -r 1 -s 1024x576 -f image2 -vframes 1 foo-001.jpg

不执行你的命令两次!

$command = "$ffmpeg -i $video -an -ss $second -s $size -vcodec mjpeg      $image";
echo $command;
shell_exec($command);

    if(shell_exec($command)){

编辑:

你的命令字符串:

ffmpeg -i upload.tmp -an -ss 12 -s 150x90 -vcodec mjpeg     manu.jpg
  • -vcodec编解码器(输出):设置视频输出编解码器。 这是一个为视频输出的开关。 你想作为输出的图像。
  • -an:您可以禁用音频流。 你不需要的音频图像。
  • -ss:当作为( 前-I)的输入选项中选择的位置(输入/输出),寻求在该输入文件到位置。

我的命令字符串:

ffmpeg -i Echo2012.avi -r 1 -s 1024x576 -f image2 -vframes 1 foo-001.jpg
  • -r:FPS(输入/输出,每个流)。 设置帧速率(赫兹值,分数或缩写)。
    作为输入选项,忽略存储在文件中的任何时间戳,而是生成时间戳假定恒定的帧速率帧。
  • -f图像2:强制输出文件格式image2 。 该格式通常是自动检测到输出文件的扩展名猜测。
  • -vframes号(输出):设置视频帧数记录。


文章来源: ffmpeg Getting image or thumbnail from video error
标签: php ffmpeg cmd