2012-04-12 80 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

試試這個命令

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

始終設置-ss -i之前,爲了從時長較長的視頻抓住拇指來優化性能。

0

我認爲如果您將其中一個第一幀作爲縮略圖提取,我認爲更容易。

相反-ss我使用-vf縮略圖= num_frame

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

我不斷收到的ffmpeg: '室顫' – Rahul 2012-04-13 00:49:50

+0

室顫識別的選項,videofilter是,如果你主動libavfilter http://ffmpeg.org/libavfilter.html#thumbnail認可 – 2012-04-13 06:54:07

0

確定這似乎爲我工作 的ffmpeg -itsoffset -4 -i test.avi -vcodec MJPEG -vframes 1 -an -f rawvideo -s 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'; 

}