그누보드 [FFMPEG] 동영상 썸네일 만들기
페이지 정보
본문
서버에 FFMPEG php 모듈이 설치된 경우에만 작동합니다
호스팅사에 사전 문의후 적용하세요
https://mike73.tistory.com/33 에 등록된 내용을 그누보드5에 적합하게 수정했습니다
실제 테스트 되지 않았으며, 서버에 모듈이 설치되면 테스트후 내용 보강하겠습니다
1. lib / thumnail_ffmpeg.lib.php 파일을 생성해서 아래 내용 저장
<?php
function getThumbnail($dest_file)
{
$path_parts = pathinfo($dest_file );
$path_parts = pathinfo($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);
$frameCount = 1;
$frameCount = $movie->getFrameCount();
$capPos = ceil($frameCount/4);
$frame = $movie->getFrame($frameCount);
//echo $path_parts['dirname'], "\n";
//echo $path_parts['basename'], "\n";
//echo $path_parts['extension'], "\n";
//echo $path_parts['filename'], "\n";
//$frame->resize(130, 90);
$frame->resize(130, 90, 0, 0, 0, 0);
imagejpeg($frame->toGDImage(), $path_parts['dirname']."/".$path_parts['filename'].".jpg");
//imagejpeg($frame->toGDImage(), $dest_file.".jpg");
}
// test
$dest_file = '/var/www/html/web/files/2014/06/04/f83abfb924430a34c3d7d516950c9f30184600.mp4';
getThumbnail($dest_file);
2. skin / board / basic / write_update.skin.php 에 아래 내용 추가
동영상파일에서 한장면을 jpg로 추출하는 부분이며 별도 DB에 저장하지 않고 올린 동영상 파일명뒤에 .jpg 확장자로 저장
<?php
// 올리는 동영상 파일에서 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 추출 끝
?>
3. 동영상 삭제시
삭제시에서 .jpg 파일 삭제하게끔 추가(delete.php나 delete_all.php 에..)
@unlink(G5_DATA_PATH ."/file/$bo_table/{$row2['bf_file']}.jpg");
호스팅사에 사전 문의후 적용하세요
https://mike73.tistory.com/33 에 등록된 내용을 그누보드5에 적합하게 수정했습니다
실제 테스트 되지 않았으며, 서버에 모듈이 설치되면 테스트후 내용 보강하겠습니다
1. lib / thumnail_ffmpeg.lib.php 파일을 생성해서 아래 내용 저장
<?php
function getThumbnail($dest_file)
{
$path_parts = pathinfo($dest_file );
$path_parts = pathinfo($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);
$frameCount = 1;
$frameCount = $movie->getFrameCount();
$capPos = ceil($frameCount/4);
$frame = $movie->getFrame($frameCount);
//echo $path_parts['dirname'], "\n";
//echo $path_parts['basename'], "\n";
//echo $path_parts['extension'], "\n";
//echo $path_parts['filename'], "\n";
//$frame->resize(130, 90);
$frame->resize(130, 90, 0, 0, 0, 0);
imagejpeg($frame->toGDImage(), $path_parts['dirname']."/".$path_parts['filename'].".jpg");
//imagejpeg($frame->toGDImage(), $dest_file.".jpg");
}
// test
$dest_file = '/var/www/html/web/files/2014/06/04/f83abfb924430a34c3d7d516950c9f30184600.mp4';
getThumbnail($dest_file);
2. skin / board / basic / write_update.skin.php 에 아래 내용 추가
동영상파일에서 한장면을 jpg로 추출하는 부분이며 별도 DB에 저장하지 않고 올린 동영상 파일명뒤에 .jpg 확장자로 저장
<?php
// 올리는 동영상 파일에서 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 추출 끝
?>
3. 동영상 삭제시
삭제시에서 .jpg 파일 삭제하게끔 추가(delete.php나 delete_all.php 에..)
@unlink(G5_DATA_PATH ."/file/$bo_table/{$row2['bf_file']}.jpg");
댓글목록
등록된 댓글이 없습니다.