ffmpeg-php创建视频缩略图
发布时间:2020-12-13 14:08:13 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试使用此脚本使用ffmpeg创建视频缩略图.起初我使用了phpinfo();我发现ffmpeg安装在我的服务器上. 然后我将ffmpeg-php复制到我的服务器上并运行测试文件 我知道很多功能正在我的服务器上运行 我有这样的输出 输出: – Functions available in /usr/l
我正在尝试使用此脚本使用ffmpeg创建视频缩略图.起初我使用了phpinfo();我发现ffmpeg安装在我的服务器上.
然后我将ffmpeg-php复制到我的服务器上并运行测试文件 我知道很多功能正在我的服务器上运行 我有这样的输出 输出: – Functions available in /usr/lib/php/extensions/no-debug-non-zts-20060613/ffmpeg.so extension: Methods available in class ffmpeg_movie: __construct getduration getframecount getframerate getfilename getcomment gettitle getauthor getartist getcopyright getalbum getgenre getyear gettracknumber getframewidth getframeheight getframenumber getpixelformat getbitrate hasaudio hasvideo getnextkeyframe getframe getvideocodec getaudiocodec getvideostreamid getaudiostreamid getaudiochannels getaudiosamplerate getaudiobitrate getvideobitrate getpixelaspectratio getpixelaspectratio getvideobitrate getaudiobitrate getaudiosamplerate getaudiochannels getaudiostreamid getvideostreamid getaudiocodec getvideocodec getframe getnextkeyframe hasvideo hasaudio getbitrate getpixelformat getframenumber getframeheight getframewidth gettracknumber getyear getgenre getalbum getcopyright getartist getauthor gettitle getcomment getfilename getframerate getframecount getduration __construct 我编写了这段代码并尝试了任何可能的路径来分配$ffmpeg; <?php $thumb_stdout; $retval=0; $ffmpeg = '/home/lib/ffmpeg'; // change "demo.mpg" to your mpg file name! $video = dirname(__FILE__) . 'demo.mpg'; // change "demo.jpg" to whichever name you like or don't // for this example,the name of the output jpg file does not matter $image = dirname(__FILE__) . 'demo.jpg'; $second = 1; $cmd = "$ffmpeg -i $video 2>&1"; if (preg_match('/Duration: ((d+):(d+):(d+))/s','$cmd',$time)) { $total = ($time[2] * 3600) + ($time[3] * 60) + $time[4]; $second = rand(1,($total - 1)); } //$cmd = "$ffmpeg -i $video -deinterlace -an -ss $second -t 00:00:01 -r 1 -y -vcodec mjpeg -f mjpeg $image 2>&1"; $cmd = "$ffmpeg -i $video -r 1 -ss 00:00:05 -t 00:00:01 -s 250x250 -f image2 $image"; echo $cmd; exec($cmd); //$return = '$cmd'; echo '<br>done!'; ?>
最后我得到了代码感谢Anubhaw.Your链接帮助了很多.试试这段代码.
//thumb path should be added in the below code //test for thumb $dir_img='uploads/'; $mediapath='123.jpg'; $file_thumb=create_movie_thumb($dir_img.$mediapath,$mediapath,$mediaid); $name_file=explode(".",$mediapath); $imgname="thumb_".$name_file[0].".jpg"; /* Function to create video thumbnail using ffmpeg */ function create_movie_thumb($src_file,$mediaid) { global $CONFIG,$ERROR; $CONFIG['ffmpeg_path'] = '/usr/local/bin/'; // Change the path according to your server. $dir_img='uploads/'; $CONFIG['fullpath'] = $dir_img."thumbs/"; $src_file = $src_file; $name_file=explode(".",$mediapath); $imgname="thumb_".$name_file[0].".jpg"; $dest_file = $CONFIG['fullpath'].$imgname; if (preg_match("#[A-Z]:|\#Ai",__FILE__)) { // get the basedir,remove '/include' $cur_dir = substr(dirname(__FILE__),-8); $src_file = '"' . $cur_dir . '' . strtr($src_file,'/','') . '"'; $ff_dest_file = '"' . $cur_dir . '' . strtr($dest_file,'') . '"'; } else { $src_file = escapeshellarg($src_file); $ff_dest_file = escapeshellarg($dest_file); } $output = array(); if (eregi("win",$_ENV['OS'])) { // Command to create video thumb $cmd = """.str_replace("","/",$CONFIG['ffmpeg_path'])."ffmpeg" -i ".str_replace("",$src_file )." -an -ss 00:00:05 -r 1 -vframes 1 -y ".str_replace("",$ff_dest_file); exec (""$cmd"",$output,$retval); } else { // Command to create video thumb $cmd = "{$CONFIG['ffmpeg_path']}ffmpeg -i $src_file -an -ss 00:00:05 -r 1 -vframes 1 -y $ff_dest_file"; exec ($cmd,$retval); } if ($retval) { $ERROR = "Error executing FFmpeg - Return value: $retval"; if ($CONFIG['debug_mode']) { // Re-execute the command with the backtick operator in order to get all outputs // will not work if safe mode is enabled $output = `$cmd 2>&1`; $ERROR .= "<br /><br /><div align="left">Cmd line : <br /><span style="font-size:120%">" . nl2br(htmlspecialchars($cmd)) . "</span></div>"; $ERROR .= "<br /><br /><div align="left">The ffmpeg program said:<br /><span style="font-size:120%">"; $ERROR .= nl2br(htmlspecialchars($output)); $ERROR .= "</span></div>"; } @unlink($dest_file); return false; } $return = $dest_file; //@chmod($return,octdec($CONFIG['default_file_mode'])); //silence the output in case chmod is disabled return $return; } 享受编码 带着敬意, 瓦西姆 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |