Ist ffmpeg die Lösung, um die Videoerstellung aus mehreren Dateien zu automatisieren?

Benötigen Sie Hilfe bei der Automatisierung von Video- und Audio-Stitching und könnten Hilfe / Anleitung gebrauchen.

Nehmen wir an, ich habe die folgenden Assets: Video 1 Video 2 Video 3 Musik 1

Und ich möchte ein paar Variationen der oben genannten Assets erstellen, wie zum Beispiel:

Variante #1
Video 1 -> Video 3
<----Musik 1----->

Variante #2
Video 3 -> Video 1
<----Musik 1----->

Hinweis Musik müsste basierend auf der Länge der kombinierten Videos gekürzt werden.

  1. Ist es möglich, den oben aufgeführten Assets (die sich auf einem lokalen Server befinden) ein Webformular zuzuordnen und das Webformular letztendlich die Reihenfolge des Videos zu erstellen und auf dem lokalen Server zu rendern?

  2. Wäre, wenn möglich, FFmpeg oder Animoto API (oder eine andere) die richtige Wahl?

  3. Wie viel Zeit/Ressourcen würde es brauchen, um so etwas zu bauen?

Antworten (1)

Sie können dies ffmpegentweder mit dem Concat-Filter oder dem Concat-Demuxer tun . Welche zu verwenden ist, hängt davon ab, ob Ihre Eingaben die gleichen Parameter haben oder nicht. Wenn dies nicht der Fall ist, müssen Sie möglicherweise eine zusätzliche Filterung durchführen, um alles für eine ordnungsgemäße Verkettung geeignet zu machen.

Beispiel: Concat-Filter

Für Eingaben, die in Bildrate, Breite und Höhe variieren:

ffmpeg -i video0 -i video1 -i video2 -i music -filter_complex \
"[0:v]fps=25,scale=1280x720,setpts=PTS-STARTPTS[v0]; \
"[1:v]fps=25,scale=1280x720,setpts=PTS-STARTPTS[v1]; \
"[2:v]fps=25,scale=1280x720,setpts=PTS-STARTPTS[v2]; \
"[v0][v1][v2]concat=n=3:v=1:a=0,format=yuv420p[v]" \
-map "[v]" -map 3:a -shortest output

Wenn Sie mp4 ausgeben, sollten Sie das Hinzufügen -movflags +faststartals Ausgabeoption in Betracht ziehen, wenn Ihre Zuschauer über progressiven Download zuschauen.

Beispiel: concat demuxer

Wenn alle Ihre Eingaben ähnlich sind, erstellen Sie zuerst eine Listendatei mit dem Namen input.txt:

file "/path/to/video0"
file "/path/to/video1"
file "/path/to/video2"

Dann laufen ffmpeg:

ffmpeg -f concat -i input.txt -i music -shortest output

Fügen Sie hinzu, wenn Sie eine Kopie streamen-codec copy möchten, anstatt sie neu zu codieren. Dies ist mit dem Concat-Filter nicht möglich, da das Filtern eine Neucodierung erfordert.

Deine Fragen

  1. Ist es möglich, den oben aufgeführten Assets (die sich auf einem lokalen Server befinden) ein Webformular zuzuordnen und das Webformular letztendlich die Reihenfolge des Videos zu erstellen und auf dem lokalen Server zu rendern?

Ja. Solange Ihr Protokoll von ffmpeg. Siehe ffmpeg -protocolsfür eine Liste, die von Ihrem Build unterstützt wird.

  1. Wäre, wenn möglich, FFmpeg oder Animoto API (oder eine andere) die richtige Wahl?

Es ist mit möglich ffmpeg, aber ich habe die Animoto-API noch nie verwendet, daher kann ich dazu nichts sagen.

  1. Wie viel Zeit/Ressourcen würde es brauchen, um so etwas zu bauen?

Das ist nicht wirklich zu beantworten. Sie haben nur sehr wenige Informationen bereitgestellt, und es hängt von den Fähigkeiten desjenigen ab, der sie erstellt.

Siehe auch