. 동영상파일에서 한장면을 jpg로 추출하는 부분이며 별도 DB에 저장하지 않고 올린 동영상
파일명뒤에 .jpg 확장자로 저장
. write_update.php 에서 190번째 줄 정도에 아래를 추가
// 올리는 동영상 파일에서 jpg 추출 시작
if (preg_match("/\.($config[cf_movie_extension])$/i", $dest_file)) {
$extension = "ffmpeg";
$extension_soname = $extension . "." . PHP_SHLIB_SUFFIX;
//$extension_fullname = PHP_EXTENSION_DIR . "/" . $extension_soname;
$extension_fullname = "./" . $extension_soname;
if (!extension_loaded($extension)) {
// dl($extension_soname) or die("Can't load extension $extension_fullname\n");
alert("파일을 변환할 수 없습니다.");
}
$movie_name = $dest_file;
$movie = new ffmpeg_movie("./".$dest_file, false);
$frame = $movie->getFrame(1);
imagejpeg($frame->toGDImage(), "./".$dest_file.".jpg");
}
// 올리는 동영상 파일에서 jpg 추출 끝
. 삭제시에서 .jpg 파일 삭제하게끔 추가(delete.php나 delete_all.php 에..)
@unlink("$g4[path]/data/file/$bo_table/$row2[bf_file].jpg");
위와 같이 view 나 list 시에 그 jpg파일만 보이게 해도 되겠죠...
위와 같이 한것은 동영상을 올릴때 별도의 썸네일 이미지를 올릴 필요없이 그냥 추출해내기
위한 것입니다.
기타 응용 해도 되겠죠....^^;;
<?
// 이미지추출 성공!
$extension = "ffmpeg";
$extension_soname = $extension . "." . PHP_SHLIB_SUFFIX;
$extension_fullname = PHP_EXTENSION_DIR . "/" . $extension_soname;
// load extension
if (!extension_loaded($extension)) {
dl($extension_soname) or die("Can't load extension $extension_fullname\n");
}
function getDirFiles($dirPath)
{
if ($handle = opendir($dirPath))
{
while (false !== ($file = readdir($handle))) {
$fullpath = $dirPath . '/' . $file;
if (!is_dir($fullpath) && $file != "CVS" && $file != "." && $file != "..")
$filesArr[] = trim($fullpath);
}
closedir($handle);
}
return $filesArr;
}
$movies = getDirFiles(dirname(__FILE__) . '/test_media');
foreach($movies as $movie) {
$mov = new ffmpeg_movie($movie);
$frame = $mov->getFrame(200);
$frm = new ffmpeg_frame($frame->toGDImage());
$frm->resize(200,300);
$image = $frm->toGDImage();
@Header("Content-type: image/jpeg");
Imagejpeg($image);
//이미지 추출부 끝
}
출처 : http://www.nuno21.net/bbs/board.php?bo_table=php&wr_id=158