各位大侠,我在网上搜了很多关于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');//就错误了,求办法,小弟我急用

解决方案 »

  1.   

    抱歉!我之前说的作废!特意查了下资料,是支持各种视频截图的,参考如下:
    //创建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的图片
      

  2.   

    我从网上下了一个ffmpeg.exe下来,在命令行下试了一下你说的方法,可是下面的错误:
    输入的命令: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哎,求解
      

  3.   

    谢谢啊,我下载了一个最新的ffmpeg.exe就行了,非常感谢。
      

  4.   

    你好,我在用php测试ffmpeg.exe通过exec函数调用的时候,总是出现服务器卡住的情况。我的命令如下:
    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的缘故