테스트 사이트 - 개발 중인 베타 버전입니다

gif to mp4 세번째 이야기

· 5년 전 · 1108 · 6

그누보드 5.4.2.8에서 gif to mp4를 위해서 lib/thumbnail.lib.php 에 이벤트가 추가 되어서

 

ffmpeg이 사용가능한 곳에서는 그누보드 플러그인을 사용가능합니다.

 

https://sir.kr/g5_plugin/7476

 

그런데 갤러리 게시판이나 웹진 같은 곳에서 리스트 스킨에서 사진을 줄여서 보여주는데, GiF도 비디오로 보여주면 좋은데

 

사진 게시판 중간쯤 https://sir.kr/cm_pix/p2  에 보면 전체가 다 보입니다.

 

그래서 일반 유튜브처럼 초기에 2초-3초 정도만 보여 주면 좋을 것 같습니다.

 

그래서 ffmpeg옵션을 찾아보니 -t 옵션이 있네요 -t 3 으로 하면 3초정도의 mp4 만들어 집니다.

 

이벤트 코드 https://github.com/gnuboard/gnuboard5/blob/master/lib/thumbnail.lib.php#L729

 

run_event('is_animated_gif_after', $filename, $cache[$key], $time);

 

을 넣어주고

 

아래와 같이 받아서

function fn_is_animated_gif_after_gif($filename, $is_count, $time=0){

 

$time이 0이면 기존 ffmpeg으로 하고

$time이 있으면 아래와 같이 -t $time 옵션으로 

 

@exec('ffmpeg -i '.escapeshellcmd(preg_replace('/[^0-9A-Za-z_\-\.\\\\\/]/i', '', $filename)).' -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" -c:v libx264 -pix_fmt yuv420p -movflags +faststart -t '.$time.' '.escapeshellcmd(preg_replace('/[^0-9A-Za-z_\-\.\\\\\/]/i', '', $mp4_file)));

 

get_list_thumbnail에서 시간 옵션을 가지고 불러지면 될 것 같습니다.

 

시간 옵션 테스트는 4.3버전으로 해 봤습니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 6개

1. 혹시 4.3이미지 pull해서 그누보드 도커에서 ffmpeg가 php exec() 명령어로 실행이 될까요?

전 도저히 안되더라구요.

ssh에서는 당연히 되던데...

docker내부에 있어서 그런지 명령어가 안먹히더라구요.

그냥php이미지에 ffmpeg를 그냥 설치하는 고전적인 방식으로 했는데

그누보드에서 ffmpeg를 활용할 수 있는 방법 부탁드립니다.

2. time옵션을 넣으면 기존 생성된 mp4와 파일 이름이 같게 형성되지 않을까요?

extend이 들어가는 파일에 poster 생성할 때 앞에 접두어 붙이는 것처럼 3초짜리도 'preview_파일이름' 이런 식으로 지정하는 것도 좋아보입니다.

그래서 thumbnail.lib.php에서 gif 썸네일을 3초짜리 mp4로 지정해주면 제일 좋겠네요.
@우성짱 그냥 개념적으로 php 코딩은 고수분들께서
php 너무 어려워요

thisgun님께서 코드 몇줄만 알려주시면 금방 넣을 듯 하지만요..
@우성짱 저도 PHP가 어렵습니다.
뭔가 테스트를 해보곤 싶은데 요즘 몸이 힘드니 눈에 잘 들어오질 않네요....ㅠㅠ

한가한 겨울에 이것저것 해볼 요량인데 그럿도 올해는 가능 할까 모르겠습니다.
@亞波治 한가지만 집중하셔야죠.

게시글 목록

번호 제목
1717629
1717626
1717625
1717621
1717619
1717611
1717610
1717609
1717607
1717601
1717598
1717591
1717590
1717583
1717575
1717572
1717568
1717566
1717549
1717545
1717533
1717512
1717511
1717508
1717495
1717479
1717473
1717470
1717463
1717452