LAPINPT

mkvMUX test

Aug 11th, 2013
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 8.34 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. for f in $@; do
  4.    SOURCE=$f
  5.    EXTE="${SOURCE##*.}"
  6.    if [ "$EXTE" = "mkv" ]; then MKV=$f
  7.    elif [ "$EXTE" = "ac3" ]; then AUDIO=$f
  8.    elif [ "$EXTE" = "dts" ]; then AUDIO=$f
  9.    elif [ "$EXTE" = "srt" ]; then SUBS=$f
  10.    fi
  11. done
  12.  
  13.  
  14. if [[ "$SUBS" == *.br.* ]]; then
  15.    LNAME=PT-BR
  16. else
  17.    LNAME=PT-PT
  18. fi
  19.  
  20. CUTNAME=$(echo $MKV | tr -s ' ' '.' | sed -e 's/.DTS//gI' -e 's/.AC3//gI' -e 's/.DD5.1//gI' -e 's/HDWinG/HDW/gI')
  21. CUTLOG=$(echo $MKV | tr -s ' ' '.' | sed -e 's/\(.*\)\([0-9][0-9][0-9][0-9]\)\(\..*$\)/\1\2/')
  22. VIDEOT=$(mkvmerge -i "$MKV" | sed -n '/V_MPEG4/p' | tr -d ':' | cut -d' ' -f3 | sed -n 1p)
  23. AUDP1=$(mkvmerge -i "$MKV" | sed -n '/A_AC3/p' | tr -d ':' | cut -d' ' -f3 | sed -n 1p)
  24. if [ -z "$AUDP1" ]; then
  25.    AUDP1=$(mkvmerge -i "$MKV" | sed -n '/A_DTS/p' | tr -d ':' | cut -d' ' -f3 | sed -n 1p)
  26. fi
  27. AUDIOT=",0:$AUDP1"
  28. TDIR=/home/desktop/public
  29.  
  30. echo SOURCE: $MKV > mkvmux-$CUTLOG.log
  31. echo TARGET: $TDIR/$CUTNAME > mkvmux-$CUTLOG.log
  32.  
  33. au2=$(mkvmerge -i "$MKV" | sed -n '/A_AAC/p' | tr -d ':' | cut -d' ' -f3 | sed -n 1p)
  34. if [ -n "$au2" ]; then
  35.    audord=",0:$au2"
  36.    aud2=",$au2"
  37.    au3=$(mkvmerge -i "$MKV" | sed -n '/A_AAC/p' | tr -d ':' | cut -d' ' -f3 | sed -n 2p)
  38.    if [ -n "$au3" ]; then
  39.       audord="$audord,0:$au3"
  40.       aud3=",$au3"
  41.       au4=$(mkvmerge -i "$MKV" | sed -n '/A_AAC/p' | tr -d ':' | cut -d' ' -f3 | sed -n 3p)
  42.       if [ -n "$au4" ]; then
  43.          audord="$audord,0:$au4"
  44.          aud4=",$au4"
  45.       fi
  46.    fi
  47. fi
  48.  
  49. sub1=$(mkvmerge --identify-verbose "$MKV" | sed '/:bul \|:chi \|:gre \|:rum \|:swe \|:fin \|:cze \|:dut \|:est \|:lav \|:lit \|:pol \|:rus \|:ukr \|:slv \|:hun \|:ind \|:hrv \|:may \|:slo \|:vie /d' | sed -n '/subtitles/p' | tr -d ':' | cut -d' ' -f3 | sed -n 1p)
  50. if [ -n "$sub1" ]; then
  51.    subord=",0:$sub1"
  52.    subt1="-s $sub1"
  53.    sub2=$(mkvmerge --identify-verbose "$MKV" | sed '/:bul \|:chi \|:gre \|:rum \|:swe \|:fin \|:cze \|:dut \|:est \|:lav \|:lit \|:pol \|:rus \|:ukr \|:slv \|:hun \|:ind \|:hrv \|:may \|:slo \|:vie /d' | sed -n '/subtitles/p' | tr -d ':' | cut -d' ' -f3 | sed -n 2p)
  54.    if [ -n "$sub2" ]; then
  55.       subord="$subord,0:$sub2"
  56.       subt2=",$sub2"
  57.       sub3=$(mkvmerge --identify-verbose "$MKV" | sed '/:bul \|:chi \|:gre \|:rum \|:swe \|:fin \|:cze \|:dut \|:est \|:lav \|:lit \|:pol \|:rus \|:ukr \|:slv \|:hun \|:ind \|:hrv \|:may \|:slo \|:vie /d' | sed -n '/subtitles/p' | tr -d ':' | cut -d' ' -f3 | sed -n 3p)
  58.       if [ -n "$sub3" ]; then
  59.          subord="$subord,0:$sub3"
  60.          subt3=",$sub3"
  61.          sub4=$(mkvmerge --identify-verbose "$MKV" | sed '/:bul \|:chi \|:gre \|:rum \|:swe \|:fin \|:cze \|:dut \|:est \|:lav \|:lit \|:pol \|:rus \|:ukr \|:slv \|:hun \|:ind \|:hrv \|:may \|:slo \|:vie /d' | sed -n '/subtitles/p' | tr -d ':' | cut -d' ' -f3 | sed -n 4p)
  62.          if [ -n "$sub4" ]; then
  63.             subord="$subord,0:$sub4"
  64.             subt4=",$sub4"
  65.             sub5=$(mkvmerge --identify-verbose "$MKV" | sed '/:bul \|:chi \|:gre \|:rum \|:swe \|:fin \|:cze \|:dut \|:est \|:lav \|:lit \|:pol \|:rus \|:ukr \|:slv \|:hun \|:ind \|:hrv \|:may \|:slo \|:vie /d' | sed -n '/subtitles/p' | tr -d ':' | cut -d' ' -f3 | sed -n 5p)
  66.             if [ -n "$sub5" ]; then
  67.                subord="$subord,0:$sub5"
  68.                subt5=",$sub5"
  69.                sub6=$(mkvmerge --identify-verbose "$MKV" | sed '/:bul \|:chi \|:gre \|:rum \|:swe \|:fin \|:cze \|:dut \|:est \|:lav \|:lit \|:pol \|:rus \|:ukr \|:slv \|:hun \|:ind \|:hrv \|:may \|:slo \|:vie /d' | sed -n '/subtitles/p' | tr -d ':' | cut -d' ' -f3 | sed -n 6p)
  70.                if [ -n "$sub6" ]; then
  71.                   subord="$subord,0:$sub6"
  72.                   subt6=",$sub6"
  73.                   sub7=$(mkvmerge --identify-verbose "$MKV" | sed '/:bul \|:chi \|:gre \|:rum \|:swe \|:fin \|:cze \|:dut \|:est \|:lav \|:lit \|:pol \|:rus \|:ukr \|:slv \|:hun \|:ind \|:hrv \|:may \|:slo \|:vie /d' | sed -n '/subtitles/p' | tr -d ':' | cut -d' ' -f3 | sed -n 7p)
  74.                   if [ -n "$sub7" ]; then
  75.                      subord="$subord,0:$sub7"
  76.                      subt7=",$sub7"
  77.                      sub8=$(mkvmerge --identify-verbose "$MKV" | sed '/:bul \|:chi \|:gre \|:rum \|:swe \|:fin \|:cze \|:dut \|:est \|:lav \|:lit \|:pol \|:rus \|:ukr \|:slv \|:hun \|:ind \|:hrv \|:may \|:slo \|:vie /d' | sed -n '/subtitles/p' | tr -d ':' | cut -d' ' -f3 | sed -n 8p)
  78.                      if [ -n "$sub8" ]; then
  79.                         subord="$subord,0:$sub8"
  80.                         subt8=",$sub8"
  81.                         sub9=$(mkvmerge --identify-verbose "$MKV" | sed '/:bul \|:chi \|:gre \|:rum \|:swe \|:fin \|:cze \|:dut \|:est \|:lav \|:lit \|:pol \|:rus \|:ukr \|:slv \|:hun \|:ind \|:hrv \|:may \|:slo \|:vie /d' | sed -n '/subtitles/p' | tr -d ':' | cut -d' ' -f3 | sed -n 9p)
  82.                         if [ -n "$sub9" ]; then
  83.                            subord="$subord,0:$sub9"
  84.                            subt9=",$sub9"
  85.                            sub10=$(mkvmerge --identify-verbose "$MKV" | sed '/:bul \|:chi \|:gre \|:rum \|:swe \|:fin \|:cze \|:dut \|:est \|:lav \|:lit \|:pol \|:rus \|:ukr \|:slv \|:hun \|:ind \|:hrv \|:may \|:slo \|:vie /d' | sed -n '/subtitles/p' | tr -d ':' | cut -d' ' -f3 | sed -n 10p)
  86.                            if [ -n "$sub10" ]; then
  87.                               subord="$subord,0:$sub10"
  88.                               subt10=",$sub10"
  89.                            fi
  90.                         fi
  91.                      fi
  92.                   fi
  93.                fi
  94.             fi
  95.          fi
  96.       fi
  97.    fi
  98. fi
  99.  
  100. if [ -f "$AUDIO" ] && [ -f "$SUBS" ]; then
  101.    echo $AUDIO >> mkvmux-$CUTLOG.log
  102.    echo $SUBS >> mkvmux-$CUTLOG.log
  103.    echo SUBS LANG: $LNAME >> mkvmux-$CUTLOG.log
  104.    echo track-order 0:$VIDEOT,1:0$audord,2:0$subord >> mkvmux-$CUTLOG.log
  105.    mkvmerge -o $TDIR/$CUTNAME --track-name $VIDEOT:x264 --default-track $VIDEOT:yes --compression $VIDEOT:none --track-name $AUDP1: --default-track $AUDP1:yes --compression $AUDP1:none $AUDP1$aud2$aud3$aud4 $subt1$subt2$subt3$subt4$subt5$subt6$subt7$subt8$subt9$subt10 -T --no-global-tags --no-chapters "$MKV" --default-track 0:yes --compression 0:none --language 0:eng $AUDIO --track-name 0:$LNAME --sub-charset 0:WINDOWS-1252 --language 0:por $SUBS --title "" --track-order 0:$VIDEOT,1:0$audord,2:0$subord >> mkvmux-$CUTLOG.log
  106.  
  107. elif [ -f "$AUDIO" ]; then
  108.    echo $AUDIO >> mkvmux-$CUTLOG.log
  109.    echo track-order 0:$VIDEOT,1:0$audord$subord >> mkvmux-$CUTLOG.log
  110.    mkvmerge -o $TDIR/$CUTNAME --track-name $VIDEOT:x264 --default-track $VIDEOT:yes --compression VIDEOT:none --track-name $AUDP1: --default-track $AUDP1:yes --compression $AUDP1:none $AUDP1$aud2$aud3$aud4 $subt1$subt2$subt3$subt4$subt5$subt6$subt7$subt8$subt9$subt10 -T --no-global-tags --no-chapters "$MKV" --default-track 0:yes --compression 0:none --language 0:eng $AUDIO --title "" --track-order 0:$VIDEOT,1:0$audord$subord >> mkvmux-$CUTLOG.log
  111.  
  112. elif [ -f "$SUBS" ]; then
  113.    echo $SUBS >> mkvmux-$CUTLOG.log
  114.    echo SUBS LANG: $LNAME >> mkvmux-$CUTLOG.log
  115.    echo track-order 0:$VIDEOT$AUDIOT$audord,1:0$subord >> mkvmux-$CUTLOG.log
  116.    mkvmerge -o $TDIR/$CUTNAME --track-name $VIDEOT:x264 --default-track $VIDEOT:yes --compression $VIDEOT:none --track-name $AUDP1: --default-track $AUDP1:yes --compression $AUDP1:none -a $AUDP1$aud2$aud3$aud4 $subt1$subt2$subt3$subt4$subt5$subt6$subt7$subt8$subt9$subt10 -T --no-global-tags --no-chapters "$MKV" --track-name 0:$LNAME --sub-charset 0:WINDOWS-1252 --language 0:por $SUBS --title "" --track-order 0:$VIDEOT$AUDIOT$audord,1:0$subord >> mkvmux-$CUTLOG.log
  117.  
  118. elif [ -f "$MKV" ]; then
  119.    echo track-order 0:$VIDEOT$AUDIOT$audord$subord >> mkvmux-$CUTLOG.log
  120.    mkvmerge -o $TDIR/$CUTNAME --track-name $VIDEOT:x264 --default-track $VIDEOT:yes --compression $VIDEOT:none --track-name $AUDP1: --default-track $AUDP1:yes --compression $AUDP1:none -a $AUDP1$aud2$aud3$aud4 $subt1$subt2$subt3$subt4$subt5$subt6$subt7$subt8$subt9$subt10 -d $VIDEOT -T --no-global-tags --no-chapters "$MKV" --title "" --track-order 0:$VIDEOT$AUDIOT$audord$subord >> mkvmux-$CUTLOG.log
  121.  
  122. fi  
  123.  
  124. if [ -f $TDIR/$CUTNAME ]; then
  125.    touch -r "$MKV" $TDIR/$CUTNAME
  126.    chmod -R 777 $TDIR/$CUTNAME
  127.    chown desktop:desktop $TDIR/$CUTNAME
  128.    OLDSIZE=$(mediainfo '--Inform=General;%FileSize/String4%' $MKV)
  129.    NEWSIZE=$(mediainfo '--Inform=General;%FileSize/String4%' $TDIR/$CUTNAME)
  130.    echo OLDSIZE: $OLDSIZE >> mkvmux-$CUTLOG.log
  131.    echo NEWSIZE: $NEWSIZE >> mkvmux-$CUTLOG.log
  132. fi
Advertisement
Add Comment
Please, Sign In to add comment