diff --git a/ConvertSRTto3DASS/ConvertSRTto3DASS.csproj b/ConvertSRTto3DASS/ConvertSRTto3DASS.csproj index 2458beb..9917ed2 100644 --- a/ConvertSRTto3DASS/ConvertSRTto3DASS.csproj +++ b/ConvertSRTto3DASS/ConvertSRTto3DASS.csproj @@ -2,11 +2,10 @@ Exe - net46 + net48 ConvertSRTto3DASS.Converter - false - Git - false + imrayya + Copyright © imrayya 2021-2026 diff --git a/ConvertSRTto3DASSGUI/App.config b/ConvertSRTto3DASSGUI/App.config index 56efbc7..193aecc 100644 --- a/ConvertSRTto3DASSGUI/App.config +++ b/ConvertSRTto3DASSGUI/App.config @@ -1,6 +1,6 @@  - + \ No newline at end of file diff --git a/ConvertSRTto3DASSGUI/ConvertSRTto3DASSGUI.csproj b/ConvertSRTto3DASSGUI/ConvertSRTto3DASSGUI.csproj index 1e2adfe..00ef69e 100644 --- a/ConvertSRTto3DASSGUI/ConvertSRTto3DASSGUI.csproj +++ b/ConvertSRTto3DASSGUI/ConvertSRTto3DASSGUI.csproj @@ -8,7 +8,7 @@ WinExe ConvertSRTto3DASSGUI ConvertSRTto3DASSGUI - v4.7.2 + v4.8 512 true true diff --git a/ConvertSRTto3DASSGUI/Properties/AssemblyInfo.cs b/ConvertSRTto3DASSGUI/Properties/AssemblyInfo.cs index e2909cc..a4f9d01 100644 --- a/ConvertSRTto3DASSGUI/Properties/AssemblyInfo.cs +++ b/ConvertSRTto3DASSGUI/Properties/AssemblyInfo.cs @@ -8,9 +8,9 @@ using System.Runtime.InteropServices; [assembly: AssemblyTitle("ConvertSRTto3DASSGUI")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Stanley Black & Decker inc.")] -[assembly: AssemblyProduct("ConvertSRTto3DASSGUI")] -[assembly: AssemblyCopyright("Copyright © Stanley Black & Decker inc. 2026")] +[assembly: AssemblyCompany("imrayya")] +[assembly: AssemblyProduct("SRTto3Dsubtitles")] +[assembly: AssemblyCopyright("Copyright © imrayya 2021-2026")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] diff --git a/LICENSE b/LICENSE index 6b54e57..355d0d7 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2021 imrayya +Copyright (c) 2021-2026 imrayya Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index bae707b..bf02d99 100644 --- a/README.md +++ b/README.md @@ -1,33 +1,98 @@ -# SRT subtitles to 3D subtitles -## The problem -I wanted watch a movie with subtitle, like I always do, but the subtitles for the movie I have was traditional .srt while the movie I was watching was a 3D movie which was **H**alf **S**ide **B**y **S**ide (HSBS). The subtitles in question were centered which was very disorienting to read while watching the movie. The solution? Write my own program to convert it for me. +# SRT to 3D Subtitles -## Convert -Currently just a command line program to convert a .srt subtitle file to an .ass subtitle file while making it compatible with the HSBS format. Either drag the SRT file on the .exe to convert the .srt file or run the command `SRTto3D.exe [insert your file name here]` and the program will convert it. Word of warning, the program will strip off any positional data off the srt. It will also likely fail with .srt file that contain a positional information. +Convert standard `.srt` subtitles into `.ass` format, offset so they display correctly in 3D video playback. + +## The Problem + +When watching 3D movies (Side-by-Side, Over-Under, Anaglyph), centered subtitles get split between the left and right eye views, making them disorienting to read. This tool converts standard `.srt` subtitles into a 3D-compatible `.ass` format that keeps each eye's subtitles in the correct position. ## Features -_Basically nothing right now_ -- [x] Convert a .srt to an .ass/.ssa - - [x] For HSBS media - - [X] For **S**ide **B**y **S**ide (SBS) media - - [X] For **O**ver **U**nder (OU) media - - [X] For Anaglyph 3D media (red and green media) - Warning Experimental - - [ ] For traditionally media (pancake mode). - - _I suggest to just use ffmpeg for this use case_ -- [x] Convert formatting of .srt subtitles to transfer to the converted version - - [ ] Convert positional data of .srt subtitles -- [ ] Add changes which allows custom: - - [ ] Font - - [ ] Color - - [ ] Position - - [X] Margins - - [ ] Encoding -- [X] Add a proper GUI -- [ ] Any form of error handling or unit testing +- **SBS (Side-by-Side)** — subtitles split left/right for each eye +- **OU (Over-Under)** — subtitles split top/bottom for each eye +- **Anaglyph (Red/Green)** — subtitles offset with red/green color channels +- **CLI** — full command-line interface with configurable options +- **GUI** — lightweight Windows interface for easier mode selection +- **Formatting support** — converts HTML tags (``, ``, ``, ``) to ASS format codes +- **Resolution scaling** — adjusts subtitle positioning based on target resolution + +## Usage + +### Command Line (CLI) + +**Drag and drop:** + +1. Drag and drop an `.srt` file onto `ConvertSRTto3DASS.exe` + - Uses default settings (SBS mode, 1280x720) +2. The resulting `.ass` file will be saved in the same directory with the same name + +**Command line:** + +``` +ConvertSRTto3DASS.exe input.srt [options] +``` + +Available options: + +``` +--mode sbs|ou|rg 3D mode (default: sbs) +--resx Output width +--resy Output height +--baseresx Scaling reference width (default: 1280) +--baseresy Scaling reference height (default: 720) +--fontsize Font size (default: 16) +--offsetx RG eye separation +--bottomoffset RG bottom offset +--sbssidemargin SBS side margin +--outopmargin OU top subtitle margin +--verticalmargin General vertical margin +--output Output file path +--help, -h, /? Show help +``` + +Examples: + +``` +ConvertSRTto3DASS.exe movie.srt --mode sbs +ConvertSRTto3DASS.exe movie.srt --mode ou --resx 1920 --resy 1080 +ConvertSRTto3DASS.exe movie.srt --mode rg --offsetx 6 --bottomoffset 24 +``` + +### GUI + +1. Launch `ConvertSRTto3DASSGUI.exe` +2. Select your `.srt` input file +3. Choose your 3D mode (SBS, OU, or Anaglyph) +4. Adjust settings as needed +5. Click **Convert** + +> **Note:** The GUI is experimental. Feedback and bug reports are welcome! ## Known Issues -For some reason that I have yet to understand, Plex Transcoder doesn't not like the converted subtitles (it has a weird issue) but it works perfectly in VLC -## Warning -The code is a complete and utter mess with very little comments in it. This was meant to be a private project and I haven't had the chance to clean it up yet. +- Plex Transcoder has issues with the converted subtitles. VLC works correctly. +- Subtitle positional data from `.srt` files is stripped during conversion. + +## Requirements + +- **Windows** — the GUI requires Windows (.NET Framework 4.8) +- **CLI** — the core converter is a .NET Framework 4.8 console application + +## License + +MIT License — Copyright © imrayya 2021-2026 + +## Contributing + +Contributions are welcome. Please open an issue or submit a pull request. + +### Contributors + +- [imrayya](https://github.com/imrayya) — project owner +- [jae0815](https://github.com/jae0815) +- [fabio-noga](https://github.com/fabio-noga) +- [kaiju466](https://github.com/kaiju466) + +## Disclaimer + +This is a personal hobby project. The codebase is functional but not production-grade — minimal comments, no tests, and some rough edges. Use at your own discretion.