各位大侠,我在网上搜了很多关于flv截图的方法,很多都是用ffmpeg-php来弄的,网上的源码基本上都是下面这段:
<?php if(extension_loaded('ffmpeg'))
{//判断ffmpeg是否载入
$mov = new ffmpeg_movie('D:\robot.avi');//视频的路径
$ff_frame = $mov->getFrame(2);
$gd_image = $ff_frame->toGDImage();
$img=$_SERVER['DOCUMENT_ROOT']."/test.jpg";//要生成图片的绝对路径
imagejpeg($gd_image, $img);//创建jpg图像
imagedestroy($gd_image);//销毁一图像 }
else{ echo "ffmpeg没有载入"; } ?>
可是这对avi格式是没问题的,但对flv格式不行啊,在初始化那句$mov = new ffmpeg_movie('D:\xxx.flv');//就错误了,求办法,小弟我急用
<?php if(extension_loaded('ffmpeg'))
{//判断ffmpeg是否载入
$mov = new ffmpeg_movie('D:\robot.avi');//视频的路径
$ff_frame = $mov->getFrame(2);
$gd_image = $ff_frame->toGDImage();
$img=$_SERVER['DOCUMENT_ROOT']."/test.jpg";//要生成图片的绝对路径
imagejpeg($gd_image, $img);//创建jpg图像
imagedestroy($gd_image);//销毁一图像 }
else{ echo "ffmpeg没有载入"; } ?>
可是这对avi格式是没问题的,但对flv格式不行啊,在初始化那句$mov = new ffmpeg_movie('D:\xxx.flv');//就错误了,求办法,小弟我急用
//创建flv视频的图片
/**
* 参数意义自明
* @param <type> $flv_file
* @param <type> $flv_pic_file
* @param <type> $width
* @param <type> $height
* @return <type>
*/
private function makeFlvPic($flv_file,$flv_pic_file,$width=350,$height=240)
{
//判断给定的文件是否正常
if(!is_file($video_file)){
return false;
}
$flv_msg;
$flv_pic_cmd="ffmpeg -i ".$flv_file.
" -y -f image2 ".
" -ss 1 ".
" -t 0.001 ".
" -s {$width}x{$height} ".$flv_pic_file;
exec($flv_pic_cmd,$flv_msg);
}}
/*
*附上ffmpeg.exe参数说明:
ffmpeg -i "e:\test.flv" -f image2 -ss 5 -s 120*90 -vframes 1 "e:\test.jpg"
ffmpeg // 命令
-i "f:\test.flv" // 输入文件
-f image2 -ss 6 -s 120*90 -vframes 1
// 可选参数: -f表示输出文件格式、
// -ss表示相对于文件开始处的时间偏移值, 即从6秒出开始截图
// -s表示截图的的大小
// -vframes表示截图的桢数
//"f:\test.jpg" // 输出文件
//上面的意思就是,从test.flv中的第5秒开始截1帧大小为120*90保存成名为test.jpg的图片
输入的命令:C:\Users\jimmy>E:\ffmpeg\ffmpeg.exe -i "d:\123.flv" -f image2 -ss 5 -s 120*90 -v
frames 1 "d:\test.jpg"报的错误:
...
[flv @ 00AA6C70]Unsupported video codec (7)
[flv @ 00AA6C70]Unsupported video codec (7)
[flv @ 00AA6C70]Unsupported video codec (7)
[flv @ 00AA6C70]Unsupported video codec (7)
[flv @ 00AA6C70]Unsupported video codec (7)
[flv @ 00AA6C70]Unsupported video codec (7)
[flv @ 00AA6C70]Could not find codec parameters (Video: 0x0007)
[flv @ 00AA6C70]Could not find codec parameters (Audio: 0x000a, 44100 Hz, stereo
)
d:\123.flv: could not find codec parameters哎,求解
exec("E:/project/test/ffmpeg/ffmpeg.exe -i F:/dzr.flv -y -f mjpeg -ss 68 -s 400*300 -vframes 1 F:/test.jpg")后来测试是APC的缘故