2012-04-12 8 views
0
내가 썸네일로 사용하기 비디오에서 하나 개의 이미지를 얻을 필요가

를 사용하여 비디오 파일에서 이미지를 추출하는 방법을
그래서 나는 이것을 시도하고있다 :이는 FFmpeg

ffmpeg -ss 00:05:34.05 -i input.avi -vframes 1 -sameq output.jpg 

이 그러나 가끔 잘 작동합니다 이

av_interleaved_write_frame(): I/O error occurred 

보통 그 입력 파일이 잘린 및/또는 손상된 것을 의미 다음과 같은 오류 메시지와 함께 실패 곳은 한 동안 나는 파일을 건너.

내 옵션에는 무엇이 있습니까?
감사합니다.

답변

0

이 명령 항상 긴 길이의 동영상에서 엄지 손가락을 잡는 동안 성능을 최적화하기 위해 -i 전에 -ss 설정

ffmpeg -ss 5 -i sample.mp4 -vframes 1 -s 320x240 -f image2 -y sample.jpg; 

을 시도 -s.

0

첫 번째 프레임 중 하나를 미리보기 이미지로 추출하는 것이 더 쉽다고 생각합니다. 이 확인이 날 위해 일하는 것 같았다

ffmpeg -i input.avi -vf thumbnail=25 -vframes 1 -sameq output.jpg 
+0

내가는 FFmpeg 점점 계속 : – Rahul

+0

-vf '-vf'알 수없는 옵션을 http://ffmpeg.org/libavfilter.html#thumbnail libavfilter 활성이 경우, videofilter는 인식 –

0

내가 -vf 미리보기를 사용하는 대신 -ss의

= num_frame 는 FFmpeg -itsoffset -4 -i test.avi -vcodec MJPEG -vframes 1 -an -f rawvideo는 320 × 240 test.jpg를

0

예 ffmpeg를 사용하는 것이 가능합니다.

-ffmpeg를 서버에 설치하십시오.
- 예제 코드 아래에 선택하십시오.

extension_loaded('ffmpeg') or die('Error in loading ffmpeg'); 

// $vid = realpath('./video/Wildlife.wmv'); 

$video_url = 'http://download.wavetlan.com/SVV/Media/HTTP/H264/Talkinghead_Media/H264_test1_Talkinghead_mp4_480x360.mp4'; 

$image_filename = 'images/' . time() . ".jpg"; 

$movie = new ffmpeg_movie($video_url, false); 

$frameCount = $movie->getFrameCount(); 

$capPos = ceil($frameCount/4); 

$frameObject = $movie->getFrame($capPos); 

if ($frameObject) { 

    $frameObject->resize(500, 250, 0, 0, 0, 0); 

    imagejpeg($frameObject->toGDImage()); 

} else { 

    echo 'error'; 

}