![Verketten von Dateien aus Rawvideo](https://rvso.com/image/1645724/Verketten%20von%20Dateien%20aus%20Rawvideo.png)
Ich habe Adobe After Effects verwendet, um ein einfaches Outro von ca. 10 Sekunden für ein Video zu erstellen und es in das verlustfreie AVI-Format ( ) exportiert . Soweit ich weiß, gibt es in After Effects keine Möglichkeit, dem Video einen leeren Audiostream zu geben, und der Concat-Demuxer von FFmpeg erfordert, dass jeder Videostream einen Audiostream hat. Daher habe ich Folgendes ausgeführt, um etwas Stille hinzuzufügen und das Ganze in / rawvideo
neu zu kodieren :rawvideo
h264
opus
ffmpeg -i "YouTube Outro.avi" -f lavfi -i aevalsrc=0 -map 0 -map 1 -shortest -c:v libx264 -c:a libopus "Outro.mkv"
Die Probleme treten auf, wenn ich versuche, diese Datei mit meinem Originalvideo zu verknüpfen. Ich habe Folgendes in einer Datei:
file Original.mkv
file 'YouTube Outro.mkv'
Infos zu diesen Eingängen:
Input #0, matroska,webm, from 'Original.mkv':
Metadata:
ENCODER : Lavf58.65.100
Duration: 00:42:45.54, start: -0.007000, bitrate: 2521 kb/s
Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709/unknown/unknown, progressive), 1920x1080 [SAR
1:1 DAR 16:9], 25 fps, 25 tbr, 1k tbn, 50 tbc (default)
Metadata:
ENCODER : Lavc58.115.102 libx264
DURATION : 00:42:45.541000000
Stream #0:1: Audio: opus, 48000 Hz, stereo, fltp (default)
Metadata:
HANDLER_NAME : SoundHandler
VENDOR_ID : [0][0][0][0]
ENCODER : Lavc58.115.102 libopus
DURATION : 00:42:45.368000000
Input #1, matroska,webm, from 'YouTube Outro.mkv':
Metadata:
DATE : 2021-03-10T23:13:19.647059
ENCODER : Lavf58.65.100
Duration: 00:00:08.97, start: -0.007000, bitrate: 74 kb/s
Stream #1:0: Video: h264 (High 4:4:4 Predictive), yuv444p(tv, progressive), 1920x1080, 29.97 fps, 29.
97 tbr, 1k tbn, 59.94 tbc (default)
Metadata:
ENCODER : Lavc58.115.102 libx264
DURATION : 00:00:08.949000000
Stream #1:1: Audio: opus, 48000 Hz, mono, fltp (default)
Metadata:
ENCODER : Lavc58.115.102 libopus
DURATION : 00:00:08.968000000
At least one output file must be specified
... und verwenden Sie den concat
Demuxer, um sie zu verketten:
ffmpeg -f concat -safe 0 -i list.txt -c copy Final.mkv
Die resultierende Datei enthält das gesamte Originalvideo und ihr Zeitstempel gibt die hinzugefügten 10 Sekunden wieder. Wenn dieser Zeitstempel jedoch erreicht ist, wird nichts angezeigt. Tatsächlich friert das Video einige Frames ein, bevor das Originalvideo endet, und bleibt bis zum Ende der Videodauer auf diesem Frame hängen.
Was mache ich hier falsch, dass es so schwer ist, diese h264
/ opus
Dateien zu verketten?
Antwort1
Die Attribute müssen gleich seinfür die korrekte Verkettung mit demConcat-Demuxer. Pixelformat, Profil und Kanallayout variieren je nach Eingabe. Sorgen Sie dafür, dass sie übereinstimmen Original.mkv
:
ffmpeg -i "YouTube Outro.avi" -f lavfi -i anullsrc=cl=stereo:r=48000 -map 0 -map 1 -c:v libx264 -crf 18 -vf format=yuv420p -c:a libopus -shortest "Outro.mkv"