2017-01-21 2 views
0

Ich habe versucht, mit ffmpeg 2 MKV-Videos verketten, die folgenden Befehle:Problem beim Verketten von MKVs mit ffmpeg: Zeitstempel richtig einstellen?

ffmpeg -i file-01.mkv -f mpegts -c copy -bsf:v h264_mp4toannexb file-01.mpeg.ts 
ffmpeg -i file-02.mkv -f mpegts -c copy -bsf:v h264_mp4toannexb file-02.mpeg.ts 
ffmpeg -isync -i "concat:file-01.mpeg.ts|file-02.mpeg.ts" -f matroska 
-c copy output.mkv 

Allerdings erhalte ich folgende Fehlermeldung:

[matroska @ 0x7fc72a000600] Timestamps are unset in a packet for stream 0. This is deprecated and will stop working in the future. Fix your code to set the timestamps properly [matroska @ 0x7fc72a000600] Can't write packet with unknown timestamp av_interleaved_write_frame(): Invalid argument

Wie gehe ich über den Zeitstempel einstellen?

+0

'-isync' wurde vor einigen Jahren deaktiviert. Entfernen Sie es, wenn Ihr ffmpeg nicht so alt ist. Fügen Sie '-fflags + genpts' vor dem '-i' hinzu – Mulvya

+0

Danke das, @Mulvya. Ich habe das mit '-fflags + genpts' versucht, aber den gleichen Fehler mit nicht gesetzten Zeitstempeln erhalten. –

+0

Spielt das Ergebnis gut? – Mulvya

Antwort

0

Nicht unbedingt eine Lösung, per se, aber mkvmerge arbeitete für mich am Ende. War viel einfacher auch:

mkvmerge -o "merged.mkv" "file1.mkv" +"file2.mkv" 
0

Ok, versuchen Sie diese Schritte:

ffmpeg -i file-01.mkv -c copy -map v 01.mp4 
ffmpeg -i file-02.mkv -c copy -map v 02.mp4 
ffmpeg -i 01.mp4 -i file-01.mkv -map 0:v -map 1:a -c copy -bsf:v h264_mp4toannexb file-01.mpeg.ts 
ffmpeg -i 02.mp4 -i file-02.mkv -map 0:v -map 1:a -c copy -bsf:v h264_mp4toannexb file-02.mpeg.ts 
ffmpeg -i "concat:file-01.mpeg.ts|file-02.mpeg.ts" -f matroska 
-c copy output.mkv 

Einige H.264-Streams haben Pakete ohne PTS-Werte. FFmpeg hat zufällige Unterstützung für das Muxen dieser Streams.

+0

Immer noch nicht funktioniert, @Mulvya. Gleiche Fehler, die zu einer fehlgeschlagenen Konvertierung führen: '[matroska @ 0x7f869c000000] Zeitstempel sind in einem Paket für Stream 0 nicht gesetzt. Dies ist veraltet und wird in Zukunft nicht mehr funktionieren. Korrigieren Sie Ihren Code, um die Zeitstempel richtig einzustellen [Matroska @ 0x7f869c000000] kann Paket mit unbekanntem Zeitstempel nicht schreiben av_interleaved_write_frame(): ungültiges Argument Rahmen = 1143 fps = 0,0 q = -1.0 Lsize = 8381kB Zeit = 00: 00: 45.60 Bitrate = 1505.7kbit/s Geschwindigkeit = 667x Video: 7857kB Audio: 528kB Untertitel: 0kB andere Streams: 0kB globale Header: 0kB Muxing Overhead: unbekannt Konvertierung fehlgeschlagen! ' –

+0

Laden Sie die Dateien hoch. – Mulvya

+0

Ich landete stattdessen mit mkvmerge. Hatte keine Probleme. Viel einfacher. –

Verwandte Themen