Mpeg 2 Converter
Publicado por Carlos Alberto (última atualização em 08/12/2010)
[ Hits: 4.991 ]
Ferramenta em kmdr (kommander) para conversão de formatos de vídeo para mpeg-dvd ou dvd para avi/mkv.
#!/usr/bin/kmdr-executor <!DOCTYPE UI><UI version="3.0" stdsetdef="1"> <class>Mp2_ConverterVIDEO</class> <author>CarlosXLinux@gmail.com</author> <license>GPL2</license> <version>0.03</version> <widget class="Dialog"> <property name="name"> <cstring>Mp2_ConverterVIDEO</cstring> </property> <property name="geometry"> <rect> <x>0</x> <y>0</y> <width>761</width> <height>592</height> </rect> </property> <property name="caption"> <string>MPEG Converter</string> </property> <property name="icon"> <pixmap>image0</pixmap> </property> <property name="associations" stdset="0"> <stringlist> <string></string> <string>@record.setVisible(false) @sizecalc.execute @forEach(T, "NTSC 720x480\nNTSC 704x480\nNTSC 352x480\nNTSC 352x240\nPAL 720x576\nPAL 704x576\nPAL 352x576\nPAL 352x288") @tela.addUniqueItem(@T) @end </string> <string></string> </stringlist> </property> <property name="useShebang"> <bool>true</bool> </property> <grid> <property name="name"> <cstring>unnamed</cstring> </property> <property name="margin"> <number>11</number> </property> <property name="spacing"> <number>6</number> </property> <widget class="QLayoutWidget" row="9" column="0" rowspan="1" colspan="15"> <property name="name"> <cstring>Layout1</cstring> </property> <grid> <property name="name"> <cstring>unnamed</cstring> </property> <property name="margin"> <number>0</number> </property> <property name="spacing"> <number>6</number> </property> <widget class="ProgressBar" row="0" column="1"> <property name="name"> <cstring>PP_2</cstring> </property> <property name="minimumSize"> <size> <width>0</width> <height>25</height> </size> </property> <property name="maximumSize"> <size> <width>32767</width> <height>25</height> </size> </property> <property name="totalSteps"> <number>100</number> </property> <property name="associations" stdset="0"> <stringlist> <string></string> </stringlist> </property> <property name="toolTip" stdset="0"> <string>Progresso total</string> </property> </widget> <widget class="ProgressBar" row="0" column="0"> <property name="name"> <cstring>PP_1</cstring> </property> <property name="minimumSize"> <size> <width>0</width> <height>25</height> </size> </property> <property name="maximumSize"> <size> <width>32767</width> <height>25</height> </size> </property> <property name="associations" stdset="0"> <stringlist> <string></string> </stringlist> </property> <property name="toolTip" stdset="0"> <string>Progresso do arquivo.</string> </property> </widget> </grid> </widget> <spacer row="8" column="9" rowspan="1" colspan="2"> <property name="name"> <cstring>Spacer2</cstring> </property> <property name="orientation"> <enum>Horizontal</enum> </property> <property name="sizeType"> <enum>Expanding</enum> </property> <property name="sizeHint"> <size> <width>52</width> <height>0</height> </size> </property> </spacer> <widget class="Table" row="1" column="0" rowspan="5" colspan="14"> <column> <property name="text"> <string>Arquivo</string> </property> </column> <column> <property name="text"> <string>Volume (M)</string> </property> </column> <column> <property name="text"> <string>Tempo (s)</string> </property> </column> <column> <property name="text"> <string>Tela</string> </property> </column> <column> <property name="text"> <string>Frame Rate (fps)</string> </property> </column> <column> <property name="text"> <string>Aspect</string> </property> </column> <column> <property name="text"> <string>V. Codec</string> </property> </column> <column> <property name="text"> <string>V. Bit Rate (Kb)</string> </property> </column> <column> <property name="text"> <string>A. Codec</string> </property> </column> <column> <property name="text"> <string>A. Bit Rate (Kb)</string> </property> </column> <column> <property name="text"> <string>A. Rate (Hz)</string> </property> </column> <column> <property name="text"> <string>A. Ling.</string> </property> </column> <column> <property name="text"> <string>S. Ling.</string> </property> </column> <column> <property name="text"> <string>Titulo</string> </property> </column> <column> <property name="text"> <string>Pasta</string> </property> </column> <property name="name"> <cstring>Playlist</cstring> </property> <property name="numRows"> <number>0</number> </property> <property name="numCols"> <number>15</number> </property> <property name="selectionMode"> <enum>Single</enum> </property> <property name="associations" stdset="0"> <stringlist> <string></string> </stringlist> </property> <property name="toolTip" stdset="0"> <string>Lista de arquivos a serem convertidos.</string> </property> </widget> <widget class="ExecButton" row="3" column="14"> <property name="name"> <cstring>adiciona3</cstring> </property> <property name="minimumSize"> <size> <width>40</width> <height>40</height> </size> </property> <property name="maximumSize"> <size> <width>40</width> <height>40</height> </size> </property> <property name="focusPolicy"> <enum>NoFocus</enum> </property> <property name="text"> <string></string> </property> <property name="accel"> <number>4152</number> </property> <property name="iconSet"> <iconset>image1</iconset> </property> <property name="flat"> <bool>true</bool> </property> <property name="populationText"> <string></string> </property> <property name="associations" stdset="0"> <stringlist> <string>#!/bin/bash DDK="dcop @dcopid KommanderIf"; SCT="setCellText"; PL="Playlist"; c=0; enall(){ for m in GB{0,1,2,3,4,5,6,7,8} convert adiciona adiciona2 adiciona3 $PL play remove tela vbit abit; do $DDK $SE $m $1; done } enall false; DLST="$(awk '/name|hd[a-z]|sr[0-9]|scd[0-9]/{for (i=NF;i>=3;i--) { print $i }}' /proc/sys/dev/cdrom/info 2>/dev/null)"; for i in $DLST; do TITLE="$(lsdvd -q "/dev/$i" 2>/dev/null | awk '/Longest track:/{ print $3 }')"; FILES="/dev/$i"; if [ -n "$TITLE" ]; then DISC_TITLE="$(lsdvd -q "$FILES" | awk '/Disc.*Title:/{for (i=3;i<=NF;i++) { print $i }}')"; FLST="$i $DISC_TITLE"; c="$[c+1]"; fi done if [ "$[c]" != "1" ]; then FILES="/dev/$(kdialog --menu "Escolha a unidade:" $FLST)"; TITLE="$(lsdvd -q "$FILES" 2>/dev/null | awk '/Longest track:/{ print $3 }')"; DISC_TITLE="$(lsdvd -q "$FILES" | awk '/Disc.*Title:/{for (i=3;i<=NF;i++) { print $i }}')"; fi if [ -n "$FILES" -a -n "$TITLE" ]; then n="$($DDK rowCount $PL)"; [ ! -n "$n" ] && n="0"; $DDK insertRow $PL $n 1; $DDK $SCT $PL $n 0 "$DISC_TITLE"; V="$(lshal -u "volume_label_$DISC_TITLE" | awk '/volume.size/{ print $3 "/1024" }' | bc)"; $DDK $SCT $PL $n 1 "$V"; $DDK $SCT $PL $n 14 "$FILES"; ID_FILE="$(mplayer dvd://$TITLE -dvd-device "$FILES" -vo null -ao null -endpos 0 -identify 2>/dev/null 2>&1 | awk '/ID_AUDIO|ID_VIDEO|ID_DEMUXER|ID_LENGTH|ID_AID_.*_LANG/')"; ID_DVD_AUDIO="$(lsdvd -q -x -t$TITLE "$FILES" | tr -d ':,-' | awk '/Audio.*Language/{ print $1 $2 "_" $4 "_" $5 "_" $7 "_" $9 " " $1 $2 "_" $4 "_" $5 "_" $7 "_" $9 }')"; ID_DVD_SUBS="$(lsdvd -q -x -t$TITLE "$FILES" | tr -d ':,-' | awk '/Subtitle.*Language/{ print $1 $2 "_" $4 "_" $5 " " $1 $2 "_" $4 "_" $5 }')"; declare -t $ID_FILE; c=0; for n in $ID_DVD_AUDIO; do c="$[c+1]"; done; if [ "$[c/2]" != "1" ]; then ID_DVD_AUDIO="$(kdialog --menu "Linguagens encontradas:" $ID_DVD_AUDIO | tr '_' ' ')"; fi; $DDK $SCT $PL $n 11 "$(echo $ID_DVD_AUDIO | awk '{ print $2 }')"; ID_AUDIO_CODEC="$(echo $ID_DVD_AUDIO | awk '{ print $4 }')"; ID_AUDIO_RATE="$(echo $ID_DVD_AUDIO | awk '{ print $5 }')"; c=0; for n in $ID_DVD_SUBS; do c="$[c+1]"; done; if [ "$[c/2]" != "1" ]; then ID_DVD_SUBS="$(kdialog --menu "Legendas encontradas:" nenhum nenhum $ID_DVD_SUBS | tr '_' ' ')"; fi; $DDK $SCT $PL $n 12 "$(echo $ID_DVD_SUBS | awk '{ print $2 }')"; $DDK $SCT $PL $n 2 "$ID_LENGTH"; $DDK $SCT $PL $n 3 "$ID_VIDEO_WIDTH:$ID_VIDEO_HEIGHT"; $DDK $SCT $PL $n 4 "$ID_VIDEO_FPS"; $DDK $SCT $PL $n 5 "$ID_VIDEO_ASPECT"; $DDK $SCT $PL $n 6 "$ID_VIDEO_CODEC"; $DDK $SCT $PL $n 7 "$[ID_VIDEO_BITRATE/1000]"; $DDK $SCT $PL $n 8 "$ID_AUDIO_CODEC"; $DDK $SCT $PL $n 9 "$[ID_AUDIO_BITRATE/1000]"; $DDK $SCT $PL $n 10 "$ID_AUDIO_RATE"; $DDK $SCT $PL $n 13 "$DISC_TITLE"; TOTAL="$[$($DDK text total | awk '{ print $2 }')+$(echo $ID_LENGTH | cut -f1 -d.)]"; HH="$[$[TOTAL-$[TOTAL-$[$[TOTAL/60]*60]]]/3600]"; MM="$[$[$[TOTAL-$[TOTAL-$[$[TOTAL/60]*60]]]/60]-$[$[$[TOTAL-$[TOTAL-$[$[TOTAL/60]*60]]]/3600]*60]]"; SS="$[TOTAL-$[$[TOTAL/60]*60]]"; [ "$HH" -lt "10" ] && HH="0$HH"; [ "$MM" -lt "10" ] && MM="0$MM"; [ "$SS" -lt "10" ] && SS="0$SS"; $DDK setText total "Total: $TOTAL s - $HH:$MM:$SS"; VBITS="$($DDK text vbit | tr -d ':[alpha]:')"; ABITS="$($DDK text abit | tr -d ':[alpha]:')"; SIZE="$(echo "scale=2; ${TOTAL}*$[VBITS]/8+${TOTAL}*2*$[ABITS]/13" | bc -l)"; $DDK setText size "Estimado: $(echo "scale=2; ${SIZE}/1024" | bc -l )MB"; enall true; fi; enall true; </string> </stringlist> </property> <property name="toolTip" stdset="0"> <string>Inserir um dvd inserido numa unidade a lista.(F9)</string> </property> </widget> <widget class="Label" row="8" column="2"> <property name="name"> <cstring>Label7</cstring> </property> <property name="maximumSize"> <size> <width>50</width> <height>30</height> </size> </property> <property name="text"> <string>V Bits:</string> </property> <property name="associations" stdset="0"> <stringlist> <string></string> </stringlist> </property> </widget> <widget class="ExecButton" row="5" column="14"> <property name="name"> <cstring>remove</cstring> </property> <property name="minimumSize"> <size> <width>40</width> <height>40</height> </size> </property> <property name="maximumSize"> <size> <width>40</width> <height>40</height> </size> </property> <property name="focusPolicy"> <enum>NoFocus</enum> </property> <property name="text"> <string></string> </property> <property name="pixmap"> <pixmap>image2</pixmap> </property> <property name="accel"> <number>4154</number> </property> <property name="flat"> <bool>true</bool> </property> <property name="populationText"> <string></string> </property> <property name="associations" stdset="0"> <stringlist> <string>#!/bin/bash DDK="dcop @dcopid KommanderIf"; enall(){ for m in GB{0,1,2,3,4,5,6,7,8} convert adiciona adiciona2 adiciona3 $PL play remove tela vbit abit; do $DDK $SE $m $1; done } enall false; declare -t $($DDK selection Playlist | awk -F',' '{ print "IN=" $1 " ON=" $3 }'); timerrecal(){ TOTAL="$[$($DDK text total | tr -d 's' | awk '{ print $2 }')-$($DDK cellText Playlist $[a] 2 | cut -f1 -d.)]"; HH="$[$[TOTAL-$[TOTAL-$[$[TOTAL/60]*60]]]/3600]"; MM="$[$[$[TOTAL-$[TOTAL-$[$[TOTAL/60]*60]]]/60]-$[$[$[TOTAL-$[TOTAL-$[$[TOTAL/60]*60]]]/3600]*60]]"; SS="$[TOTAL-$[$[TOTAL/60]*60]]"; [ "$HH" -lt "10" ] && HH="0$HH"; [ "$MM" -lt "10" ] && MM="0$MM"; [ "$SS" -lt "10" ] && SS="0$SS"; $DDK setText total "Total: ${TOTAL}s - $HH:$MM:$SS"; } if [ "$[IN]" != "-1" -a "$[ON]" != "-1" ]; then for ((a=$[IN];a<=$[ON];a++)); do timerrecal; done $DDK removeRow Playlist $[IN] $[1+ON-IN]; else for ((a=0;a<10;a++)); do timerrecal; done $DDK removeRow Playlist 0 10; fi VBITS="$($DDK text vbit | tr -d ':[alpha]:')"; ABITS="$($DDK text abit | tr -d ':[alpha]:')"; SIZE="$(echo "scale=2; ${TOTAL}*$[VBITS]/8+${TOTAL}*2*$[ABITS]/13" | bc -l)"; $DDK setText size "Estimado: $(echo "scale=2; ${SIZE}/1024" | bc -l )MB"; enall true; </string> </stringlist> </property> <property name="toolTip" stdset="0"> <string>Remove o arquivo selecionado da lista.(F11)</string> </property> </widget> <widget class="Label" row="8" column="0"> <property name="name"> <cstring>Label9</cstring> </property> <property name="maximumSize"> <size> <width>40</width> <height>30</height> </size> </property> <property name="text"> <string>Tela:</string> </property> <property name="associations" stdset="0"> <stringlist> <string></string> </stringlist> </property> </widget> <widget class="StatusBar" row="10" column="0" rowspan="1" colspan="15"> <property name="name"> <cstring>DISPLAY</cstring> </property> </widget> <widget class="ExecButton" row="1" column="14"> <property name="name"> <cstring>adiciona</cstring> </property> <property name="minimumSize"> <size> <width>40</width> <height>40</height> </size> </property> <property name="maximumSize"> <size> <width>40</width> <height>40</height> </size> </property> <property name="focusPolicy"> <enum>NoFocus</enum> </property> <property name="text"> <string></string> </property> <property name="accel"> <number>4150</number> </property> <property name="iconSet"> <iconset>image3</iconset> </property> <property name="flat"> <bool>true</bool> </property> <property name="populationText"> <string></string> </property> <property name="associations" stdset="0"> <stringlist> <string>#!/bin/bash DDK="dcop @dcopid KommanderIf"; SCT="setCellText"; PL="Playlist"; enall(){ for m in GB{0,1,2,3,4,5,6,7,8} convert adiciona adiciona2 adiciona3 $PL play remove tela vbit abit; do $DDK $SE $m $1; done } enall false; $DDK clear mpinfo; $DDK clear mplayernfo; ARCHIVES="$(kdialog --multiple --separate-output --getopenfilename "$HOME" '*.[fm][lpk][veg4] *.[awoi][vmgs][ivmo] *.rpm *.rmv *.rmvb' | sed -e 's/ /##SPACE##/g' | sort -f -r)"; insertName(){ $DDK insertRow $PL $n 1; V="$(basename "$1")"; $DDK $SCT $PL $n 0 "$V"; DISC_TITLE="$(echo "$V" | sed -e 's/.[mM][pP][eE][gG4]//g; s/.[fF][lL][vV]//g; s/.[oO][gG][mM]//g; s/.[mM][kK][vV]//g; s/.[mM][pP][gG4]//g; s/.[aA][vV][iI]//g; s/.[wW][mM][vV]//g; s/.[rR][mM][vV][bB]//g; s/.[rR][mM][vV]//g; s/.[rR][pP][mM]//g; s/.[vV][oO][bB]//g; s/.[iI][sS][oO]//g')"; V="$(du -s -h -k "$1" | awk '{ print $1 }')"; $DDK $SCT $PL $n 1 "$V"; V="$(dirname "$1")"; $DDK $SCT $PL $n 14 "$V"; } ncounter(){ VAR="$1"; m=""; n=0; for i in $VAR; do n=$[n+1]; m="$m $n"; done; echo $m } addfiles(){ FILES="$1"; if [ -n "$FILES" ]; then n="$($DDK rowCount $PL 2>/dev/null)"; [ ! -n "$n" ] && n="0"; insertName "$FILES"; case "$FILES" in *.[aA][vV][iI] | *.[wW][mM][vV] | *.[mM][kK][vV] | *.[fF][lL][vV] | *.[oO][gG][mM] | *.[rR][mM][vV] | *.[rR][mM][vV][bB] | *.[rR][pP][mM] | *.[mM][pP][gG4] | *.[mM][pP][eE][gG]) eval "$(mplayer "$FILES" -vo null -ao null -endpos 0 -identify 2>/dev/null 2>&1 | awk '/ID_VIDEO|ID_AUDIO|ID_SEEKABLE|ID_LENGTH|ID_DEMUXER|ID_AID_.*_LANG/')"; ID_FILE_AUDIO="$(mplayer "$FILES" -vo null -ao null -endpos 0 -identify 2>/dev/null 2>&1 | awk '/Audio.*stream/{ print $6 }')"; case "$FILES" in *.mkv) eval "$(mkvmerge -i "$FILES" | awk '/video/{ print "ID_VIDEO_CODEC=" $5 }' | tr -d '()')"; eval "$(mkvmerge -i "$FILES" | awk '/audio/{ print "ID_AUDIO_CODEC=" $5 }' | tr -d '()')"; MER="$(mkvmerge -i "$FILES" | awk '/audio/{ print $3 }')"; ID_FILE_AUDIO="$(ncounter "$MER")"; ;; esac if [ ! -n "$(echo "$ID_VIDEO_ASPECT" | tr -d '0.')" ]; then ID_VIDEO_ASPECT="$(echo "scale=5; $ID_VIDEO_WIDTH/$ID_VIDEO_HEIGHT" | bc -l)"; fi if [ -n "$(echo $ID_FILE_AUDIO | grep 2)" ]; then for i in $ID_FILE_AUDIO; do ID_FILE_AUDIO="$(echo $ID_FILE_AUDIO | sed "s/$i/\"$i\" \"$i\"/g")"; done V="$(kdialog --menu "Linguagens encontradas:" $ID_FILE_AUDIO)"; $DDK $SCT $PL $n 11 "$V"; else $DDK $SCT $PL $n 11 $ID_AUDIO_ID; fi; LFS=""; if [ -f "$($DDK cellText $PL $n 14)/${DISC_TITLE}.srt" ]; then LFS="${DISC_TITLE}.srt"; elif [ -f "$($DDK cellText $PL $n 14)/${DISC_TITLE}.ass" ]; then LFS="${DISC_TITLE}.ass"; fi c=0; for n in $LFS; do c="$[c+1]"; done; if [ -n "$LFS" ]; then if [ "$[c]" != "1" ]; then for i in $LFS; do l="$(echo "$i" | sed -e 's/##SPACE##/ /g')"; LFS="$(echo "$LFS" | sed "s/$i/\"$l\" \"$l\"/g")"; done; V="$(kdialog --menu "Legendas encontradas:" nenhum nenhum $LFS)"; else V="$(echo $LFS | sed -e 's/##SPACE##/ /g')"; fi $DDK $SCT $PL $n 12 "$V"; else $DDK $SCT $PL $n 12 nenhum; fi ;; *.[iI][sS][oO]|*hd[a-z]|*sr[0-9]|*scd[0-9]) TITLE="$(lsdvd -q "$FILES" | awk '/Longest track:/{ print $3 }')"; DISC_TITLE="$(lsdvd -q "$FILES" | awk '/Disc.*Title:/{for (i=3;i<=NF;i++) { print $i }}')"; eval "$(mplayer dvd://$TITLE -dvd-device "$FILES" -vo null -ao null -endpos 0 -identify 2>/dev/null 2>&1 | awk '/ID_AUDIO|ID_VIDEO|ID_DEMUXER|ID_LENGTH|ID_AID_.*_LANG/')"; ID_DVD_AUDIO="$(lsdvd -q -x -t$TITLE "$FILES" | tr -d ':,-' | awk '/Audio.*Language/{ print $1 $2 "_" $4 "_" $5 "_" $7 "_" $9 " " $1 $2 "_" $4 "_" $5 "_" $7 "_" $9 }')"; ID_DVD_SUBS="$(lsdvd -q -x -t$TITLE "$FILES" | tr -d ':,-' | awk '/Subtitle.*Language/{ print $1 $2 "_" $4 "_" $5 " " $1 $2 "_" $4 "_" $5 }')"; c=0; for n in $ID_DVD_AUDIO; do c="$[c+1]"; done; if [ "$[c/2]" != "1" ]; then ID_DVD_AUDIO="$(kdialog --menu "Linguagens encontradas:" $ID_DVD_AUDIO | tr '_' ' ')"; fi; $DDK $SCT $PL $n 11 "$(echo $ID_DVD_AUDIO | awk '{ print $2 }')"; ID_AUDIO_CODEC="$(echo $ID_DVD_AUDIO | awk '{ print $4 }')"; ID_AUDIO_RATE="$(echo $ID_DVD_AUDIO | awk '{ print $5 }')"; c=0; for n in $ID_DVD_SUBS; do c="$[c+1]"; done; if [ "$[c/2]" != "1" ]; then ID_DVD_SUBS="$(kdialog --menu "Legendas encontradas:" nenhum nenhum $ID_DVD_SUBS | tr '_' ' ')"; fi; $DDK $SCT $PL $n 12 "$(echo $ID_DVD_SUBS | awk '{ print $2 }')"; ;; esac $DDK $SCT $PL $n 2 "$ID_LENGTH"; $DDK $SCT $PL $n 3 "$ID_VIDEO_WIDTH:$ID_VIDEO_HEIGHT"; $DDK $SCT $PL $n 4 "$ID_VIDEO_FPS"; $DDK $SCT $PL $n 5 "$ID_VIDEO_ASPECT"; $DDK $SCT $PL $n 6 "$ID_VIDEO_CODEC"; $DDK $SCT $PL $n 7 "$[ID_VIDEO_BITRATE/1000]"; $DDK $SCT $PL $n 8 "$ID_AUDIO_CODEC"; $DDK $SCT $PL $n 9 "$[ID_AUDIO_BITRATE/1000]"; $DDK $SCT $PL $n 10 "$ID_AUDIO_RATE"; DISC_TITLE="$(echo "$DISC_TITLE" | tr -d '(){}[]+!?:')"; $DDK $SCT $PL $n 13 "$DISC_TITLE"; TOTAL="$[$($DDK text total | tr -d 's' | awk '{ print $2 }')+$(echo $ID_LENGTH | cut -f1 -d.)]"; HH="$[$[TOTAL-$[TOTAL-$[$[TOTAL/60]*60]]]/3600]"; MM="$[$[$[TOTAL-$[TOTAL-$[$[TOTAL/60]*60]]]/60]-$[$[$[TOTAL-$[TOTAL-$[$[TOTAL/60]*60]]]/3600]*60]]"; SS="$[TOTAL-$[$[TOTAL/60]*60]]"; [ "$HH" -lt "10" ] && HH="0$HH"; [ "$MM" -lt "10" ] && MM="0$MM"; [ "$SS" -lt "10" ] && SS="0$SS"; $DDK setText total "Total: ${TOTAL}s - $HH:$MM:$SS"; VBITS="$($DDK text vbit | tr -d ':[alpha]:')"; ABITS="$($DDK text abit | tr -d ':[alpha]:')"; SIZE="$(echo "scale=2; ${TOTAL}*$[VBITS]/8+${TOTAL}*2*$[ABITS]/13" | bc -l)"; $DDK setText size "Estimado: $(echo "scale=2; ${SIZE}/1024" | bc -l )MB"; enall true; fi; } for A in $ARCHIVES; do F="$(echo "$A" | sed -e 's/##SPACE##/ /g')"; case $A in *.[iI][sS][oO]|*hd[a-z]|*sr[0-9]|*scd[0-9]) if lsdvd -q "$F" 2>/dev/null; then addfiles "$F"; else kdialog --error "Erro.\nNao foi possivel abrir o arquivo talvez nao seja imagem de um DVD."; fi ;; *) addfiles "$F"; ;; esac done enall true; </string> </stringlist> </property> <property name="toolTip" stdset="0"> <string>Inserir arquivos na lista. (F7)</string> </property> </widget> <widget class="Label" row="8" column="4" rowspan="1" colspan="2"> <property name="name"> <cstring>Label7_2</cstring> </property> <property name="maximumSize"> <size> <width>50</width> <height>30</height> </size> </property> <property name="text"> <string>A. Bits:</string> </property> <property name="associations" stdset="0"> <stringlist> <string></string> </stringlist> </property> </widget> <widget class="ExecButton" row="4" column="14"> <property name="name"> <cstring>play</cstring> </property> <property name="minimumSize"> <size> <width>40</width> <height>40</height> </size> </property> <property name="maximumSize"> <size> <width>40</width> <height>40</height> </size> </property> <property name="focusPolicy"> <enum>NoFocus</enum> </property> <property name="text"> <string></string> </property> <property name="accel"> <number>4153</number> </property> <property name="iconSet"> <iconset>image4</iconset> </property> <property name="flat"> <bool>true</bool> </property> <property name="populationText"> <string></string> </property> <property name="associations" stdset="0"> <stringlist> <string>#!/bin/bash ADLAY="`echo "0.1*@adelay.text" | bc -l`"; fcalc(){ TOTAL="$(echo "scale=$2; $1" | bc -l)"; [ "$2" != "0" ] && echo $TOTAL || echo $TOTAL | cut -d. -f1; } DDK="dcop @dcopid KommanderIf"; enall(){ for m in GB{0,1,2,3,4,5,6,7,8} convert adiciona adiciona2 adiciona3 $PL play remove tela vbit abit; do $DDK $SE $m $1; done } enall false; if [ "$IN" != "-1" ]; then IN="$($DDK currentRow Playlist)"; APC="$($DDK cellText Playlist $IN 5)"; VF1="$($DDK cellText Playlist $IN 3 | cut -d: -f2)"; HF1="$($DDK cellText Playlist $IN 3 | cut -d: -f1)"; case $($DDK selection tela) in NTSC*|PAL*) VF2="$($DDK selection tela | awk '{ print $2 }' | cut -dx -f2)"; HF2="$($DDK selection tela | awk '{ print $2 }' | cut -dx -f1)"; ;; *) VF2="$($DDK selection tela | cut -dx -f2)"; HF2="$($DDK selection tela | cut -dx -f1)"; ;; esac NV="$(fcalc "$HF2/$APC" 0)"; if [ "@wide.checked" == "0" -a "@fill.checked" == "0" ] || [ "@wide.checked" == "1" -a "@fill.checked" == "1" ]; then if [ "$NV" -lt "405" -o "$NV" == "405" ]; then ASPECT="16/9"; else ASPECT="4/3"; fi; EXPAND="expand=$HF1:::::$ASPECT,scale=$HF2:$VF2"; elif [ "@wide.checked" == "1" -a "@fill.checked" == "0" ]; then ASPECT="16/9"; if [ "$NV" -lt "405" -o "$NV" == "405" ]; then EXPAND="expand=$HF1:::::$ASPECT,scale=$HF2:$VF2"; else VF="$(fcalc "9*$HF1/16" 0)"; EXPAND="crop=$HF1:$VF,scale=$HF2:$VF2"; fi; elif [ "@wide.checked" == "0" -a "@fill.checked" == "1" ]; then ASPECT="4/3"; if [ "$NV" -lt "405" -o "$NV" == "405" ]; then EXPAND="expand=$HF1:::::$ASPECT,scale=$HF2:$VF2"; else VF="$(fcalc "3*$HF1/4" 0)"; EXPAND="crop=$HF1:$VF,scale=$HF2:$VF2"; fi; fi ENDR="$($DDK cellText Playlist $IN 14)"; FNAME="$($DDK cellText Playlist $IN 0)"; FILE="$ENDR/$FNAME"; MPL="mplayer -channels 6 -af resample=48000,hrtf -noautosub -ontop -idx -vo xv -identify -osdlevel 2 -softvol -softvol-max 500"; ALANG="$($DDK cellText Playlist $IN 11)"; case $ALANG in [a-z][a-z]) ALANG=" -alang $ALANG"; ;; [0-9]) ALANG=" -aid $ALANG"; ;; nenhum|todos) ALANG=""; ;; esac SLANG="$($DDK cellText Playlist $IN 12)"; case $SLANG in [a-z][a-z]) SLANG="-slang $SLANG -subfont-autoscale 2"; ;; [0-9]) SLANG="-sid $SLANG -subfont-autoscale 2"; ;; *[sS][rR][tT]) cp -a "$($DDK cellText Playlist $IN 14)/$SLANG" /tmp/subcmp@pid.srt; SLANG="-utf8 -sub /tmp/subcmp@pid.srt -subfont-autoscale 2"; ;; *) SLANG=''; ;; esac; case "$FNAME" in *.[wW][mM][vV] | *.[mM][kK][vV] | *.[fF][lL][vV] | *.[oO][gG][mM] | *.[rR][mM][vV] | *.[rR][mM][vV][bB] | *.[rR][pP][mM]) $MPL -vf $EXPAND:0,harddup "$FILE" $SLANG 2>/dev/null; ;; *.[mM][pP][eE][gG] | *.[mM][pP][gG4] | *.[aA][vV][iI] | *.[vV][oO][bB]) $MPL -vf $EXPAND:0,harddup "$FILE" $ALANG $SLANG 2>/dev/null; ;; *) case "$FNAME" in *.[iI][sS][oO]) FILE="$ENDR/$FNAME"; ;; *) FILE="$ENDR"; ;; esac; TLE="$(lsdvd "$FILE" 2>/dev/null | awk '/Longest track:/{ print $3 }')"; $MPL dvd://"$TLE" -dvd-device "$FILE" -vf $EXPAND:0,harddup $ALANG $SLANG 2>/dev/null; ;; esac enall true; fi </string> </stringlist> </property> <property name="toolTip" stdset="0"> <string>Reproduz e previzualiza o arquivo escolhido.(F10)</string> </property> </widget> <widget class="ExecButton" row="2" column="14"> <property name="name"> <cstring>adiciona2</cstring> </property> <property name="minimumSize"> <size> <width>40</width> <height>40</height> </size> </property> <property name="maximumSize"> <size> <width>40</width> <height>40</height> </size> </property> <property name="focusPolicy"> <enum>NoFocus</enum> </property> <property name="text"> <string></string> </property> <property name="accel"> <number>4151</number> </property> <property name="iconSet"> <iconset>image5</iconset> </property> <property name="flat"> <bool>true</bool> </property> <property name="populationText"> <string></string> </property> <property name="associations" stdset="0"> <stringlist> <string>#!/bin/bash DDK="dcop @dcopid KommanderIf"; SCT="setCellText"; PL="Playlist"; enall(){ for m in GB{0,1,2,3,4,5,6,7,8} convert adiciona adiciona2 adiciona3 $PL play remove tela vbit abit; do $DDK $SE $m $1; done } enall false; FILES="$(kdialog --getexistingdirectory "$HOME")"; TITLE="$(lsdvd -q "$FILES" | awk '/Longest track:/{ print $3 }')"; if [ -n "$FILES" -a -n "$TITLE" ]; then n="$($DDK rowCount $PL)"; [ ! -n "$n" ] && n="0"; DISC_TITLE="$(echo "$FILES" | awk -F'/' '{ print $NF }')"; $DDK insertRow $PL $n 1; $DDK $SCT $PL $n 0 "$DISC_TITLE"; V="$(du -s -h -k "$FILES" | awk '{ print $1 }')"; $DDK $SCT $PL $n 1 "$V"; $DDK $SCT $PL $n 14 "$FILES"; DISC_TITLE="$(lsdvd -q "$FILES" | awk '/Disc.*Title:/{for (i=3;i<=NF;i++) { print $i }}')"; ID_FILE="$(mplayer dvd://$TITLE -dvd-device "$FILES" -vo null -ao null -endpos 0 -identify 2>/dev/null 2>&1 | awk '/ID_AUDIO|ID_VIDEO|ID_DEMUXER|ID_LENGTH|ID_AID_.*_LANG/')"; ID_DVD_AUDIO="$(lsdvd -q -x -t$TITLE "$FILES" | tr -d ':,-' | awk '/Audio.*Language/{ print $1 $2 "_" $4 "_" $5 "_" $7 "_" $9 " " $1 $2 "_" $4 "_" $5 "_" $7 "_" $9 }')"; ID_DVD_SUBS="$(lsdvd -q -x -t$TITLE "$FILES" | tr -d ':,-' | awk '/Subtitle.*Language/{ print $1 $2 "_" $4 "_" $5 " " $1 $2 "_" $4 "_" $5 }')"; declare -t $ID_FILE; c=0; for n in $ID_DVD_AUDIO; do c="$[c+1]"; done; if [ "$[c/2]" != "1" ]; then ID_DVD_AUDIO="$(kdialog --menu "Linguagens encontradas:" $ID_DVD_AUDIO | tr '_' ' ')"; fi; $DDK $SCT $PL $n 11 "$(echo $ID_DVD_AUDIO | awk '{ print $2 }')"; ID_AUDIO_CODEC="$(echo $ID_DVD_AUDIO | awk '{ print $4 }')"; ID_AUDIO_RATE="$(echo $ID_DVD_AUDIO | awk '{ print $5 }')"; c=0; for n in $ID_DVD_SUBS; do c="$[c+1]"; done; if [ "$[c/2]" != "1" ]; then ID_DVD_SUBS="$(kdialog --menu "Legendas encontradas:" nenhum nenhum $ID_DVD_SUBS | tr '_' ' ')"; fi; $DDK $SCT $PL $n 12 "$(echo $ID_DVD_SUBS | awk '{ print $2 }')"; $DDK $SCT $PL $n 2 "$ID_LENGTH"; $DDK $SCT $PL $n 3 "$ID_VIDEO_WIDTH:$ID_VIDEO_HEIGHT"; $DDK $SCT $PL $n 4 "$ID_VIDEO_FPS"; $DDK $SCT $PL $n 5 "$ID_VIDEO_ASPECT"; $DDK $SCT $PL $n 6 "$ID_VIDEO_CODEC"; $DDK $SCT $PL $n 7 "$[ID_VIDEO_BITRATE/1000]"; $DDK $SCT $PL $n 8 "$ID_AUDIO_CODEC"; $DDK $SCT $PL $n 9 "$[ID_AUDIO_BITRATE/1000]"; $DDK $SCT $PL $n 10 "$ID_AUDIO_RATE"; $DDK $SCT $PL $n 13 "$DISC_TITLE"; TOTAL="$[$($DDK text total | awk '{ print $2 }')+$(echo $ID_LENGTH | cut -f1 -d.)]"; HH="$[$[TOTAL-$[TOTAL-$[$[TOTAL/60]*60]]]/3600]"; MM="$[$[$[TOTAL-$[TOTAL-$[$[TOTAL/60]*60]]]/60]-$[$[$[TOTAL-$[TOTAL-$[$[TOTAL/60]*60]]]/3600]*60]]"; SS="$[TOTAL-$[$[TOTAL/60]*60]]"; [ "$HH" -lt "10" ] && HH="0$HH"; [ "$MM" -lt "10" ] && MM="0$MM"; [ "$SS" -lt "10" ] && SS="0$SS"; $DDK setText total "Total: $TOTAL s - $HH:$MM:$SS"; VBITS="$($DDK text vbit | tr -d ':[alpha]:')"; ABITS="$($DDK text abit | tr -d ':[alpha]:')"; SIZE="$(echo "scale=2; ${TOTAL}*$[VBITS]/8+${TOTAL}*2*$[ABITS]/13" | bc -l)"; $DDK setText size "Estimado: $(echo "scale=2; ${SIZE}/1024" | bc -l )MB"; enall true; fi; enall true; </string> </stringlist> </property> <property name="toolTip" stdset="0"> <string>Inserir uma pasta contendo um dvd na lista.(F8)</string> </property> </widget> <widget class="SpinBoxInt" row="8" column="3"> <property name="name"> <cstring>vbit</cstring> </property> <property name="maximumSize"> <size> <width>32767</width> <height>30</height> </size> </property> <property name="suffix"> <string>k</string> </property> <property name="maxValue"> <number>9800</number> </property> <property name="minValue"> <number>200</number> </property> <property name="lineStep"> <number>10</number> </property> <property name="value"> <number>3000</number> </property> <property name="populationText"> <string></string> </property> <property name="associations" stdset="0"> <stringlist> <string></string> </stringlist> </property> <property name="toolTip" stdset="0"> <string>Video bit rate: Min=800, Max=9800</string> </property> </widget> <widget class="ExecButton" row="8" column="11" rowspan="1" colspan="2"> <property name="name"> <cstring>convert</cstring> </property> <property name="minimumSize"> <size> <width>100</width> <height>30</height> </size> </property> <property name="maximumSize"> <size> <width>100</width> <height>30</height> </size> </property> <property name="text"> <string>C&onverter</string> </property> <property name="accel"> <number>4149</number> </property> <property name="default"> <bool>true</bool> </property> <property name="flat"> <bool>true</bool> </property> <property name="populationText"> <string></string> </property> <property name="associations" stdset="0"> <stringlist> <string>@Konsole6.cancel; @Konsole6.clear; @Konsole6.execute; @DISPLAY.setText("PREPARANDO O INICIO DOS PROCESSOS."); @PP_1.setText(0); @PP_2.setText(0); </string> </stringlist> </property> <property name="toolTip" stdset="0"> <string>Da inicio a convercao.(F6)</string> </property> </widget> <widget class="Label" row="0" column="0" rowspan="1" colspan="15"> <property name="name"> <cstring>Label6</cstring> </property> <property name="text"> <string>Arquivos a serem convertidos:</string> </property> <property name="associations" stdset="0"> <stringlist> <string></string> </stringlist> </property> </widget> <widget class="ComboBox" row="8" column="1"> <property name="name"> <cstring>tela</cstring> </property> <property name="minimumSize"> <size> <width>110</width> <height>0</height> </size> </property> <property name="maximumSize"> <size> <width>32767</width> <height>30</height> </size> </property> <property name="editable"> <bool>true</bool> </property> <property name="associations" stdset="0"> <stringlist> <string></string> </stringlist> </property> <property name="toolTip" stdset="0"> <string>Padroes de cor e tela.</string> </property> </widget> <widget class="ComboBox" row="8" column="7" rowspan="1" colspan="2"> <item> <property name="text"> <string>128</string> </property> </item> <item> <property name="text"> <string>160</string> </property> </item> <item> <property name="text"> <string>192</string> </property> </item> <item> <property name="text"> <string>224</string> </property> </item> <item> <property name="text"> <string>448</string> </property> </item> <property name="name"> <cstring>abit</cstring> </property> <property name="maximumSize"> <size> <width>32767</width> <height>30</height> </size> </property> <property name="editable"> <bool>true</bool> </property> <property name="currentItem"> <number>2</number> </property> <property name="populationText"> <string>@sizecalc.execute</string> </property> <property name="associations" stdset="0"> <stringlist> <string></string> </stringlist> </property> <property name="toolTip" stdset="0"> <string>Audio bit rate.</string> </property> </widget> <widget class="ExecButton" row="8" column="13" rowspan="1" colspan="2"> <property name="name"> <cstring>canceler</cstring> </property> <property name="enabled"> <bool>false</bool> </property> <property name="minimumSize"> <size> <width>100</width> <height>30</height> </size> </property> <property name="maximumSize"> <size> <width>100</width> <height>30</height> </size> </property> <property name="text"> <string>&Cancelar</string> </property> <property name="accel"> <number>276824131</number> </property> <property name="flat"> <bool>true</bool> </property> <property name="associations" stdset="0"> <stringlist> <string>@exec("for p in `ps -A | awk '/[m]encoder/{ print $1 }'`; do if grep -q CNV@pid /proc/$p/cmdline ; then kill $p; fi; done") @setGlobal("EXECNO", "1") </string> </stringlist> </property> <property name="toolTip" stdset="0"> <string>Cancela a execucao.(Alt+C)</string> </property> </widget> <widget class="TabWidget" row="7" column="0" rowspan="1" colspan="15"> <property name="name"> <cstring>TabWidget1</cstring> </property> <property name="maximumSize"> <size> <width>32767</width> <height>180</height> </size> </property> <property name="tabPosition"> <enum>Bottom</enum> </property> <property name="tabShape"> <enum>Triangular</enum> </property> <widget class="QWidget"> <property name="name"> <cstring>tab</cstring> </property> <attribute name="title"> <string>S&aidas do Shell</string> </attribute> <grid> <property name="name"> <cstring>unnamed</cstring> </property> <property name="margin"> <number>0</number> </property> <property name="spacing"> <number>0</number> </property> <widget class="Konsole" row="0" column="0"> <property name="name"> <cstring>Konsole6</cstring> </property> <property name="maximumSize"> <size> <width>32767</width> <height>180</height> </size> </property> <property name="paletteForegroundColor"> <color> <red>0</red> <green>0</green> <blue>0</blue> </color> </property> <property name="associations" stdset="0"> <stringlist> <string>#!/bin/bash SPUMUX=`ls /usr/bin/spumux 2> /dev/null`; MPGINFO=`ls /usr/bin/mpginfo 2> /dev/null`; ADLAY="`echo "0.1*@adelay.text" | bc -l`"; NUM="0" UN="0"; LIST=""; VL="0"; ST="setText"; SE="setEnabled"; DL="/tmp/dvdconvert-@pid.log"; DZ="$HOME/WORKDVD/dvdconvert1-@pid"; EXDA="/tmp/dvdauthor-@pid.sh"; M1="TODOS OS PROCESSOS CONCLUIDOS."; M2="TODOS OS PROCESSOS CANCELADOS."; if [ "$[@steps.checked]" == "1" ]; then TWO_STEPS="1 2"; else TWO_STEPS="0"; fi rm -f "$DL"; fcalc(){ TOTAL="$(echo "scale=$2; $1" | bc -l)"; [ "$2" != "0" ] && echo $TOTAL || echo $TOTAL | cut -d. -f1; } result(){ if [ "$2" == "0" ]; then echo "[Concluido]"; echo -e "Gerando capitulos ... \t \c"; CHAP="$(make_chap 1)"; echo "<vob file=\"${FOT}.mpg\" chapters=\"$CHAP\" pause=\"0\" />" >> ${DZ}.xml; MSEND="$M1"; echo "[ok]"; else echo "[Parado]"; $DDK cancel Timer1; MSEND="$M2"; enable_all true; $DDK $SE canceler false; $DDK $ST DISPLAY "$MSEND"; $DDK $ST PP_1 0; $DDK $ST PP_2 0; rm -f ${DZ}.xml 2>&1 &>$DL; rm -f /tmp/*@pid.* 2>/dev/null; echo "Pra mais informacoes, veja: $DL"; break; fi; CHAP="$(make_chap $1)"; } make_chap(){ CP=0; SP=0; case $1 in 1) TC="$($DDK cellText $PL $IN 2)"; NC="$(fcalc "$TC/300" 0)"; RC="$(fcalc "$TC/$NC" 3)"; for ((LC=1;LC<=$(($NC-1));LC++)); do TA="$(fcalc "$RC*$LC" 3)"; CP="$CP $TA"; done ;; 2) C="$(lsdvd -qx -t"$TLE" "$FILE" 2>/dev/null | awk '/Chapter:.*Length:/{ print $4 }' | tr -d ',')"; for d in $C; do SP="$SP+$(echo $d | awk -F: '{ print $1 "*3600+" $2 "*60+" $3 }')"; TA="$(fcalc "$SP" 3)"; CP="$CP $TA"; done; ;; esac echo $CP | tr ' ' ',' | sed 's/,,/,/g'; } mkdvd(){ mkdir -p "$HOME/WORKDVD/" 2>&1 &>$DL; case $1 in 1) echo -e "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<dvdauthor>\n<vmgm>\n<fpc>subtitle=65; jump title 1;</fpc>\n</vmgm>\n<titleset>\n<titles>\n<audio samplerate=\"48khz\" format=\"$ACOD\" />\n<video resolution=\"${HF2}x${VF2}\" format=\"$TYPE\" />\n<pgc>" > ${DZ}.xml; ;; 2) echo -e '<post>call vmgm menu 1;</post>\n</pgc>\n</titles>\n</titleset>\n</dvdauthor>' >> ${DZ}.xml; ;; 3) if [ -e "/usr/bin/dvdauthor" ]; then $DDK setGlobal L1 "B $($DDK text PP_2)"; $DDK execute Timer1; echo -e "Gerando DVD em $HOME/WORKDVD ... \t \c"; $EXDA -o "$HOME/WORKDVD/DVD@pid/" -x "${DZ}.xml" 2>&1 &>$DL; [ "$?" == "0" ] && echo "[Concluido]" || echo "[Parado]"; $DDK cancel Timer1; else echo "Pacote dvdauthor nao encontrado."; fi ;; esac } addsubs(){ if [ "$1" == "0" ]; then if [ "@titles.checked" == "1" -a -n "$SPUMUX" ]; then echo -e "1\n00:00:02,800 --> 00:00:11,801\n$TITLE\n" | tr '_' ' ' > /tmp/subtitle@pid.srt; echo "<subpictures><stream><textsub filename=\"/tmp/subtitle@pid.srt\" characterset=\"UTF-8\" fontsize=\"25.0\" font=\"Georgia_Bold_Italic.ttf\" horizontal-alignment=\"center\" vertical-alignment=\"top\" top-margin=\"30\" subtitle-fps=\"25\" movie-width=\"$HF2\" movie-height=\"$VF2\" /></stream></subpictures>" > /tmp/spuxml@pid.xml; spumux -s 0 -m dvd "/tmp/spuxml@pid.xml" < "${FOT}.mpg" > /tmp/videofinal@pid.mpg 2>/dev/null; mv "/tmp/videofinal@pid.mpg" "${FOT}.mpg" 2>/dev/null 2>&1 &>$DL; rm -f /tmp/spuxml@pid.xml /tmp/subtitle@pid.srt 2>/dev/null 2>&1 &>$DL; fi if [ -e "/tmp/subcmp@pid.srt" ]; then echo "<subpictures><stream><textsub filename=\"/tmp/subcmp@pid.srt\" characterset=\"UTF-8\" fontsize=\"25.0\" font=\"Georgia_Bold_Italic.ttf\" horizontal-alignment=\"center\" vertical-alignment=\"top\" top-margin=\"30\" subtitle-fps=\"25\" movie-width=\"$HF2\" movie-height=\"$VF2\" /></stream></subpictures>" > /tmp/spuxml@pid.xml; spumux -s 0 -m dvd "/tmp/spuxml@pid.xml" < "${FOT}.mpg" > /tmp/videofinal@pid.mpg 2>/dev/null; mv "/tmp/videofinal@pid.mpg" "${FOT}.mpg" 2>/dev/null 2>&1 &>$DL; rm -f /tmp/spuxml@pid.xml /tmp/subcmp@pid.srt 2>/dev/null 2>&1 &>$DL; fi fi } matroska_packer(){ if [ "$END" == "0" ]; then echo "[Concluido]"; echo -e "Empacotando matroska ... \t \c"; /usr/bin/ffmpeg -i "/tmp/video_tmp@pid.avi" -vcodec copy -acodec copy -f matroska "$1" 2>/dev/null 2>&1 &>$DL; if [ "$?" == "0" ]; then echo "[Concluido]"; else echo "[Erro ou cancelado]"; break; fi else echo "[Erro ou cancelado]"; break; fi } export LPOINT="0"; DDK="dcop @dcopid KommanderIf"; PL="Playlist"; SL="selection"; $DDK $SE canceler true; enable_all(){ for m in GB{0,1,2,3,4,5,6,7,8} convert adiciona adiciona2 adiciona3 $PL play remove tela vbit abit; do $DDK $SE $m $1; done } enable_all false; while : ; do NAME="$($DDK cellText $PL $UN 0)"; [ ! -n "$NAME" ] && break; UN=$[UN+1]; done; $DDK $ST PP_1 0; $DDK $ST PP_2 0; $DDK setMaximum PP_1 100; $DDK setMaximum PP_2 $[100*UN]; ABIT="$($DDK $SL abit)"; VBIT="$($DDK text vbit)"; TYPE="$($DDK $SL tela | awk '{ print $1 }'| tr [:upper:] [:lower:])"; case $TYPE in ntsc*|pal*) VF2="$($DDK selection tela | awk '{ print $2 }' | cut -dx -f2)"; HF2="$($DDK selection tela | awk '{ print $2 }' | cut -dx -f1)"; ;; *) VF2="$($DDK selection tela | cut -dx -f2)"; HF2="$($DDK selection tela | cut -dx -f1)"; ;; esac SRATE="48000"; if [ "$TYPE" == "ntsc" ]; then KEY="18"; FPS="30000/1001"; if [ "$HF2:$VF2" == "720:480" -o "$HF2:$VF2" == "704:480" ]; then VCOD="mpeg2video"; ACOD="ac3"; CH="-channels 6"; ILACE=":ilme:ildct"; else VCOD="mpeg1video"; ACOD="mp2"; CH="-channels 2"; ILACE=""; fi; else KEY="15"; FPS="25"; if [ "$HF2:$VF2" == "720:576" -o "$HF2:$VF2" == "704:576" ]; then VCOD="mpeg2video"; ACOD="ac3"; CH="-channels 6"; ILACE=":ilme:ildct"; else VCOD="mpeg1video"; ACOD="mp2"; CH="-channels 2"; ILACE=""; fi; fi echo "$[UN] arquivos postos para convercao."; if [ "$[UN]" != "0" ]; then mkdvd 1; for ((IN=0;IN<$[UN];IN++)); do APC="$($DDK cellText $PL $IN 5)"; VF1="$($DDK cellText $PL $IN 3 | cut -d: -f2)"; HF1="$($DDK cellText $PL $IN 3 | cut -d: -f1)"; NV="$(fcalc "$HF2/$APC" 0)"; $DDK setGlobal L2 "0"; if [ "@wide.checked" == "0" -a "@fill.checked" == "0" ] || [ "@wide.checked" == "1" -a "@fill.checked" == "1" ]; then if [ "$NV" -lt "405" -o "$NV" == "405" ]; then ASP="16/9"; else ASP="4/3"; fi; EXPAND="expand=$HF1:::::$ASP,scale=$HF2:$VF2"; elif [ "@wide.checked" == "1" -a "@fill.checked" == "0" ]; then ASP="16/9"; if [ "$NV" -lt "405" -o "$NV" == "405" ]; then EXPAND="expand=$HF1:::::$ASP,scale=$HF2:$VF2"; else VF="$(fcalc "9*$HF1/16" 0)"; EXPAND="crop=$HF1:$VF,scale=$HF2:$VF2"; fi; elif [ "@wide.checked" == "0" -a "@fill.checked" == "1" ]; then ASP="4/3"; if [ "$NV" -lt "405" -o "$NV" == "405" ]; then EXPAND="expand=$HF1:::::$ASP,scale=$HF2:$VF2"; else VF="$(fcalc "3*$HF1/4" 0)"; EXPAND="crop=$HF1:$VF,scale=$HF2:$VF2"; fi; fi ENDR="$($DDK cellText Playlist $IN 14)"; TITLE="$($DDK cellText Playlist $IN 13)"; FNAME="$($DDK cellText Playlist $IN 0)"; FILE="$ENDR/$FNAME"; ALANG="$($DDK cellText $PL $IN 11)"; case $ALANG in [a-z][a-z]) ALANG=" -alang $ALANG"; ;; [0-9]) ALANG=" -aid $ALANG"; ;; *) ALANG=""; ;; esac SLANG="$($DDK cellText Playlist $IN 12)"; case $SLANG in [a-z][a-z]) SLANG="-slang $SLANG -subfont-autoscale 2"; ;; [0-9]) SLANG="-sid $SLANG -subfont-autoscale 2"; ;; *srt) cp -a "$($DDK cellText Playlist $IN 14)/$SLANG" /tmp/subcmp@pid.srt; if [ -n "$SPUMUX" ]; then SLANG=""; SFILE="/tmp/subcmp@pid.srt" else SLANG="-utf8 -sub /tmp/subcmp@pid.srt -subfont-autoscale 2"; fi ;; *ass) cp -a "$($DDK cellText Playlist $IN 14)/$SLANG" /tmp/subcmp@pid.ass; if [ -n "$SPUMUX" ]; then SLANG=""; SFILE="/tmp/subcmp@pid.ass" else SLANG="-utf8 -sub /tmp/subcmp@pid.ass -subfont-autoscale 2"; fi ;; *) SLANG=""; ;; esac; MP3F=""; if [ "@audioonly.checked" == "1" ]; then MP3F="$($DDK cellText $PL $IN 14)/$($DDK cellText $PL $IN 13).mp3"; FOT="/tmp/videofile@pid.avi"; PARAM2="-of avi"; PARAM3="mp3lame -lameopts vbr=2:br=128:mode=1 -af resample=44100,volume=4"; PARAM0="copy"; PARAM1=""; elif [ "@h264.checked" == "1" ]; then EXPAND=""; PARAM0="x264 -x264encopts bitrate=$[VBIT]:turbo:subq=6:threads=4"; if [ "@fill.checked" == "1" -a "@wide.checked" == "0" ]; then EXPAND=",expand=720:::::4/3 -force-avi-aspect 4/3"; elif [ "@fill.checked" == "0" -a "@wide.checked" == "1" ]; then EXPAND=",crop=720:406 -force-avi-aspect 16/9"; fi PARAM1="-vf pp=linblenddeint,scale=$HF2:-2,harddup$EXPAND"; PARAM2="-of avi"; PARAM3="mp3lame -lameopts vbr=2:br=128:mode=1 -af resample=44100,volume=4"; FPS="24"; FOT="$($DDK cellText $PL $IN 14)/$($DDK cellText $PL $IN 13)_CNV@pid"; elif [ "@XVID.checked" == "1" ]; then EXPAND=""; PARAM0="xvid -xvidencopts bitrate=$[VBIT]:turbo:threads=4"; if [ "@fill.checked" == "1" -a "@wide.checked" == "0" ]; then EXPAND=",expand=720:::::4/3 -force-avi-aspect 4/3"; elif [ "@fill.checked" == "0" -a "@wide.checked" == "1" ]; then EXPAND=",crop=720:406 -force-avi-aspect 16/9"; fi PARAM1="-vf pp=linblenddeint,scale=$HF2:-2,harddup$EXPAND"; PARAM2="-of avi"; PARAM3="mp3lame -lameopts vbr=2:br=128:mode=1 -af resample=44100,volume=4"; FPS="24"; FOT="$($DDK cellText $PL $IN 14)/$($DDK cellText $PL $IN 13)_CNV@pid"; else PARAM2="-of mpeg -mpegopts format=dvd:tsaf"; FOT="$($DDK cellText $PL $IN 14)/$($DDK cellText $PL $IN 13)_CNV@pid"; [ @high.checked == 1 ] && HQ=":trell:mbd=2:precmp=2:subcmp=2:cmp=2:dia=-10:predia=-10:cbp:mv0:vqmin=1:lmin=1:dc=10"; if [ @onlycopy.checked == 1 ]; then PARAM3="copy"; PARAM0="copy"; PARAM1=""; else PARAM3="lavc"; PARAM0="lavc"; PARAM1="-vf pp=linblenddeint,$EXPAND:0,harddup -srate $SRATE $CH -af resample=$SRATE,volnorm,volume=4,lavcresample=$SRATE -lavcopts vcodec=$VCOD$ILACE:vrc_buf_size=1835:vrc_maxrate=9800:vbitrate=$VBIT:keyint=$KEY$HQ:turbo:vstrict=0:acodec=$ACOD:abitrate=$ABIT:aspect=$ASP"; fi fi EXMP="mencoder -noautosub -idx -audio-delay $ADLAY -oac $PARAM3 -ovc $PARAM0$VP_PARAM $PARAM2 $PARAM1 -ofps $FPS -o"; EXDA="dvdauthor"; $DDK setGlobal L1 "A $($DDK text PP_2)"; $DDK execute Timer1; if [ "@h264.checked" == "1" ]; then case "$FILE" in *.[wW][mM][vV] | *.[rR][mM][vV] | *.[rR][mM][vV][bB] | *.[rR][pP][mM] | *.[fF][lL][vV] | *.[oO][gG][mM]) echo -e "Convertendo: $FILE ... \t \c"; for n in $TWO_STEPS; do if [ "$[n]" == "0" ]; then VP_PARAM=""; OU_PARAM="/tmp/video_tmp@pid.avi"; else echo -e "Pass $[n]...\t\c"; VP_PARAM=":vpass=$[n]"; if [ "$[n]" == "1" ]; then OU_PARAM="/dev/null"; else OU_PARAM="/tmp/video_tmp@pid.avi"; fi; fi $EXMP "$OU_PARAM" "$FILE" -aid 0 -subfont-autoscale 2 2>/dev/null 2>&1 &>$DL; END="$?"; [ "$END" != "0" ] && break; [ "$END" == "0" -a "$[n]" != "0" ] && $DDK setGlobal L2 "$($DDK text PP_1)"; done matroska_packer "${FOT}.mkv"; ;; *.[mM][pP][eE][gG] | *.[mM][pP][gG4] | *.[aA][vV][iI] | *.[vV][oO][bB]) echo -e "Convertendo: $FILE ... \t \c"; for n in $TWO_STEPS; do if [ "$[n]" == "0" ]; then VP_PARAM=""; OU_PARAM="/tmp/video_tmp@pid.avi"; else echo -e "Pass $[n]...\t\c"; VP_PARAM=":vpass=$[n]"; if [ "$[n]" == "1" ]; then OU_PARAM="/dev/null"; else OU_PARAM="/tmp/video_tmp@pid.avi"; fi; fi $EXMP "$OU_PARAM" "$FILE" $ALANG $SLANG 2>/dev/null 2>&1 &>$DL; END="$?"; [ "$END" != "0" ] && break; [ "$END" == "0" -a "$[n]" != "0" ] && $DDK setGlobal L2 "$($DDK text PP_1)"; done matroska_packer "${FOT}.mkv"; ;; *.[mM][kK][vV]) echo -e "Convertendo: $FILE ... \t \c"; for n in $TWO_STEPS; do if [ "$[n]" == "0" ]; then VP_PARAM=""; OU_PARAM="/tmp/video_tmp@pid.avi"; else echo -e "Pass $[n]...\t\c"; VP_PARAM=":vpass=$[n]"; if [ "$[n]" == "1" ]; then OU_PARAM="/dev/null"; else OU_PARAM="/tmp/video_tmp@pid.avi"; fi; fi $EXMP "$OU_PARAM" "$FILE" -sid 0 -subfont-autoscale 2 2>/dev/null 2>&1 &>$DL; END="$?"; [ "$END" != "0" ] && break; [ "$END" == "0" -a "$[n]" != "0" ] && $DDK setGlobal L2 "$($DDK text PP_1)"; done matroska_packer "${FOT}.mkv"; ;; *) case "$FNAME" in *.[iI][sS][oO]) FILE="$ENDR/$FNAME"; ;; *) mkdir -p $HOME/WORKDVD/ 2>/dev/null; FILE="$ENDR"; FOT="$HOME/WORKDVD/${FNAME}_CNV@pid"; ;; esac; TLE="$(lsdvd "$FILE" 2>/dev/null | awk '/Longest track:/{ print $3 }')"; if [ "@wide.checked" == "0" -a "@fill.checked" == "0" ]; then DVDNCROP="$(mplayer -ss 100 -endpos 1 -vo null -ao null -vf cropdetect dvd://"$TLE" -dvd-device "$FILE" 2>/dev/null 2>&1 | tr -d '().' | awk '/Crop area/{ print $(NF-1) " " $NF }' | sort | uniq)"; fi if [ "@chaponly.checked" == "1" ]; then mkdir -p "$HOME/WORKDVD/${FNAME}/" 2>/dev/null; endc=""; oldc=""; ON="1"; for c in `chaplin -d "$FILE" -t "$TLE" -c 2>/dev/null | awk '/chapter.*begin:/{ print $4 }'`; do if [ -n "$oldc" ]; then echo -e "Convertendo: $FILE [$TITLE] Chapter: $ON ... \t \c"; for n in $TWO_STEPS; do if [ "$[n]" == "0" ]; then VP_PARAM=""; OU_PARAM="/tmp/video_tmp@pid.avi"; else echo -e "Pass $[n]...\t\c"; VP_PARAM=":vpass=$[n]"; if [ "$[n]" == "1" ]; then OU_PARAM="/dev/null"; else OU_PARAM="/tmp/video_tmp@pid.avi"; fi; fi $EXMP "$OU_PARAM" dvd://"$TLE" -dvd-device "$FILE" $ALANG $DVDNCROP -ss $oldc -endpos `echo "$c-$oldc" | bc -l` 2>/dev/null 2>&1 &>$DL; END="$?"; [ "$END" != "0" ] && break; [ "$END" == "0" -a "$[n]" != "0" ] && $DDK setGlobal L2 "$($DDK text PP_1)"; done matroska_packer "$HOME/WORKDVD/${FNAME}/${FNAME}_CNV@pid$(echo $[10000+ON] | cut -c2-).mkv"; ON="$[ON+1]"; fi oldc="$c"; done else echo -e "Convertendo: $FILE [$TITLE] ... \t \c"; for n in $TWO_STEPS; do if [ "$[n]" == "0" ]; then VP_PARAM=""; OU_PARAM="/tmp/video_tmp@pid.avi"; else echo -e "Pass $[n]...\t\c"; VP_PARAM=":vpass=$[n]"; if [ "$[n]" == "1" ]; then OU_PARAM="/dev/null"; else OU_PARAM="/tmp/video_tmp@pid.avi"; fi; fi $EXMP "$OU_PARAM" dvd://"$TLE" -dvd-device "$FILE" $ALANG $DVDNCROP 2>/dev/null 2>&1 &>$DL; END="$?"; [ "$END" != "0" ] && break; [ "$END" == "0" -a "$[n]" != "0" ] && $DDK setGlobal L2 "$($DDK text PP_1)"; done matroska_packer "${FOT}.mkv"; fi ;; esac elif [ "@XVID.checked" == "1" ]; then case "$FILE" in *.[wW][mM][vV] | *.[rR][mM][vV] | *.[rR][mM][vV][bB] | *.[rR][pP][mM] | *.[fF][lL][vV] | *.[oO][gG][mM]) echo -e "Convertendo: $FILE ... \t \c"; for n in $TWO_STEPS; do if [ "$[n]" == "0" ]; then VP_PARAM=""; OU_PARAM="${FOT}.avi"; else echo -e "Pass $[n]...\t\c"; VP_PARAM=":vpass=$[n]"; if [ "$[n]" == "1" ]; then OU_PARAM="/dev/null"; else OU_PARAM="${FOT}.avi"; fi; fi $EXMP "$OU_PARAM" "$FILE" $ALANG $SLANG 2>/dev/null 2>&1 &>$DL; END="$?"; [ "$END" != "0" ] && break; [ "$END" == "0" -a "$[n]" != "0" ] && $DDK setGlobal L2 "$($DDK text PP_1)"; done if [ "$END" == "0" ]; then echo "[Concluido]"; else echo "[Parado]"; $DDK cancel Timer1; break; fi; ;; *.[mM][pP][eE][gG] | *.[mM][pP][gG4] | *.[aA][vV][iI] | *.[vV][oO][bB]) echo -e "Convertendo: $FILE ... \t \c"; for n in $TWO_STEPS; do if [ "$[n]" == "0" ]; then VP_PARAM=""; OU_PARAM="${FOT}.avi"; else echo -e "Pass $[n]...\t\c"; VP_PARAM=":vpass=$[n]"; if [ "$[n]" == "1" ]; then OU_PARAM="/dev/null"; else OU_PARAM="${FOT}.avi"; fi; fi $EXMP "$OU_PARAM" "$FILE" $ALANG $SLANG 2>/dev/null 2>&1 &>$DL; END="$?"; [ "$END" != "0" ] && break; [ "$END" == "0" -a "$[n]" != "0" ] && $DDK setGlobal L2 "$($DDK text PP_1)"; done if [ "$END" == "0" ]; then echo "[Concluido]"; else echo "[Parado]"; $DDK cancel Timer1; break; fi; ;; *.[mM][kK][vV]) echo -e "Convertendo: $FILE ... \t \c"; for n in $TWO_STEPS; do if [ "$[n]" == "0" ]; then VP_PARAM=""; OU_PARAM="${FOT}.avi"; else echo -e "Pass $[n]...\t\c"; VP_PARAM=":vpass=$[n]"; if [ "$[n]" == "1" ]; then OU_PARAM="/dev/null"; else OU_PARAM="${FOT}.avi"; fi; fi $EXMP "$OU_PARAM" "$FILE" -sid 0 -subfont-autoscale 2 2>/dev/null 2>&1 &>$DL; END="$?"; [ "$END" != "0" ] && break; [ "$END" == "0" -a "$[n]" != "0" ] && $DDK setGlobal L2 "$($DDK text PP_1)"; done if [ "$END" == "0" ]; then echo "[Concluido]"; else echo "[Parado]"; $DDK cancel Timer1; break; fi; ;; *) case "$FNAME" in *.[iI][sS][oO]) FILE="$ENDR/$FNAME"; ;; *) mkdir -p $HOME/WORKDVD/ 2>/dev/null; FILE="$ENDR"; FOT="$HOME/WORKDVD/${FNAME}_CNV@pid"; ;; esac; TLE="$(lsdvd "$FILE" 2>/dev/null | awk '/Longest track:/{ print $3 }')"; if [ "@wide.checked" == "0" -a "@fill.checked" == "0" ]; then DVDNCROP="$(mplayer -ss 100 -endpos 1 -vo null -ao null -vf cropdetect dvd://"$TLE" -dvd-device "$FILE" 2>/dev/null 2>&1 | tr -d '().' | awk '/Crop area/{ print $(NF-1) " " $NF }' | sort | uniq)"; fi if [ "@chaponly.checked" == "1" ]; then mkdir -p "$HOME/WORKDVD/${FNAME}/" 2>/dev/null; endc=""; oldc=""; ON="1"; for c in `chaplin -d "$FILE" -t "$TLE" -c 2>/dev/null | awk '/chapter.*begin:/{ print $4 }'`; do if [ -n "$oldc" ]; then echo -e "Convertendo: $FILE [$TITLE] Chapter: $ON ... \t \c"; for n in $TWO_STEPS; do if [ "$[n]" == "0" ]; then VP_PARAM=""; OU_PARAM="$HOME/WORKDVD/${FNAME}/${FNAME}_CNV@pid$(echo $[10000+ON] | cut -c2-).avi"; else echo -e "Pass $[n]...\t\c"; VP_PARAM=":vpass=$[n]"; if [ "$[n]" == "1" ]; then OU_PARAM="/dev/null"; else OU_PARAM="$HOME/WORKDVD/${FNAME}/${FNAME}_CNV@pid$(echo $[10000+ON] | cut -c2-).avi"; fi; fi $EXMP "$OU_PARAM" dvd://"$TLE" -dvd-device "$FILE" $ALANG $DVDNCROP -ss $oldc -endpos `echo "$c-$oldc" | bc -l` 2>/dev/null 2>&1 &>$DL; END="$?"; [ "$END" != "0" ] && break; [ "$END" == "0" -a "$[n]" != "0" ] && $DDK setGlobal L2 "$($DDK text PP_1)"; done ON="$[ON+1]"; if [ "$END" == "0" ]; then echo "[Concluido]"; else echo "[Parado]"; $DDK cancel Timer1; break; fi; fi oldc="$c"; done else echo -e "Convertendo: $FILE [$TITLE] ... \t \c"; for n in $TWO_STEPS; do if [ "$[n]" == "0" ]; then VP_PARAM=""; OU_PARAM="${FOT}.avi"; else echo -e "Pass $[n]...\t\c"; VP_PARAM=":vpass=$[n]"; if [ "$[n]" == "1" ]; then OU_PARAM="/dev/null"; else OU_PARAM="${FOT}.avi"; fi; fi $EXMP "$OU_PARAM" dvd://"$TLE" -dvd-device "$FILE" $ALANG $DVDNCROP 2>/dev/null 2>&1 &>$DL; END="$?"; [ "$END" != "0" ] && break; [ "$END" == "0" -a "$[n]" != "0" ] && $DDK setGlobal L2 "$($DDK text PP_1)"; done if [ "$END" == "0" ]; then echo "[Concluido]"; else echo "[Parado]"; $DDK cancel Timer1; break; fi; fi ;; esac else case "$FILE" in *.[wW][mM][vV] | *.[rR][mM][vV] | *.[rR][mM][vV][bB] | *.[rR][pP][mM] | *.[fF][lL][vV] | *.[oO][gG][mM]) echo -e "Convertendo: $FILE ... \t \c"; for n in $TWO_STEPS; do if [ "$[n]" == "0" ]; then VP_PARAM=""; OU_PARAM="${FOT}.mpg"; else echo -e "Pass $[n]...\t\c"; VP_PARAM=":vpass=$[n]"; if [ "$[n]" == "1" ]; then OU_PARAM="/dev/null"; else OU_PARAM="${FOT}.mpg"; fi; fi $EXMP "$OU_PARAM" "$FILE" $SLANG 2>/dev/null 2>&1 &>$DL; END="$?"; [ "$END" != "0" ] && break; [ "$END" == "0" -a "$[n]" != "0" ] && $DDK setGlobal L2 "$($DDK text PP_1)"; done result 1 $END; if [ "$?" == "0" ]; then if [ "@titles.checked" == "1" -a -n "$SPUMUX" -a ! -n "$MP3F" ]; then e
Gerenciamento com firewalld no CentOS 7
Plugin do Nagios para checar disco via SNMP
Redundância de dois links de internet
Manutenção básica em partições Linux
Instala JRE no Firefox com Fedora
Nenhum comentário foi encontrado.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (6)