Skip to content

fix(windows): escape drive letter colon in FFmpeg subtitles filter path#10

Open
algojogacor wants to merge 1 commit into
JayWebtech:mainfrom
algojogacor:fix/windows-subtitle-path-escaping
Open

fix(windows): escape drive letter colon in FFmpeg subtitles filter path#10
algojogacor wants to merge 1 commit into
JayWebtech:mainfrom
algojogacor:fix/windows-subtitle-path-escaping

Conversation

@algojogacor

Copy link
Copy Markdown

Problem

On Windows, the FFmpeg filter graph parser treats : as an option key=value separator. A subtitle path like D:/AS/raw/subtitles/clip.srt passed to the subtitles filter causes FFmpeg to parse D as the value of the implicit original_size option and the rest of the path as the filename:

[Parsed_subtitles_1] Unable to parse option value '/AS/raw/subtitles/clip.srt' as image size
Error applying option 'original_size' to filter 'subtitles': Invalid argument

This meant subtitles were always silently skipped on Windows even though the SRT file was generated correctly.

Root Cause

In �uild_subtitles_filter(), the path was converted to forward slashes but the Windows drive letter colon (D:) was not escaped. Single-quote wrapping does not protect colons from FFmpeg's filter graph parser - the escape must be explicit.

Fix

  • Escape : ? : and spaces ? \ in the subtitle path inside �uild_subtitles_filter()
  • Fix typo in the Windows subtitles directory path (subtittles ? subtitles)
  • Move -ss/-to flags before -i in
    ender_flat_clip() for more accurate input seek (avoids decoding unnecessary frames)

Testing

Verified on Windows 11 with FFmpeg 8.0.1 (gyan.dev essentials build) - subtitles now render correctly on all caption styles.

On Windows, FFmpeg's filter graph parser treats : as an option
key=value separator. A path like D:/AS/raw/subtitles/clip.srt inside
the subtitles filter causes FFmpeg to parse D as the value of
original_size and the rest of the path as the filename, resulting in:

  Unable to parse option value '/AS/raw/..' as image size
  Error applying option 'original_size' to filter 'subtitles'

Fix: in build_subtitles_filter(), convert backslashes to forward
slashes AND escape the colon in the Windows drive letter (D: -> D\:),
plus escape any spaces, so the path is correctly parsed by FFmpeg on
all platforms.

Also fixes a subtitles directory path typo (subtittles -> subtitles)
and moves -ss/-to flags before -i for more accurate seek performance.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant