User Tools

Site Tools


mkv

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
mkv [2020-04-28 23:39:01]
mi created
mkv [2024-01-27 11:07:45] (current)
mi [Extract subtitles]
Line 1: Line 1:
 +=mkv
 +
 +==info
 +
   mkvmerge --identify "​$mkv"​   mkvmerge --identify "​$mkv"​
  
Line 22: Line 26:
 </​pre></​blockquote></​HTML>​  </​pre></​blockquote></​HTML>​
  
 +==Extract subtitles
  
-  mkvinfo "$mkv" | perl -00 -ne '@tracks=split ​/^. . . track$/m; foreach ​(@tracks{next unless /subtitles/; ($id,$codec,$lang) = /number: .*?: (\d+).*?​Codec ​ID: (\S+)(?:.*?Language: (\w+))?/s; $codec=~s!/!-!g; print "​mkvextract tracks \"\$mkv\" $id:$id.$lang.$codec\n";}'+  mkvinfo ​--summary ​"$f" ​| head -10 \ 
 +  ​| perl -nle 'if ( /^Track (\d+)subtitles, codec ID: ([A-Z_]+).*extract track ID: (\d+)(?:, language: (\S+))?/ ) { 
 +      warn "$_=$1: type=$2, xtrack=$3, lang=$4\n"​; print "$2 $3 $4" }' \ 
 +  | while read type t lang; do d=$(dirname "​$f"​);​ b=$(basename "​$f"​);​  
 +      echo "#Run this:# ​mkvextract tracks \"\$f\" $t:'$d/$b-$lang-$t.$type'"; ​done
  
 <​HTML><​blockquote><​pre>​ <​HTML><​blockquote><​pre>​
-mkvextract tracks "​$mkv"​ 2:2..S_TEXT-UTF8 +Track 3: subtitles, codec ID: S_TEXT/UTF8, mkvmerge/mkvextract ​track ID: 2, language: por  =  ​3: type=S_TEXT, xtrack=2, lang=por 
-mkvextract ​tracks "​$mkv" ​3:3.ara.S_TEXT-UTF8 +Track 4: subtitles, codec ID: S_TEXT/UTF8, mkvmerge/mkvextract ​track ID3, language: eng  =  4: type=S_TEXT, xtrack=3, lang=eng 
-mkvextract tracks "​$mkv" ​4:4.bul.S_TEXT-UTF8 +... 
-mkvextract ​tracks "​$mkv"​ 5:5.dan.S_TEXT-UTF8 +mkvextract tracks "$f" ​2:'./2-Death.to.2020.2020.720p.WEBRip.800MB.x264-GalaxyRG.mkv-por.S_TEXT' 
-mkvextract tracks "​$mkv"​ 6:6.dut.S_TEXT-UTF8 +mkvextract tracks "$f" ​3:'./3-Death.to.2020.2020.720p.WEBRip.800MB.x264-GalaxyRG.mkv-eng.S_TEXT' 
-mkvextract tracks "$mkv" ​7:7.fin.S_TEXT-UTF8 +...
-mkvextract tracks "​$mkv"​ 8:8.fre.S_TEXT-UTF8 +
-mkvextract tracks "​$mkv"​ 9:9.ger.S_TEXT-UTF8 +
-mkvextract tracks "​$mkv"​ 10:10.hun.S_TEXT-UTF8 +
-mkvextract tracks "$mkv" 11:​11.pol.S_TEXT-UTF8 +
-mkvextract tracks "​$mkv"​ 12:12.por.S_TEXT-UTF8 +
-mkvextract tracks "$mkv" ​13:13.rum.S_TEXT-UTF8 +
-mkvextract tracks "​$mkv"​ 14:14.rus.S_TEXT-UTF8 +
-mkvextract tracks "$mkv" 15:15.spa.S_TEXT-UTF8 +
-mkvextract tracks "​$mkv"​ 16:16.swe.S_TEXT-UTF8+
 </​pre></​blockquote></​HTML>​  </​pre></​blockquote></​HTML>​
  
 +==Chapters
  
-  mkvextract tracks "​$mkv"​ 2:2..S_TEXT-UTF8+* Extract as plain text or xml:
  
-<​HTML><​blockquote><​pre>​ +  mkvextract chapters -s $mkvfile | tee $mkvile-chapters.txt 
-Extracting track 2 with the CodecID '​S_TEXT/​UTF8'​ to the file '2..S_TEXT-UTF8'Container format: SRT text subtitles +  mkvextract chapters ​   $mkvfile | tee $mkvile-chapters.xml 
-Progress100% + 
-</​pre></​blockquote></​HTML>​ +* Add or replace chapters
 + 
 +  mkvpropedit $mkvfile --chapters $mkvile-chapters.txt
  
 +* Create chapters file from 2 columns tab-delimited list of timecode and name :
 +<​code>​perl -ne '​BEGIN{$fps=24};​ $c=sprintf("​CHAPTER%02d",​ $n++);
 +  ($tc, $name)=split(/​\t/​);​
 +  $tc =~ s!:​(\d\d)$!sprintf("​.%03d",​$1*1000/​$fps)!e;​
 +  print "​$c=$tc\n",​
 +    "​${c}NAME=$name"'​ $My_ChaptersList_File
 +</​code>​
  
/docs/dokuwiki/data/attic/mkv.1588109941.txt.gz · Last modified: 2020-04-28 23:39:01 by mi