Mpeg 2 Converter
Publicado por Carlos Alberto (última atualização em 08/12/2010)
[ Hits: 4.993 ]
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
Converte diretório, subdiretório e arquivos de Maiúscula -> minúscula.
Script para modificar Encoding de UTF-8 para ISO-8859-1
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? (15)
Tenho dois Link's ( IP VÁLIDOS ), estou tentando fazer o failover... (0)
Pendrive não formata de jeito nenhum (4)