VidCoder icon indicating copy to clipboard operation
VidCoder copied to clipboard

Picker: Custom names for subtitles not written to file

Open mpek opened this issue 3 months ago • 3 comments

Problem Description

In Picker, custom track names are being defined for subtitles: 1: Forced 2: Normal This was inteded to external subtitle files being added through encoding, but those custom names don't show in Player (MPC-HC or VLC).

What version of VidCoder are you running?

12.10

Encode Log

VC [13:23:39] VidCoder 12.10
VC [13:23:39] Starting job 1/1
VC [13:23:39]   Source path: C:\Users\User\Videos\Test\MKV testvideo with 5-audio tracks.mkv
VC [13:23:39]   Destination path: C:\Users\User\Videos\VidCoder Export\MKV testvideo with 5-audio tracks.mp4
VC [13:23:39]   Title: 1
VC [13:23:39]   Range: All
VC [13:23:39]   Preset: MP4 H264amd CQ28 prog aac-mono
VC [13:23:39]   Picker: TZ H264 Audio1,2/UText-csutomname
VC [13:23:39] Worker ready: Pipe 'VidCoderWorker.e4c9f9aa-e0ca-4a01-af44-fa478ac037b0' is open
VC [13:23:39] Connecting to process 1924 on pipe VidCoderWorker.e4c9f9aa-e0ca-4a01-af44-fa478ac037b0
HB [13:23:39] CPU: AMD Ryzen 5 PRO 4650U with Radeon Graphics
[13:23:39]  - logical processor count: 12
[13:23:39] Intel Quick Sync Video support: no
[13:23:39] hb_scan: path=C:\Users\User\Videos\Test\MKV testvideo with 5-audio tracks.mkv, title_index=1
Input #0, matroska,webm, from 'C:\Users\User\Videos\Test\MKV testvideo with 5-audio tracks.mkv':
  Metadata:
    encoder         : libmakemkv v1.17.6 (1.3.10/1.5.2) win(x64-release)
    creation_time   : 2024-03-28T10:08:11.000000Z
    SUBTITLE        : deu
    COMMENT         : Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata
    GENRE           : Action
    LANGUAGE        : deu/eng
    ORIGINAL_MEDIA_TYPE: FHD
    TITLE           : MKV testvideo with 5-audio tracks
    DATE_RECORDED   : 1979
  Duration: 00:25:57.26, start: 0.000000, bitrate: 24950 kb/s
  Stream #0:0(eng): Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 23.98 fps, 23.98 tbr, 1k tbn
      Metadata:
        BPS-eng         : 19945592
        DURATION-eng    : 00:25:55.679125000
        NUMBER_OF_BYTES-eng: 3878617490
        NUMBER_OF_FRAMES-eng: 37299
        SOURCE_ID-eng   : 001011
        _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
        _STATISTICS_WRITING_APP-eng: MakeMKV v1.17.6 win(x64-release)
        _STATISTICS_WRITING_DATE_UTC-eng: 2024-03-28 10:08:11
  Stream #0:1(deu): Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s (default)
      Metadata:
        title           : Stereo
        BPS-eng         : 1536000
        DURATION-eng    : 00:25:55.930000000
        NUMBER_OF_BYTES-eng: 298738560
        NUMBER_OF_FRAMES-eng: 46678
        SOURCE_ID-eng   : 001100
        _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
        _STATISTICS_WRITING_APP-eng: MakeMKV v1.17.6 win(x64-release)
        _STATISTICS_WRITING_DATE_UTC-eng: 2024-03-28 10:08:11
  Stream #0:2(eng): Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
      Metadata:
        title           : Stereo
        BPS-eng         : 1536000
        DURATION-eng    : 00:25:57.260000000
        NUMBER_OF_BYTES-eng: 298993920
        NUMBER_OF_FRAMES-eng: 46718
        SOURCE_ID-eng   : 001101
        _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
        _STATISTICS_WRITING_APP-eng: MakeMKV v1.17.6 win(x64-release)
        _STATISTICS_WRITING_DATE_UTC-eng: 2024-03-28 10:08:11
  Stream #0:3(eng): Audio: pcm_s16le, 48000 Hz, 2 channels, s16, 1536 kb/s
      Metadata:
        title           : Stereo
        BPS-eng         : 1536000
        DURATION-eng    : 00:25:57.260000000
        NUMBER_OF_BYTES-eng: 298993920
        NUMBER_OF_FRAMES-eng: 46718
        SOURCE_ID-eng   : 001102
        _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
        _STATISTICS_WRITING_APP-eng: MakeMKV v1.17.6 win(x64-release)
        _STATISTICS_WRITING_DATE_UTC-eng: 2024-03-28 10:08:11
  Stream #0:4(eng): Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
      Metadata:
        title           : Stereo
        BPS-eng         : 192000
        DURATION-eng    : 00:25:57.248000000
        NUMBER_OF_BYTES-eng: 37373952
        NUMBER_OF_FRAMES-eng: 48664
        SOURCE_ID-eng   : 001103
        _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
        _STATISTICS_WRITING_APP-eng: MakeMKV v1.17.6 win(x64-release)
        _STATISTICS_WRITING_DATE_UTC-eng: 2024-03-28 10:08:11
  Stream #0:5: Audio: ac3, 48000 Hz, stereo, fltp, 192 kb/s
      Metadata:
        title           : Stereo
        BPS-eng         : 192000
        DURATION-eng    : 00:25:57.248000000
        NUMBER_OF_BYTES-eng: 37373952
        NUMBER_OF_FRAMES-eng: 48664
        SOURCE_ID-eng   : 001104
        _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
        _STATISTICS_WRITING_APP-eng: MakeMKV v1.17.6 win(x64-release)
        _STATISTICS_WRITING_DATE_UTC-eng: 2024-03-28 10:08:11
  Stream #0:6(deu): Subtitle: hdmv_pgs_subtitle (pgssub)
      Metadata:
        BPS-eng         : 27980
        DURATION-eng    : 00:01:24.521937500
        NUMBER_OF_BYTES-eng: 295613
        NUMBER_OF_FRAMES-eng: 16
        SOURCE_ID-eng   : 001200
        _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
        _STATISTICS_WRITING_APP-eng: MakeMKV v1.17.6 win(x64-release)
        _STATISTICS_WRITING_DATE_UTC-eng: 2024-03-28 10:08:11
  Stream #0:7(deu): Subtitle: hdmv_pgs_subtitle (pgssub)
      Metadata:
        BPS-eng         : 24864
        DURATION-eng    : 00:25:33.469437500
        NUMBER_OF_BYTES-eng: 4766026
        NUMBER_OF_FRAMES-eng: 425
        SOURCE_ID-eng   : 001201
        _STATISTICS_TAGS-eng: BPS DURATION NUMBER_OF_FRAMES NUMBER_OF_BYTES SOURCE_ID
        _STATISTICS_WRITING_APP-eng: MakeMKV v1.17.6 win(x64-release)
        _STATISTICS_WRITING_DATE_UTC-eng: 2024-03-28 10:08:11
[13:23:39] scan: decoding previews for title 1
[13:23:39] scan: audio 0x1: pcm_s16le, rate=48000Hz, bitrate=1536000 Deutsch (pcm_s16le, 2.0 ch, 1536 kbps)
[13:23:39] scan: audio 0x2: pcm_s16le, rate=48000Hz, bitrate=1536000 English (pcm_s16le, 2.0 ch, 1536 kbps)
[13:23:39] scan: audio 0x3: pcm_s16le, rate=48000Hz, bitrate=1536000 English (pcm_s16le, 2.0 ch, 1536 kbps)
[13:23:39] scan: audio 0x4: ac3, rate=48000Hz, bitrate=192000 English (AC3, 2.0 ch, 192 kbps)
[13:23:39] scan: audio 0x5: ac3, rate=48000Hz, bitrate=192000 Unknown (AC3, 2.0 ch, 192 kbps)
HB [13:23:40] using container PAR 1:1
[13:23:40] scan: 10 previews, 1920x1080, 23.976 fps, autocrop = 0/0/254/254, aspect 16:9, PAR 1:1, color profile: 1-1-1, chroma location: left
[13:23:40] libhb: scan thread found 1 valid title(s)
HB [13:23:41] Starting work at: Tue Oct 28 13:23:41 2025
[13:23:41] 1 job(s) to process
[13:23:41] json job:
{
  "Audio": {
    "AudioList": [
      {
        "Bitrate": 0,
        "DRC": 0,
        "Encoder": "av_aac",
        "Gain": 0,
        "Mixdown": 1,
        "NormalizeMixLevel": false,
        "Samplerate": 0,
        "Name": "Stereo",
        "Track": 0,
        "DitherMethod": 0
      },
      {
        "Bitrate": 0,
        "DRC": 0,
        "Encoder": "av_aac",
        "Gain": 0,
        "Mixdown": 1,
        "NormalizeMixLevel": false,
        "Samplerate": 0,
        "Name": "Stereo",
        "Track": 1,
        "DitherMethod": 0
      }
    ],
    "CopyMask": [
      "copy:aac",
      "copy:ac3",
      "copy:eac3",
      "copy:truehd",
      "copy:dts",
      "copy:dtshd",
      "copy:mp2",
      "copy:mp3",
      "copy:opus",
      "copy:vorbis",
      "copy:flac",
      "copy:alac"
    ]
  },
  "Destination": {
    "ChapterList": [
      {
        "Name": "Chapter 1"
      }
    ],
    "ChapterMarkers": true,
    "AlignAVStart": true,
    "File": "C:\\Users\\User\\Videos\\VidCoder Export\\MKV testvideo with 5-audio tracks.part.mp4",
    "Options": {
      "IpodAtom": false,
      "Optimize": true
    },
    "Mux": "av_mp4"
  },
  "Filters": {
    "FilterList": [
      {
        "ID": 11,
        "Settings": {
          "mode": "1"
        }
      },
      {
        "ID": 20,
        "Settings": {
          "crop-bottom": "0",
          "crop-left": "254",
          "crop-right": "252",
          "crop-top": "0",
          "height": "1080",
          "width": "1414"
        }
      }
    ]
  },
  "PAR": {
    "Num": 1,
    "Den": 1
  },
  "Metadata": {
    "CreationTime": "2024-03-28T10:08:11.000000Z",
    "Genre": "Action",
    "Name": "MKV testvideo with 5-audio tracks",
    "Subtitle": "deu"
  },
  "SequenceID": 0,
  "Source": {
    "Angle": 1,
    "Range": {
      "Type": "chapter",
      "Start": 1,
      "End": 1
    },
    "Title": 1,
    "Path": "C:\\Users\\User\\Videos\\Test\\MKV testvideo with 5-audio tracks.mkv",
    "HWDecode": 0,
    "KeepDuplicateTitles": false
  },
  "Subtitle": {
    "Search": {
      "Burn": false,
      "Default": false,
      "Enable": false,
      "Forced": false
    },
    "SubtitleList": [
      {
        "Burn": false,
        "Default": false,
        "Forced": false,
        "ID": 0,
        "Offset": 0,
        "Track": -1,
        "Import": {
          "Codeset": "UTF-8",
          "Filename": "C:\\Users\\User\\Videos\\Test\\MKV testvideo with 5-audio tracks..forced.deu.srt",
          "Language": "deu",
          "Format": "SRT"
        }
      },
      {
        "Burn": false,
        "Default": false,
        "Forced": false,
        "ID": 0,
        "Offset": 0,
        "Track": -1,
        "Import": {
          "Codeset": "UTF-8",
          "Filename": "C:\\Users\\User\\Videos\\Test\\MKV testvideo with 5-audio tracks.deu.srt",
          "Language": "deu",
          "Format": "SRT"
        }
      }
    ]
  },
  "Video": {
    "Encoder": "vce_h264",
    "Level": "auto",
    "MultiPass": false,
    "Turbo": false,
    "ColorMatrixCode": 0,
    "Options": "",
    "Preset": "main",
    "Profile": "auto",
    "Quality": 28,
    "HardwareDecode": 0
  }
}
[13:23:41] Starting Task: Encoding Pass
[13:23:41] work: bitrate not specified, track 1 setting bitrate 80 Kbps
[13:23:41] work: track 1, dithering not supported by codec
[13:23:41] work: bitrate not specified, track 2 setting bitrate 80 Kbps
[13:23:41] work: track 2, dithering not supported by codec
[13:23:41] work: only 1 chapter, disabling chapter markers
[13:23:41] job configuration:
[13:23:41]  * source
[13:23:41]    + C:\Users\User\Videos\Test\MKV testvideo with 5-audio tracks.mkv
[13:23:41]    + title 1, chapter(s) 1 to 1
[13:23:41]    + container: matroska,webm
[13:23:41]    + data rate: 24950 kbps
[13:23:41]  * destination
[13:23:41]    + C:\Users\User\Videos\VidCoder Export\MKV testvideo with 5-audio tracks.part.mp4
[13:23:41]    + container: MPEG-4 (libavformat)
[13:23:41]      + optimized for HTTP streaming (fast start)
[13:23:41]      + align initial A/V stream timestamps
[13:23:41]  * video track
[13:23:41]    + decoder: h264 8-bit (yuv420p)
[13:23:41]    + filters
[13:23:41]      + Framerate Shaper (mode=1)
[13:23:41]        + frame rate: 23.976 fps -> constant 23.976 fps
[13:23:41]      + Crop and Scale (width=1414:height=1080:crop-top=0:crop-bottom=0:crop-left=254:crop-right=252)
[13:23:41]        + source: 1920 * 1080, crop (0/0/254/252): 1414 * 1080, scale: 1414 * 1080
[13:23:41]    + Output geometry
[13:23:41]      + storage dimensions: 1414 x 1080
[13:23:41]      + pixel aspect ratio: 1 : 1
[13:23:41]      + display dimensions: 1414 x 1080
[13:23:41]    + encoder: H.264 (AMD VCE)
[13:23:41]      + preset:  main
[13:23:41]      + profile: auto
[13:23:41]      + level:   auto
[13:23:41]      + quality: 28.00 (CQ)
[13:23:41]      + color profile: 1-1-1
[13:23:41]      + color range: tv
[13:23:41]      + chroma location: left
[13:23:41]  * subtitle track 1, Deutsch (SRT) (track 0, id 0xff000000, Text) -> Passthru, offset: 0, charset: UTF-8
[13:23:41]  * subtitle track 2, Deutsch (SRT) (track 0, id 0xff000100, Text) -> Passthru, offset: 0, charset: UTF-8
[13:23:41]  * audio track 1
[13:23:41]    + name: Stereo
[13:23:41]    + decoder: Deutsch (pcm_s16le, 2.0 ch, 1536 kbps) (track 1, id 0x1)
[13:23:41]      + bitrate: 1536 kbps, samplerate: 48000 Hz
[13:23:41]    + mixdown: Mono
[13:23:41]    + encoder: AAC (libavcodec)
[13:23:41]      + bitrate: 80 kbps, samplerate: 48000 Hz
[13:23:41]  * audio track 2
[13:23:41]    + name: Stereo
[13:23:41]    + decoder: English (pcm_s16le, 2.0 ch, 1536 kbps) (track 2, id 0x2)
[13:23:41]      + bitrate: 1536 kbps, samplerate: 48000 Hz
[13:23:41]    + mixdown: Mono
[13:23:41]    + encoder: AAC (libavcodec)
[13:23:41]      + bitrate: 80 kbps, samplerate: 48000 Hz
[13:23:41] sync: expecting 37336 video frames
[13:23:41] encavcodecInit: H.264 (AMD VCE)
[13:23:41] encavcodec: encoding at CQ 28.00
[13:23:41] encavcodec: QP (I)   28.00
[13:23:41] encavcodec: QP (P)   30.00
[13:23:41] encavcodec: QP (B)   32.00
[13:23:41] encavcodec: GOP Size 47
[13:23:41] encavcodec: encoding with stored aspect 1/1
HB [13:23:41] sync: first pts video is 0
[13:23:41] sync: "Chapter 1" (1) at frame 1 time 0
[13:23:41] sync: first pts audio 0x1 is 0
[13:23:41] sync: first pts audio 0x2 is 0
HB [13:23:41] sync: first pts subtitle 0xff000100 is 547920
HB [13:26:13] sync: first pts subtitle 0xff000000 is 130953240
HB [13:26:23] reader: done. 1 scr changes
HB [13:26:23] work: average encoding speed for job is 229.496048 fps
HB [13:26:23] vfr: 37299 frames output, 0 dropped and 0 duped for CFR/PFR
[13:26:23] vfr: lost time: 0 (0 frames)
[13:26:23] vfr: gained time: 0 (0 frames) (0 not accounted for)
[13:26:23] pcm_s16le-decoder done: 46678 frames, 0 decoder errors
[13:26:23] pcm_s16le-decoder done: 46718 frames, 0 decoder errors
[13:26:23] h264-decoder done: 37299 frames, 0 decoder errors
HB [13:26:23] sync: got 37299 frames, 37336 expected
[13:26:23] sync: framerate min 23.976 fps, max 23.976 fps, avg 23.976 fps
HB [13:26:24] mux: track 0, 37299 frames, 379842873 bytes, 1951.28 kbps, fifo 4096
[13:26:24] mux: track 1, 72935 frames, 15683406 bytes, 80.57 kbps, fifo 8192
[13:26:24] mux: track 2, 72997 frames, 15741060 bytes, 80.86 kbps, fifo 8192
[13:26:24] mux: track 3, 11 frames, 874 bytes, 0.00 kbps, fifo 16
[13:26:24] mux: track 4, 252 frames, 15763 bytes, 0.08 kbps, fifo 32
[13:26:24] Finished work at: Tue Oct 28 13:26:24 2025
[13:26:24] libhb: work result = 0
VC [13:26:24] Job completed (Elapsed Time: 2m 45s)

mpek avatar Oct 28 '25 12:10 mpek

Image

mpek avatar Oct 28 '25 12:10 mpek

The "Custom Track Names" currently only applies to subtitles picked from the source, not external subtitles. VidCoder would need a different mechanism to name those, since you should be able to extract the information from the subtitle filename itself. Maybe I could set up a "regex mapper" that could apply a name based on a regex match.

RandomEngy avatar Nov 03 '25 00:11 RandomEngy

Yeah, the filename to get the Custom Track Names should follow naming rules.

There are only three names that should apply. If the filenames include forced, sdh and normal followed by language code and subtitle format, the Custom Track Names should only be chosen by the first three differentiations (forced, sdh and normal).

Example: filmtitle.forced.eng.srt

In this example forced should be recognized for Custom Track Names.

Example 2: filmtitle.sdh.deu.srt

Subtitles for hearing impaired are usually called SDH.

Then there are subtitles that don't show addtional descriptions for hearing impaired and generally don't have a designation. And "i think" calling them "Normal" in the Custom Track Name, would still be helpful, as the watcher recognizes immediately that this is not a forced or sdh subtitle.

On the other hand, don't having "normal" in the filename could still result in a Custom Track Name "Normal", as Forced or SDH is not present.

mpek avatar Nov 03 '25 14:11 mpek