
Ich habe mindestens 4 Videos von Videokonferenzen, die von meetecho/janus-gateway
Janus erstellt wurden. Ich habe für jeden Benutzer zwei MJR-Video- und Audiodateien erstellt. Zuerst habe ich sie zu einer WebM-Datei zusammengefügt und dann alle in 500 x 500 Videos konvertiert.
Jetzt versuche ich, diese Videos wie ein Mosaik zu kombinieren und habe diesen Code gefunden:
ffmpeg -i 1.webm -i 2.webm -i 3.webm -i 4.webm \
-speed 8 -deadline realtime -filter_complex "[0]pad=2*iw:2*ih[l]; \
[1]setpts=PTS-STARTPTS+428/TB[1v]; [l][1v]overlay=x=W/2[a]; \
[2]setpts=PTS-STARTPTS+439/TB[2v]; [a][2v]overlay=y=H/2[b]; \
[3]setpts=PTS-STARTPTS+514/TB[3v]; [b][3v]overlay=y=H/2:x=W/2[v]; \
[1]adelay=428372|428372[1a]; \
[2]adelay=439999|439999[2a]; \
[3]adelay=514589|514589[3a]; \
[0][1a][2a][3a]amix=inputs=4[a]" \
-map "[v]" -map "[a]" merged.webm
Ich habe die Verzögerungszeiten aus dem Erstellungsdatum und der Uhrzeit jeder Datei berechnet, bezogen auf das erste Video.
meine Probleme:
Dieser Code funktioniert nicht! Nachdem die Konsole mehrere Minuten eingefroren war, wird diese Zeile angezeigt:
Beendet 29 fps=0,1 q=0,0 Größe= 1kB Zeit=00:04:30.07 Bitrate= 0,0kbits/s Geschwindigkeit=0,896x
Ich habe die Bedeutung der Buchstaben vor und nach der Überlagerung nicht herausgefunden, [1v][2v][3v][l][a][b][v]...
Antwort1
Anstatt die Überlagerung mehrfach zu verwenden, versuchen Sie, den Filter „xstack“ mit allen Ihren Videospuren zu verwenden. Sie können zuerst alle Ihre Eingaben verzögern, sie dann an xstack weiterleiten und Ihr eigenes Layout erstellen.
Hier finden Sie ein Beispiel für die Verwendung von Piping mit xstack zum Erstellen eines Mosaiks.
Die Bedeutung der Symbole zwischen [ und ] ist lediglich ein Name/eine ID zur Identifizierung Ihrer Titel.
Wenn einem Filter wie „scale“ ein Input gegeben wird und Sie seinen Output mit einem anderen Filter verarbeiten möchten, können Sie das folgendermaßen machen:
-filter_complex "[0:v]scale=1920:1080[video_yourscaledoutput];[video_yourscaledoutput]your_next_filter=args[video_finaloutput]" -map "[video_finaloutput]" your_final_file.mp4
[0:v]
hier ist eine ID für die Videospur Ihres ersten Eingabestreams, den Rest können Sie beliebig benennen :)