2013-04-25 2 views
0

처음으로 비디오 파일에서 미리보기 이미지 미리보기를 만들려고했는데 209747 프레임의 700mb .avi 필름을 업로드했습니다. 이제 1 개의 미리보기 이미지를 만들려고하는데 프레임 10000을 설정했기 때문에 4.7 초가 걸렸습니다. 1000으로 설정하면 미리보기 이미지를 생성하는 데 불과 0.4 초 밖에 걸리지 않습니다.php-ffmpeg가 너무 느려서 축소판을 생성합니까?

이동 중에 다른 프레임에서 5-10 개의 미리보기 이미지를 만들려면 어떻게해야합니까? 심지어 가능할까요? exec (ffmpeg) 또는 php-ffmpeg를 사용하는 것과 다른가요? 0.6-svn ffmpeg, 데비안 6.0.7, PHP 5.4.14를 머신 2x Xeon L5420에 사용하면 여전히 느립니다 ... 어떤 아이디어입니까? 프레임 대신 비디오의 ffmpeg + 시간을 사용하는 것은 어떻습니까? 우선

$movie = 'ai.avi'; 
$thumbnail = 'thumbnail.jpg'; 

$mov = new ffmpeg_movie($movie); 
$frame = 10000; 
$frame = $mov->getFrame($frame); 

if($frame) { 
    $gd_image = $frame->toGDImage(); 
    if($gd_image) { 
    imagejpeg($gd_image, $thumbnail, 100); 
    imagedestroy($gd_image); 
    } 
} 
echo '<img src="'.$thumbnail.'" ><br />'; 

답변

5

, 당신은 FFmpeg-php하지 php-FFmpeg을 사용하고 있습니다. 이 두 프로젝트는 FFmpeg-php 프로젝트가 아주 오래되었습니다.

프레임을 10,000 번째 또는 1,000 번째 프레임으로 변경할 때의 프로세스 차이가 너무 높습니다. 아마도 php-ffmpeg 이미지 추출 기능이 좋지 않기 때문일 수 있습니다. 80 초 정도 걸릴 것으로 예상되는 200,000 번째 프레임을 사용해 볼 수 있습니까? 이것이 사실이라면 toGDImage() 기능이 너무 느립니다! 당신이 toGDImage() 기능을 조정할 수 있습니다 또는 사용이 ffmpeg -ss 00:10:00 -i input.avi -vframes 1 output.jpg

  • 처럼는 FFmpeg - PHP에서 직접 명령 또는 php-FFmpeg을 구현하려고하면 알아

    1. 시도를 :

      은 그럼 당신은 성능을 개선하는 데 도움이되는 몇 가지 옵션이 있습니다 라이브러리는 위의 명령을 사용하는 고속 extractImage() 기능을 포함합니다.

  • +0

    예 옛날에 php5-ffmpeg라고 불리는 FFmpeg-php를 사용했습니다. ffmpeg를 설치하고 exec(), image를 완료 한 지 200 초의 프레임을 생성하는데 51 초가 걸렸습니다. 인상적이었던 0.08 초에 저장되었습니다! 고마워요 - upvote! 한 가지 질문 : ffmpeg에 대한 변수 목록은 어디에서 찾을 수 있습니까? 이미지 화질을 80으로 줄이거 나 비디오 파일에 대한 정보 (예 : 프레임 수, 길이 등)를 추출하려면 어떻게합니까? 고마워요 :] –

    +0

    그 51 초 얼마나 몹시 천천히, 업데이트에 대한 좋은 직업을 설명! [FFmpeg CLI documentation] (http://www.ffmpeg.org/ffmpeg.html)을 읽으면서 방금 요청한 거의 모든 것을 설명합니다. 또한 인터넷에는 튜토리얼이 가득합니다. –