1

我正在使用 ffmpeg 和 php 为动态视频创建缩略图。它将缩略图保存到特定文件,然后我使用 php 检索它。我想为所有类型的视频创建缩略图。iam 面临的 ffmpeg 问题是 iam 无法为具有 .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"; 

?>

4

6 回答 6

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 大小的图像缩略图并为我工作。

于 2013-04-24T12:07:57.053 回答
0

尝试这个:

safe_mode Offapache配置文件中需要ffmpeg

然后需要编码:

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

我希望它有效..

于 2012-05-23T06:56:11.207 回答
0

尝试这个:

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

希望这可以帮助。

于 2012-05-23T06:36:34.883 回答
0

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

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

于 2012-05-23T14:21:08.613 回答
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');
于 2017-08-17T10:30:33.193 回答
-2

ffmpeg 已弃用,现在您可以使用“avconv”

这是示例示例。

avconv  -itsoffset -4  -i VIDEO0001_8265186396728169230.mp4 -vcodec mjpeg -vframes 1 -an -f rawvideo -s 320x240 test.jpg 
于 2014-09-30T13:11:15.737 回答