PHP从FLV文件获取视频预览图的方法
本文实例讲述了PHP从FLV文件获取视频预览图的方法。分享给大家供大家参考。具体实现方法如下:
<?php //referenceshttp://www.longtailvideo.com/support/forum/Modules/12661/External-PHP-with-FFmpeg-using-readfile- //generateapreviewimagefromanFLVfileon-the-fly,ortosave //callwith:ffmpeg_image.php?file=video.flv&time=00:00:05&browser=true //callwith:ffmpeg_image.php?file=video.flv&percent=75.3&browser=true //notimedefaultsto"00:00:01"(onesecond),nobrowserdefaultsto"true" $videofile=(isset($_GET['file']))?strval($_GET['file']):'video.flv'; $image=substr($videofile,0,strlen($videofile)-4); $time=(isset($_GET['time']))?strval($_GET['time']):'00:00:01'; //debug(" File:",$videofile); //debug("Image:",$image); //debug(" Time:",$time); //checktimeformat if(!preg_match('/\d\d:\d\d:\d\d/',$time)) { $time="00:00:00"; } if(isset($_GET['percent'])) { $percent=$_GET['percent']; //debug("Percent:",$percent); ob_start(); exec("/usr/bin/ffmpeg-i\"".$videofile."\"2>&1"); $duration=ob_get_contents(); ob_end_clean(); //debug("Duration:",$duration); preg_match('/Duration:(.*?),/',$duration,$matches); $duration=$matches[1]; //debug("Duration:",$duration); $duration_array=split(':',$duration); $duration=$duration_array[0]*3600+$duration_array[1]*60+$duration_array[2]; $time=$duration*$percent/100; //debug("Time:",$time); $time=intval($time/3600).":".intval(($time-(intval($time/3600)*3600))/60).":".sprintf("%01.3f",($time-(intval($time/60)*60))); //debug("Time:",$time); } $browser=(isset($_GET['browser']))?strval($_GET['browser']):'true'; //debug("Browser:",$browser); if($browser=="true") { header('Content-Type:image/png'); exec("/usr/bin/ffmpeg-vcodecpng-i\"".$videofile."\"-ss".$time."-vframes1-fimage2-"); //header('Content-Type:image/jpeg'); //exec("/usr/bin/ffmpeg-vcodecmjpeg-i\"".$videofile."\"-ss".$time."-vframes1-fimage2-"); } else { exec("/usr/bin/ffmpeg-vcodecpng-i\"".$videofile."\"-ss".$time."-vframes1-fimage2\"".$image."\"%d.png"); //exec("/usr/bin/ffmpeg-vcodecmjpeg-i\"".$videofile."\"-ss".$time."-vframes1-fimage2\"".$image."\"%d.jpg"); } ?>
希望本文所述对大家的php程序设计有所帮助。