Awesome Open Source
Awesome Open Source


Convert pgs subtitles to srt using OCR.


Data files must be placed in a tessdata folder inside PgsToSrt folder, or the path can be specified in the command line with the --tesseractdata parameter.

You only need data files for the language(s) you want to convert.


dotnet PgsToSrt.dll [parameters]

--input Input filename, can be an mkv file or pgs subtitle extracted to a .sup file with mkvextract.
--output Output Subrip (.srt) filename. Auto generated from input filename if not set.
--track Track number of the subtitle to process in an mkv file (only required when input is a matroska file)
This can be obtained with mkvinfo
--trackLanguage Convert all tracks of the specified language (only works with mkv input)
--tesseractlanguage Tesseract language to use if multiple languages are available in the tesseract data directory.
--tesseractdata Path of tesseract language data files, by default 'tessdata' in the executable directory.

Example (Command Line)

dotnet PgsToSrt.dll --input --output --tesseractlanguage fra
dotnet PgsToSrt.dll --input video1.mkv --output --track 4

Example (Docker)

docker run -it --rm -v /data:/data \
           -e INPUT=/data/myImageSubtitle.sup \
           -e OUTPUT=/data/ \
           -e LANGUAGE=eng \


  • Windows : none, tesseract/leptonica libraries are included in the release package.
  • Linux : libtesseract4 (sudo apt install libtesseract4)


To build PgsToSrt.dll execute this commands

dotnet restore
dotnet publish -c Release -o out
#The file is on  PgsToSrt/out/PgsToSrt.dll

To build docker image (for now only for linux)

docker build -t pgstosrt .

Built With

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
C Sharp (276,142
Ocr (1,421
Subtitles (555
Srt (173
Related Projects