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
아직도 내가 더 자라야 하는 나무로 남아 있다는 것이 얼마나 자랑스럽고 기쁜 일인가. 내 능력을 더 키울 수 있는 위치에 있다는 것이 더 없이 행복한 일이라는 것을 알고 산다면 조금도 사는 일에 조급하지 않을 것이다. 아직도 능력 없는 사람이라는 것을 아직도 희망을 가져도 좋은 사람이라는 의미로 바꿔보자. (김이연)