Wednesday, August 28, 2013

Bash Script To Extract Subtitles From MKV file.

well ,some times I prefer to do things using the command line ,especially when logging into my server remotely ,so I created a little bash script to help me extract subtitles from mkv files using mkvextract ( you have to install  mkvtoolnix-cli) , still , the file extension need to be added though.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 nano sub-extractor.sh   
 ###paste the following  
filename="$1"
if [[ $filename ]]
then 
 m=$(mkvinfo $filename|grep 'No EBML head found');
 if [[ $m ]];
  then echo "This is not a valid mkv file";
  else  
    echo "proceeding...";
    mm=$(mkvinfo $filename|grep -i -A 2 -B 2 subtitle);
    if [[ $mm ]];
     then
      echo "subtitles found, proceeding...";
      mmm=$(echo $mm|grep -o 'mkvextract: [0-9]*'|grep -o '[0-9]*')
      arry1=$(echo $mmm|tr " " "\n ");
      for m in $arry1
       do mkvextract tracks $filename $mmm:${filename:0:-4}"_"$mmm; 
      done
    else 
     echo "no subs";
 fi;
 
   fi;
else
 echo "no file name given";
fi;

1 comment:

  1. As far as I know, iDealshare VideoGo can extract subtitles from MKV, MP4, FLV, VOB, AVI, MPG etc videos Here is the step by step guide on how to do that https://www.idealshare.net/video-converter/extract-subtitles-from-mkv-vob-avi-mp4.html

    I also find another similar program named Avdshare Video Converter which also works to extract subtitles https://www.avdshare.com/extract-subtitles-from-mkv

    ReplyDelete