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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
Kurze Erklärung:
Versuchen Sie mehrmals, mit unterschiedlichen Werten für die "Sekunden" - parameter.
Auch, stellen Sie sicher, dass die "pathToConvertor" korrekt ist.
Dieser arbeitete für mich, mit den letzten build von ffmpeg.exe auf einem Windows-Rechner.
Lassen Sie mich wissen, wie es geht.