Immer ein poster-frame(thumbnail) mit ffmpeg

Ich versuche, einen poster-frame aus einem video-file, mithilfe von ffmpeg.

Habe ich nach dieser tutorial kommen, mit dem folgenden code(die übernommen/adaptiert aus dem link, den ich gegeben):

public bool GetVideoThumbnail(string path, string saveThumbnailTo, int seconds)
        {
            string parameters = string.Format("-i {0} {1} -vcodec mjpeg -ss {2} -vframes 1 -an -f rawvideo", path, saveThumbnailTo, seconds);

            if (File.Exists(saveThumbnailTo))
            {
                return true;
            }
            else
            {
                using (Process process = Process.Start(pathToConvertor, parameters))
                {
                    process.WaitForExit();
                }
                return File.Exists(saveThumbnailTo);
            }
        }

Im moment wird dieser code erfolgreich erstellt, eine Datei in das richtige Ziel (saveThumbnailTo) nur das Bild ist komplett schwarz. Ich habe versucht, die änderung der Sekunden-Wert in den code, um sicherzustellen, dass ich nicht nur immer ein leeres Bild aus dem Anfang des Videos. Der Pfad bezieht sich auf, wo mein video gespeichert ist, durch die Art und Weise.

Ich bin derzeit ruft der obige code in etwa so:

GetVideoThumbnail(videoPath, folderPath + "/poster.jpg", 100)

..und dann übergeben Sie es aus, um meine Ansicht zum anzeigen der Bild. Ich Frage mich nur ob ".jpg" ist die Erweiterung, die ich geben sollte, um diese Datei als bin ich nicht ganz sicher?

Edit: Wenn ich den gleichen Befehl von der Kommandozeile aus, bekomme ich folgenden Fehler:

Unvereinbar pixel format 'yuv420p' codec 'mjpeg', auto-Auswahl
format 'yuvj420p'

erscheint in gelb und

[image2 @ 02S96AE0] Konnte nicht erhalten frame mit dem Namen die Nummer 2 aus Muster
'poster.jpg' an_interleaved_write_frame(): Invalid argument

erscheint in rot.

Könnte mir jemand helfen mit bekommen das richtig funktioniert als ich bin völlig Fremd mit der ffmpeg Kommandozeile und nicht sicher, was ich falsch mache. Ich habe versucht, das entfernen der vcodec parameter und die gleiche Fehlermeldung.

  • Haben Sie versucht, entfernen die -vcodec parameter?
  • Ja, aber bekomme immer noch die gleiche Fehlermeldung, ich update meine Frage
  • Sie können versuchen, hinzufügen: -r 1
  • Der Grund müssen Sie mit der-r-1 ist, weil wenn nicht werd es versuchen, erstellen Sie eine Sequenz von Bildern, und ich denke, das ist, warum Sie immer die Fehlermeldung, der name des Musters.
InformationsquelleAutor DevDave | 2012-07-03
Schreibe einen Kommentar