PHP & Others

동영상을 올렸을 경우 이미지 추출(ffmpeg, ffmpeg-php 등 설치되어 있다고 가정)

컨텐츠 정보

본문

 icon_link.gif http://www.boramchan.co.kr/bbs/board.php?bo_table=tiptech&wr_id=43&pag… [156]
# 동영상을 올렸을 경우 이미지 추출(ffmpeg, ffmpeg-php 등 설치되어 있다고 가정)

. 동영상파일에서 한장면을 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);
 
 //이미지 추출부 끝
}

관련자료

댓글 0
등록된 댓글이 없습니다.
Today's proverb
“무릇 물이란 지세를 따라 흐르되 작은 틈도 놓치지 않고 적시니 지혜를 갖춘 자와 같고, 움직이면서 아래로 흘러가니 예를 갖춘 자와 같으며, 어떤 깊은 곳도 머뭇거리지 않고 들어가니 용기를 가진 자와 같고 장애물이 막혀서 갇히면 고요히 맑아지니 천명을 아는 자와 같으며, 험한 곳을 거쳐 멀리 흐르지만 끝내 남을 허물어뜨리는 법이 없으니 덕을 가진 자와 같다. 천지는 이것으로 이루어지고, 만물은 이것으로 살아가며, 나라는 이것으로 안녕을 얻고, 만사는 이것으로 평안해지며, 만물은 이것으로 바르게 되는 것이다. 이것이 지혜로운 자가 물을 좋아하는 이유이다.” (한영, <<한시외전>>)