使用ffmpeg为mp4创建缩略图

时间:2012-05-23 06:29:04

标签: php ffmpeg

我使用ffmpeg和php一起创建动态缩略图。它将缩略图保存到特定文件然后我使用php检索它。我想为所有类型的视频创建缩略图。我面临的ffmpeg问题是我无法为.mp4扩展名的视频创建缩略图。

<?
$ffmpeg = '/usr/bin/ffmpeg/ffmpeg'; //to load the extension ffmpeg

$video = '/path/to/video'.$file_thumb; //path to the video

$image = '/store/it/here'; //path to store the thumbnail

$interval = 5;
$size = '640x480';

//It runs with the below command    
$cmd = "$ffmpeg -i $video -deinterlace -an -ss $interval -f mjpeg -t 1 -r 1 -y -s $size 
$image 2>&1"; 

&GT;

6 个答案:

答案 0 :(得分:2)

你可以使用它。

$in = root/path/to/video/filename/with/extension
$out = root/path/to/video/filename/with extension .jpg // always use jpg as image extension

exec("/PATH/TO/FFMPEG -itsoffset -4  -i ".$in." -vcodec mjpeg -vframes 1 -an -f rawvideo -s 120x100 ".$out);

它会在$ out位置创建120x100尺寸图像的缩略图并为我工作。

答案 1 :(得分:0)

试试这个:

<?php
     exec("$ffmpeg -itsoffset -105 -i $video -vcodec mjpeg -vframes 1 -an -f rawvideo -s $size $image");
?>

希望这有帮助。

答案 2 :(得分:0)

试试这个:

在pache配置文件中

ffmpeg需要safe_mode Off

然后需要编码:

// where ffmpeg is located, such as /usr/sbin/ffmpeg
$ffmpeg = 'ffmpeg';

// the input video file
$video = 'videos/'.$file_thumb;

// where you'll save the image
$image = 'uploads/videothumb/'.strtotime("now").'.jpg';

// default time to get the image
$second = 1;

// get the duration and a random place within that
$cmd = "$ffmpeg -i $video -deinterlace -an -ss $second -t 00:00:01 -r 1 -y -vcodec mjpeg -f mjpeg $image 2>&1";

shell_exec($cmd);

我希望它有效..

答案 3 :(得分:0)

验证您的ffmpeg安装是否支持您要求的视频。如果它运行独立的PHP形式,请尝试在计算机上的shell。如果无法创建映像,请先修复ffmpeg安装。

Ffmpeg是一个免费软件项目,如果您无法设置自己的副本,许多相关人员都可以进行咨询:http://ffmpeg.org/consulting.html

答案 4 :(得分:0)

试试这个

$ffmpeg = '/usr/bin/ffmpeg/ffmpeg';
$video = '/path/to/video'.$file_thumb; //path to the video
$image = '/store/it/here'; //path to store the thumbnail
$interval = 1;
$size = '640x480';
shell_exec($ffmpeg.' -i '. $video.' -deinterlace -an -ss $interval -t 00:00:01 -r 1 -y -s 1242x400 -vcodec mjpeg -f mjpeg '. $thumbnail.' 2>&1');

答案 5 :(得分:-2)

现在弃用ffmpeg你可以使用&#34; avconv&#34;

这是示例。

avconv  -itsoffset -4  -i VIDEO0001_8265186396728169230.mp4 -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg