Erstellen Sie Thumbnails von Videos in Django mithilfe von ffmpeg

431
Peter Hassaballah

Derzeit erstelle ich eine Website, auf der Benutzer Videos hochladen und wiedergeben können. Die Video-Upload-Methode funktioniert gut. Das Problem ist, ich versuche, ein Miniaturbild für jedes Video zu erstellen. Anstatt Videos in "<a>" - Tags darzustellen, möchte ich, dass sie ein Bild sind, auf das ein Benutzer klicken kann, und dann auf eine andere Seite wechseln, um das Video abzuspielen. Ich versuche, für jedes Video beim Hochladen mithilfe von ffmpeg eindeutige Miniaturansichten zu erstellen. Das Problem ist, dass ich einen Fehler beim Lesen des Headers "Dateiname" bekomme: Ungültige Daten bei der Verarbeitung von Eingaben gefunden. Gibt es einen Grund dafür? Ich laufe gerade auf meinem localhost. HINWEIS: Der Befehl ffmpeg funktioniert in Ordnung.
HINWEIS: Die Umgebung ist: Win10 64, Django 1.10 (Python 2.7). Ffmpeg ist die neueste Version

0
Bitte zeigen Sie den tatsächlichen Befehl, den Sie ausführen möchten (nicht nur den Python-Code) und die vollständige Befehlszeilenausgabe von ffmpeg. slhck vor 6 Jahren 0
MEIN BEFEHL: subprocess.call ("ffmpeg -i" + hochgeladener_Dateiname + '-vf "Miniaturansicht, Maßstab = 1080: 1080" -Frames: v 1' + Miniaturbildname, shell = True) OUTPUT: libavutil 56. 12.100 / 56. 12.100 libavcodec 58. 15.100 / 58. 15.100 libavformat 58. 10.100 / 58. 10.100 libavdevice 58. 2.100 / 58. 2.100 libavfilter 7. 13.100 / 7. 13.100 libswscale 5. 0.102 / 5. 0.102 libswresample 3. 0.101 / 3. 0.101 libpostproc 55 0,100 / 55. 0,100 [mov, mp4, m4a, 3gp, 3g2, mj2 @ 0000017cd729a480] Fehler beim Lesen des Headers output002.mp4: Beim Verarbeiten der Eingabe wurden ungültige Daten gefunden Peter Hassaballah vor 6 Jahren 0
Bitte verwenden Sie keine Befehle, sondern [bearbeiten] Sie Ihre Frage, um diese Informationen aufzunehmen. Und zeigen Sie bitte die gesamte Ausgabe Ihres Anrufs an. Wie lautet die Ausgabe des ffmpeg-Befehls, die „funktioniert in Ordnung“? Könnte es sein, dass Sie eine andere Version von ffmpeg als Python verwenden? slhck vor 6 Jahren 0

1 Antwort auf die Frage

0
Peter Hassaballah

Am Ende änderte ich meine Methode, um ein Miniaturbild zu erfassen, indem ich eine bestimmte Dauer in meinem Video suchte und dann das Foto des Frames mit dem folgenden Befehl
aufzeichnete. v 1 "+ thumbnail_name, shell = True)