FFMPEG führt zwei Videos zusammen, die kein Audio enthalten

468
Vivek Mishra

Ich habe zwei verschiedene Videos erstellt, die durch Kombination mehrerer Bilder zu Videos erstellt wurden. Unten ist der Befehl dafür.

"-f","concat","-safe", "0","-i",path,"-vsync","vfr","-pix_fmt","yuv420p",Environment.getExternalStorageDirectory().path+"/output1.mp4" 

Hier ist Pfad der Eingabepfad einer Textdatei, in der ich den Pfad aller Bilder angegeben habe, die zusammengefügt werden müssen.

Jetzt versuche ich, diese beiden Videos in einem einzigen Video zusammenzuführen. Dafür verwende ich den folgenden Befehl.

-i, /storage/emulated/0/output.mp4, -i, /storage/emulated/0/output1.mp4, -filter_complex, [1:v][0:v]scale2ref[ua][b];[ua]setsar=1;[0:v][1:v]concat=n=2:v=1:a=0[v], -map, [v], -preset, ultrafast, /storage/emulated/0/output3.mp4 

Aber es funktioniert nicht und gibt keine Fehler in den Protokollen. Dies ist jedoch die letzte Aussage, die in der Fortschrittsmethode gedruckt wird und für mich wie ein Fehler erscheint

Stream # 1: 0 (und): Video: h264 (avc1 / 0x31637661), yuv420p, 1000x800 [SAR 1: 1 DAR 5: 4], 838 kb / s, 0,83 fps, 1 TBl, 12800 TBit, 50 TBC (Standardeinstellung) )

Dies sind die Details der beiden Videos.

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from '/storage/emulated/0/output.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.12.100 Duration: 00:00:20.04, start: 0.000000, bitrate: 279 kb/s Stream #0:0(und): Video: h264 (avc1 / 0x31637661), yuv420p, 1280x854 [SAR 1:1 DAR 640:427], 279 kb/s, 0.25 fps, 0.20 tbr, 12800 tbn, 50 tbc (default) Metadata: handler_name : VideoHandler Input #1, mov,mp4,m4a,3gp,3g2,mj2, from '/storage/emulated/0/output1.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf58.12.100 Duration: 00:00:06.04, start: 0.000000, bitrate: 839 kb/s Stream #1:0(und): Video: h264 (avc1 / 0x31637661), yuv420p, 1000x800 [SAR 1:1 DAR 5:4], 838 kb/s, 0.83 fps, 1 tbr, 12800 tbn, 50 tbc (default) Metadata: handler_name : VideoHandler Input #2, lavfi, from 'anullsrc': Duration: N/A, start: 0.000000, bitrate: 705 kb/s Stream #2:0: Audio: pcm_u8, 44100 Hz, stereo, u8, 705 kb/s 

Was mache ich hier falsch?

UPDATE Dies sind die Protokolle nach der Verwendung des als Antwort freigegebenen Befehls.

Successfully opened the file. D/ffmpeg: progress [Parsed_scale2ref_0 @ 0xf16390c0] w:iw h:ih flags:'bilinear' interl:0 D/ffmpeg: progress [Parsed_setsar_1 @ 0xf1639120] Setting 'sar' to value '1' D/ffmpeg: progress [Parsed_concat_2 @ 0xf1639180] Setting 'n' to value '2' D/ffmpeg: progress [Parsed_concat_2 @ 0xf1639180] Setting 'v' to value '1' D/ffmpeg: progress [Parsed_concat_2 @ 0xf1639180] Setting 'a' to value '0' D/ffmpeg: progress Parsing a group of options: output url /storage/emulated/0/output3.mp4. D/ffmpeg: progress Applying option map (set input stream mapping) with argument [v]. D/ffmpeg: progress Successfully parsed a group of options. D/ffmpeg: progress Opening an output file: /storage/emulated/0/output3.mp4. 
0
Entfernen Sie das letzte `[2: a]` im Concat-Filter. Gyan vor 5 Jahren 0
@Gyan gibt es den folgenden Fehler jetzt:: a: 0 'in der Filtergraph-Beschreibung [1: v: 0] Maßstab = 640: 480, setsar = 1 [1v]; [0: v: 0] [2: a] [ 1: v: 0] [1: a: 0] concat = n = 2: v = 1: a = 1 [v] [a] stimmt mit keinen Streams überein. " Vivek Mishra vor 5 Jahren 0
Ihr 2. Video hat kein Audio, verwenden Sie stattdessen `[2: a]`. Gyan vor 5 Jahren 0
Keines meiner Videos verfügt über Audio. Ich habe diese Videos erstellt, indem Bilder in ein Video eingefügt wurden Vivek Mishra vor 5 Jahren 0
@Gyan Ich habe die Frage aktualisiert. Bitte überprüfe es jetzt Vivek Mishra vor 5 Jahren 0

1 Antwort auf die Frage

0
Gyan

Benutzen

-i, /storage/emulated/0/output.mp4, -i, /storage/emulated/0/output1.mp4,  -filter_complex, [1:v][0:v]scale2ref[ua][b];[ua]setsar=1[ua];[b][ua]concat=n=2:v=1:a=0[v], -map, [v], -preset, ultrafast, /storage/emulated/0/output3.mp4 
Es gibt keinen Fehler, ist aber auch nicht vollständig. Kein Fehler oder keine Warnung in Protokollen. Vivek Mishra vor 5 Jahren 0
Da ich davon ausgehen würde, dass ein Benutzer Ihres Repräsentationslevels und Ihrer Erfahrung weiß, ziehen wir es vor, dass die Antworten eine Erklärung enthalten und nicht nur "Verwenden Sie diesen Befehl". Scott vor 5 Jahren 0
Teilen Sie das vollständige Protokoll. Gyan vor 5 Jahren 0
Protokolle in der Frage hinzugefügt Vivek Mishra vor 5 Jahren 0
Führen Sie '-v 48' aus und geben Sie die vollständige Konsolenausgabe frei. Gyan vor 5 Jahren 0
@Gyan hat die Protokolle in der Frage mit "-v 48" aktualisiert Vivek Mishra vor 5 Jahren 0
Teilen Sie die vollständige Konsolenausgabe. Gyan vor 5 Jahren 0
Danke für Ihre Hilfe. Ich habe es jetzt zum Laufen gebracht. Das Problem bestand darin, dass die Ausgabedatei nicht vom Befehl erstellt wurde. Ich habe eine neue Datei manuell erstellt und dann an den Befehl übergeben, und es hat funktioniert. Vivek Mishra vor 5 Jahren 0