通过ffmpeg从视频创建缩略图图像

时间:2013-12-04 10:13:32

标签: php ffmpeg thumbnails

$video_name    = $_FILES['video_file']['name'];

$video_tmp_name    = $_FILES['video_file']['tmp_name'];

$video_size    = $_FILES['video_file']['size'];
// where ffmpeg is located  
$ffmpeg = 'C:\\ffmpeg\bin\\ffmepg';  
//video dir  
$video = $video_tmp_name;  
//where to save the image  
$image = 'video/image.jpg';  
//time to take screenshot at  
$interval = 5;  
//screenshot size  
$size = '640x480';  
//ffmpeg command  
echo $cmd = $ffmpeg ."-i". $video ." -an -ss".$interval."  -s ".$size . "-vcodec mjpeg ".$image ." 2>&1";               
shell_exec($cmd);

我写下了那段代码。但它不是从视频中创建任何缩略图。我无法理解这段代码的错误。

2 个答案:

答案 0 :(得分:0)

您的代码可能非常适合Linux(“2>&!”)部分。

在Windows上,我成功使用此选项:

 ffmpeg -y -i klip.flv -f mjpeg -ss 10 -vframes 1 160x120 thumb.jpg

答案 1 :(得分:0)

这是视频缩略图的c#代码段。

fullVideoPath=@"C:\Users\Madan\Desktop\wpflib\10.wmv"
thumbnailPath=@ "C:\Users\Madan\Desktop\wpflib\Thumbnail\10.jpg"
ffmpeg = new Process();
ffmpeg.StartInfo.Arguments = " -i " + "\"" + fullVideoPath+ "\"" + " -ss 00:00:02 -vcodec mjpeg -vframes 1 -an -f rawvideo -s 200x200 " + "\"" + thumbnailPath+ "\"";                
ffmpeg.StartInfo.FileName = ffmepgPath;
ffmpeg.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
var status = ffmpeg.Start();

使用它可能对您有帮助。我已使用以下扩展程序对其进行了测试

{ ".wmv", ".avi", ".mpg", ".mpeg", ".mp4", ".mkv", ".flv", ".mov", ".vob", ".3gp" }