Kopieren Sie mehrere PGS-Untertitelspuren mit FFmpeg

Kopieren Sie mehrere PGS-Untertitelspuren mit FFmpeg

Ich verwende Debian 9. Ich habe eine Datei mit mehreren Audiospuren und Untertiteln in PGS. Ich möchte das Video an h265 weitergeben und alle Audiospuren und Untertitel so belassen, wie sie sind, in einem MKV-Container, da MP4 meines Wissens keine bildbasierten Untertitel unterstützt.

Der Befehl, den ich verwende, ist:

ffmpeg -i entrada.264.mkv -c:v libx265 -f matroska -map 0 salida.265.mkv

aber ich bekomme diesen Fehler in ffmpeg:

[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 6 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 7 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 8 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 9 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 10 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[matroska,webm @ 0x55ec1759fee0] Could not find codec parameters for stream 11 (Subtitle: hdmv_pgs_subtitle (pgssub)): unspecified size
Consider increasing the value for the 'analyzeduration' and 'probesize' options
Only SUBTITLE_ASS type supported.
Subtitle encoding failed

Und wenn Sie sie einzeln kopieren möchten, brennen Sie einfach die erste.

Hiersind die Daten der betreffenden Datei:

In Summe:

Erwartetes Ergebnis: Kodieren Sie eine Videodatei neu in h265 und kopieren Sie den gesamten Ton und alle Untertitel unverändert oder brennen Sie sie in das Video ein, um auswählen zu können, welche verwendet werden sollen.

Erhaltenes Ergebnis: Fehler aufgrund fehlender Parameter für die Untertitel.

Gibt es eine Möglichkeit, dies direkt von ffmpeg aus zu tun, ohne die Untertitel einzeln extrahieren und sie dann über ein Programm wie mkvmerge zum Video hinzufügen zu müssen?

Antwort1

Streamkopie(Re-Mux) alles außer dem Video:

ffmpeg -i entrada.264.mkv -map 0 -c copy -c:v libx265 salida.265.mkv

-map 0umfasst alle Ströme vom Eingang bis zum Ausgang, anstatt sich auf dieStandardmäßiges Streamauswahlverhaltendas nur einen Stream pro Stream-Typ umfasst.

Antwort2

Dies ist kein Fehler. Es ist eine Warnmeldung. Es -loglevel warningwird die folgende Meldung zurückgegeben:

ffmpeg -i entrada.264.mkv -loglevel warning -c:v libx265 -f matroska -map 0 salida.265.mkv

Und der -loglevel errorunterdrückt es:

ffmpeg -i entrada.264.mkv -loglevel error -c:v libx265 -f matroska -map 0 salida.265.mkv

Ich habe alle Untertitel meiner eigenen Ausgabe-MKV-Datei getestet durchUntertitel bearbeitenund sie sind alle intakt. Ich denke, diese Warnung wird nur angezeigt, um Sie zu warnen, falls Sie sich später entscheiden, diese Untertitel neu zu kodieren.

verwandte Informationen