ffmpeg wirft "Nicht monotones DTS im Ausgabestrom"

750
cwinthrop

Ich versuche also 3 Videodateien zu verketten. Ich arbeite mit Linux und die Befehlszeile sieht folgendermaßen aus:

ffmpeg -f concat -safe 0 -i blist.txt -c copy output.mp4 

blist.txt enthält folgendes:

file 'btest/00 - Test Pattern.mp4' file 'btest/01 - In Memoriam.mp4' file 'btest/EndLoop.mp4' 

Sobald die zweite Datei verarbeitet wird, werden Fehler wie folgt ausgegeben, der Vorgang läuft jedoch weiter:

Non-monotonous DTS in output stream 0:0; 

Die resultierende Datei sollte 4:13 lang sein, endet jedoch mit 9:57. Der erste Clip wird perfekt abgespielt, aber danach ist alles schwarzer Bildschirm mit dem richtigen Ton für die verbleibenden 4:13 und dann Stille.

Ich weiß, dass ich alle Dateien neu codieren muss, aber ich weiß nicht, welche Parameter verwendet werden sollen.

Details zu jeder Eingabe und ffmpeg:

ffmpeg version N-92086-gd702769 Copyright (c) 2000-2018 the FFmpeg developers built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.10) 20160609 configuration: --disable-x86asm libavutil 56. 19.101 / 56. 19.101 libavcodec 58. 31.102 / 58. 31.102 libavformat 58. 18.103 / 58. 18.103 libavdevice 58. 4.105 / 58. 4.105 libavfilter 7. 33.100 / 7. 33.100 libswscale 5. 2.100 / 5. 2.100 libswresample 3. 2.100 / 3. 2.100 Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'upload/00 - Test Pattern.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf56.40.101 Duration: 00:02:26.87, start: 0.000000, bitrate: 243 kb/s Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 106 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default) Metadata: handler_name : VideoHandler Stream #0:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default) Metadata: handler_name : SoundHandler Input #1, mov,mp4,m4a,3gp,3g2,mj2, from 'upload/01 - In Memoriam.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf56.40.101 Duration: 00:01:32.07, start: 0.000000, bitrate: 219 kb/s Stream #1:0(eng): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 82 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default) Metadata: handler_name : VideoHandler Stream #1:1(eng): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default) Metadata: handler_name : SoundHandler Input #2, mov,mp4,m4a,3gp,3g2,mj2, from 'upload/99 - End Loop.mp4': Metadata: major_brand : isom minor_version : 512 compatible_brands: isomiso2avc1mp41 encoder : Lavf56.40.101 Duration: 00:00:15.05, start: 0.000000, bitrate: 236 kb/s Stream #2:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 99 kb/s, 29.97 fps, 29.97 tbr, 30k tbn, 59.94 tbc (default) Metadata: handler_name : VideoHandler Stream #2:1(und): Audio: aac (LC) (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 128 kb/s (default) Metadata: handler_name : SoundHandler At least one output file must be specified 

Kann mir bitte jemand dabei helfen?

1
Muss es "mp4" sein oder könnten Sie vielleicht "mkv" verwenden? Beachten Sie, dass Sie Audio- / Video-Streams nicht immer verketten können. Daniel B vor 6 Jahren 0
Es muss nicht sein, aber es wäre ideal. cwinthrop vor 6 Jahren 0
Zeigen Sie die vollständige Ausgabe von `ffmpeg -i" 00 - Test Pattern.mp4 "-i" 01 - In Memoriam.mp4 "-i" EndLoop.mp4 "` an LordNeckbeard vor 6 Jahren 0
@LordNeckbeard Das Einfügen ist zu lang. https://paste.ee/p/d7QEr cwinthrop vor 6 Jahren 0
Welchen Spieler verwendest du? Wie haben Sie die Dateien erstellt? Beim Betrachten der Konsolenausgabe sehe ich nichts offensichtlich falsches, vielleicht habe ich etwas übersehen, aber wenn Sie einen Link zu den Eingabedateien angeben, kann ich mir das genauer ansehen. LordNeckbeard vor 6 Jahren 0
Das Problem wurde vor ungefähr 15 Minuten behoben, indem die Dateien mit dem folgenden Befehl in .mkv konvertiert wurden: `ffmpeg -i" input / $ t.mp4 "-c: eine Kopie -c: v copy" output / $ o.mkv "` cwinthrop vor 6 Jahren 0

1 Antwort auf die Frage

0
cwinthrop

Lange Geschichte, kurz nach vielen Versuchen und Misserfolgen war jemand so freundlich, mir das Format von .mp4 in .mkv durchzureichen, was wunderbar funktioniert.

Der genaue Befehl war:

 ffmpeg -i "input/$t.mp4" -c:a copy -c:v copy "output/$o.mkv"