Jump to content

MKV .srt Subtitle Question


slicedmass

Recommended Posts

slicedmass

I have all my forced subs in srt format inside the mkv files with the forced flag. Videos play perfectly to my chromecast. The only downside is that when i play a movie (seemingly for the first time) it scrubs over the entire file (10-20GB) to pull out the .srt file. I understand this is proper behavior. Is there any way to do the following?

 

a: Have Emby scrub all my files ahead of time to pull out the subtitles so they are ready when i play them?

 

b: Is there something I could be doing? For example extract the subtitle file to the same folder as the movie? Are there naming conventions so Emby understands its a forced subtitle? Will Emby intelligently select the external file rather than trying to pull out the .srt from within the mkv file?

 

I'd prefer keep my subtitles intact with the video file (but dont mind having a duplicate external .srt file in the folder) and hope one of those 2 solutions is possible. Appreciate the hard work on this app and the active communication.

Link to comment
Share on other sites

PenkethBoy

i have my forced sub files alongside the movie file

 

moviename.Forced.Eng.srt

 

or if not forced

 

moviename.Eng.srt

 

I do not have any subs within my video files - i remove them and where necessary add a srt file(or extract it from the video file and convert as necessary)

Link to comment
Share on other sites

slicedmass

I did what you said minus keeping the subtitle inside the mkv but it still defaults to the internal one. Is there no way to keep the subtitles in the container and have it default to the external file if its there before the internal one?

Link to comment
Share on other sites

PenkethBoy

thats why i removed the internal subs so it uses the external

Edited by PenkethBoy
Link to comment
Share on other sites

Happy2Play

I would assume you would have to change the flags on the internal subtitles.  But there are feature requests to not use internal subtitles.

Link to comment
Share on other sites

slicedmass

ok appreciate all the feedback. I will stick to the internal ones and deal with the initial exporting that happens when I first watch the file. I see that it exports to the cache folder and is then accessible on future watches. Would be nice to have a task that could run to extract all subs to the cache when a new movie is added.

Link to comment
Share on other sites

GhostRider

You should be able to select the external subtitle in the subtitle drop-down box before playing the movie. The external ones get listed at the end of the list.

 

I like your idea of a scheduled task to pull the subtitle out of the MKV ahead of time. Why not post this in the feature request forum:

 

https://emby.media/community/index.php?/forum/98-feature-requests/

Link to comment
Share on other sites

rbjtech

While we wait for the official solution for this (I think), I modified some scripts I found on the net as I wanted to do the same thing and extract SRT to external so the LG Emby app would read them without transcoding or having to wait :-

 

1. Extract Forced Subtitles from the MKV (*)

2. Write the subtitles to an external .eng.forced.srt file which emby recognises

3. Remuxes the MKV and removes all the internal subtitles

4. Keeps the details of what it has updated in a log file.

 

The original MKV is kept as a .original. file so nothing is removed - as a consequence you will have two copies of the file available in Emby to then select from, after checking, just delete the .original. file if you like.

 

(*) It uses whatever mkvinfo sees as 'forced' - so this may also be other track types so be cautious of this .. :(

 

This only works with SRT (text) subtitles - you'll need to convert PGS etc to SRT with SubEdit or whatever.

It also assumes the video is track 0 and audio track 1 when remuxing..

 

Change the path of mkvtoolnix to suit.

 

Copy and paste into a .bat file in Windows and then put in the root of your media area as it will find all .mkv in the subdirectories - although I suggest testing in an isolated area first ..  ;) )

 

@@Echo off&setlocal disabledelayedexpansion
set "path=%path%;D:\RipBot264\Tools\mkvtoolnix\"
 
for /f "delims=" %%a in ('dir /a-s /b /s *.mkv') do (
for /f "tokens=3 delims=: " %%b in ('mkvinfo "%%a" ^| findstr /c:"Forced track flag: 1"') do (
        echo Processing "%%~a" with subtitle ID %%~b
mkvextract "%%~a" tracks 2:"%%~da%%~pa%%~na".eng.forced.srt
mkvmerge -o "%%~da%%~pa%%~na.temp.mkv" --no-subtitles --video-tracks 0 --audio-tracks 1 "%%~a"
rename "%%~da%%~pa%%~na.mkv" "%%~na.original.mkv"
rename "%%~da%%~pa%%~na.temp.mkv" "%%~na.mkv"
echo %%~da%%~pa%%~na.original.mkv >> forced.log.txt
    )
)

 

I hope this helps somebody as it saved me lots of time doing it all manually..  :P

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...