PlexCleaner icon indicating copy to clipboard operation
PlexCleaner copied to clipboard

FFmpeg removes IETF language tags

Open ptr727 opened this issue 2 years ago • 0 comments

FFmpeg removes IETF BCP-47 language tags from MKV files during remuxing or encoding.

See FFmpeg Trac issue ticket.

See Matroska IETF Draft Spec
See Languages in Matroska and MKVToolNix WiKi
See Matroska EBML LanguageIETF tag

Summary: When FFmpeg creates MKV files from MKV files, the LanguageIETF tags from the original file is not written, and the language granularity is lost.

Create media file snippet: mkvmerge --split parts:00:00:00-00:01:00 --output MKV-IETF-Snippet.mkv MKV-IETF.mkv

MkvMerge: mkvmerge --identify MKV-IETF-Snippet.mkv --identification-format json

  • "language": "eng", "language_ietf": "en"
  • "language": "spa", "language_ietf": "es-ES"
  • "language": "srp", "language_ietf": "sr-Latn-RS"

MediaInfo: mediainfo --Output=XML MKV-IETF-Snippet.mkv

  • <Language>en</Language>
  • <Language>es-ES</Language>
  • <Language>sr-Latn-RS</Language>

FfProbe: ffprobe -loglevel quiet -show_streams -show_format -print_format json MKV-IETF-Snippet.mkv

  • "language": "eng"
  • "language": "spa"
  • "language": "srp"

ReMux using FfMpeg: ffmpeg -i MKV-IETF-Snippet.mkv -map 0 -codec copy -f matroska MKV-IETF-Snippet-FfMpeg.mkv

MkvMerge differences:

  • "language_ietf", ``: "en": Removed the IETF language tag
  • "language_ietf", ``: "es-ES": Removed the IETF language tag
  • "language_ietf", ``: "sr-Latn-RS": Removed the IETF language tag

MedaInfo difference:

  • <Default>No</Default>, <Default>Yes</Default>: Track changed from not default to default
  • <Language>en-US</Language>, <Language>en</Language>: Removed the IETF language tag granularity
  • <Language>es-ES</Language>, <Language>es</Language>: Removed the IETF language tag granularity
  • <Language>sr-Latn-RS</Language>, <Language>sr</Language>: Removed the IETF language tag granularity

FfProbe differences:

  • "default": 0, "default": 1: Changed track from not default to default

ptr727 avatar Mar 24 '23 00:03 ptr727