2012-04-12 16 views
0

Ich brauche ein Bild, um aus einem Video als Miniaturansicht zu verwenden
So versuche ich dies:, wie Bilder aus einer Videodatei zu extrahieren ffmpeg mit

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

Dies funktioniert jedoch nur gut jeder einmal in einer Weile stoße ich auf eine Datei, in der dies mit der Meldung

folgenden Fehler fehlschlägt
av_interleaved_write_frame(): I/O error occurred 

, dass in der Regel bedeutet, dass Eingabedatei wird abgeschnitten und/oder beschädigt.

Was sind meine Optionen wenn überhaupt?
Dank

Antwort

0

diesen Befehl Versuchen

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

immer vor -i gesetzt, um -ss Leistung zu optimieren, während der Daumen von großer Länge Videos greifen.

0

Ich denke, einfacher ist, wenn man eine der ersten Frames als Thumbnail extrahiert.

Statt -ss ich -vf Thumbnail verwenden = num_frame

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

Ich halte ffmpeg bekommen: nicht erkannte Option '-vf' – Rahul

+0

-vf wird erkannt, wenn Sie Videofilter aktiv libavfilter http://ffmpeg.org/libavfilter.html#thumbnail –

0

ok dies schien für mich zu arbeiten ffmpeg -itsoffset -4 -i test.avi -vcodec mjpeg -vframes 1 -an -f rawvideo reines es 320x240 test.jpg

0

ja es ist möglich mit ffmpeg.

-Installieren ffmpeg in Ihrem Server.
-check unten Beispielcode.

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'; 

} 
Verwandte Themen