Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#51 Le 13/06/2009, à 13:16

al_boon

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

oui, les trois sont installés et oui sous hardy cela fonctionnais

juste comme ca je vais testé mais le script s utilise via nautilus script ou seul ?

Dernière modification par al_boon (Le 13/06/2009, à 13:18)


viva ubuntu ^^ et deux personnes converties !!

ps: il est pas beau mon fils ? (cf mon avatar)

Hors ligne

#52 Le 13/06/2009, à 13:27

al_boon

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

ok impecable en nautilus script avec le dernier (qui au passage est encore mieux)

merci pour ce boulot wink


viva ubuntu ^^ et deux personnes converties !!

ps: il est pas beau mon fils ? (cf mon avatar)

Hors ligne

#53 Le 13/06/2009, à 13:43

al_boon

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

thurston a écrit :

Salut al_boon
De plus, j'achète souvent mes DVDs par 3-4. Je les rippe tous en quelques dizaines de minutes, et les compresse après coup en utilisant le script (qui peut gérer plusieurs films) et laisse alors tourner ma bécane pendant 24-36 heures d'affilé. Donc l'opération de rip me générait plus qu'autre chose.

j'en reviens à ma première proposition,  il est possible d effectruer une premiere étape de rip où a la fin du rip on demande si on veux ripper encore ou non puis passer a l'encodeage avec selection auto de ce qu il viens de ripper ?

je m y interresse aussi car quand je passe chez des amis je leur empreinte tous leur dvd de dessins animés pour les encoder pour les enfants.

je ne peux m y mettre malheureusement je ne susi pas encore assez compétant, mes scripts sont assez limités (deux ou trois lignes pour l instant).


viva ubuntu ^^ et deux personnes converties !!

ps: il est pas beau mon fils ? (cf mon avatar)

Hors ligne

#54 Le 13/06/2009, à 18:42

thurston

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

salut al_boon,

oui, mais encore une fois, le rip est pour moi toujours un peu incertain, et si je l'integre au script, le srcipt deviendra un peu foireux...je vai regarder.
Dans la pratique, je rippe tous les dvds, sans forcément rester devant mon pc, puis seulement au moment de l'encodage je reste quelques minutes histoire devant, pour rentrer tous les settings, et après je laisse le pc tourner.

L'opération du rip suivi de l'encodage serait donc utile dans le cas d'un DVD à encoder uniquement...Cela peut se gérer par une question au début, pourquoi pas.
Il faut savoir que j'utilise ce script pour tout mes encodages y compris film DV montés, ou recompression de vidéos. Donc la problématique DVD n'est pas le centre du script qui fonctionne sur beaucoup de type de vidéos.

Je suis intéressé par le retour des utilisateurs, content que ca aide.
A+
Thurston

Hors ligne

#55 Le 14/06/2009, à 10:23

al_boon

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

c est bizzard, chez moi j ai l impression qu acidrib fou la mer** sur mon pc, des que je l utilise je doti reboot sinon je n ai plus de son sur mon pc o_O

il a meme fait planté l encodage multiple de video :

d abore seulement deux vidéo sont passées par les options et enfin le script s est arreté a la fin du premier film...

je vais retester tout a l heure et donnerai mon compte rendu ce soir


viva ubuntu ^^ et deux personnes converties !!

ps: il est pas beau mon fils ? (cf mon avatar)

Hors ligne

#56 Le 14/06/2009, à 10:37

al_boon

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

bon ben chez moi ça plante, ça ne passe pas au deuxième film pour le config, un par un ils passent mais pas tous d un coup, tu sélectionnes bien tous les films que tu veux encoder puis tu lance le script via nautilus script ?

ps : il encode bien en deux passes ?


viva ubuntu ^^ et deux personnes converties !!

ps: il est pas beau mon fils ? (cf mon avatar)

Hors ligne

#57 Le 14/06/2009, à 11:51

thurston

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

Salut Al boon,

essaie ca:
prends le script version 01.6 et ne mets pas d'espace aux noms de tes fichiers mpeg à encoder.
Je n'ai pas intensivement testé la version 01.7, c'est pour cela que j'avais laissé la 01.6 dans les posts.
A+
Thurston

Dernière modification par thurston (Le 14/06/2009, à 11:52)

Hors ligne

#58 Le 14/06/2009, à 15:52

al_boon

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

ok je test de suite


viva ubuntu ^^ et deux personnes converties !!

ps: il est pas beau mon fils ? (cf mon avatar)

Hors ligne

#59 Le 14/06/2009, à 15:58

al_boon

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

avec le 1.6 il lance l encodage après la config du deuxième fichier, donc les autres ne sont pas lancés


viva ubuntu ^^ et deux personnes converties !!

ps: il est pas beau mon fils ? (cf mon avatar)

Hors ligne

#60 Le 14/06/2009, à 19:30

thurston

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

ok, je regarde ca.
peut etre du à 9.04.
je fais des tests et posterai une nouvelle version d'ici 1-2 jours.

Je viens de tester sous hardy la 1.7 qui fonctionne correctement avec 2 fichiers et même avec un espace dans le nom.
ma commande type

./mpeg2xvid film1.mpg "film2 avec des espaces.mpg"

J'ai testé le xvid mais je ne pense pas que cela ait un rapport avec les bugs sous 9.04
A+
Thurston

Dernière modification par thurston (Le 14/06/2009, à 20:13)

Hors ligne

#61 Le 14/06/2009, à 20:27

al_boon

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

en le lançant via terminal cela a l air de fonctionner correctement avec la 1.7, j ai bien la config pour les 4 films que j ai inscrit dans la commande

apparement ca ne fonctionne pas bien via nautilus script.

j ai lancé je posterai demain si cela a fonctonné correctement
bonne soirée.


viva ubuntu ^^ et deux personnes converties !!

ps: il est pas beau mon fils ? (cf mon avatar)

Hors ligne

#62 Le 14/06/2009, à 20:32

thurston

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

ok ok,jamais essayé en nautilus script, je vais m'y pencher pour voir.
effectvement je fais tout en terminal.
A+
T

Hors ligne

#63 Le 16/06/2009, à 19:00

al_boon

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

peut etre peut il etre ampélioré avec un truc comme ca :

captureal8.png
http://forum.ubuntu-fr.org/viewtopic.php?id=118096


viva ubuntu ^^ et deux personnes converties !!

ps: il est pas beau mon fils ? (cf mon avatar)

Hors ligne

#64 Le 16/06/2009, à 19:47

thurston

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

oui effectivement, j'y avais bien pensé. Le problème
1. je ne sais pas comment faire
2. il faut traiter les 2 passes (pas très intéressant de savoir que il reste 1 heure sur la première passe si durée de la 2ème inconnue).

Je regarderai à l'occas.
Je me rends compte que je suis un peu fainéant sur ce script car mon utilisation (j'ai un pc dédié à l'encodage au garage, qui encode en série et s'arrete tout seul) rend tout ça superflu.
Néanmoins, je prends les idées.
A+
Thurston

Hors ligne

#65 Le 09/07/2009, à 23:19

thurston

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

Bonjour,

Nouvelle version avec un display pendant encodage plus sympa. (merci alain.g).
J'ai un peu regardé du coté multithread pour voir si gain de temps, pas concluant, donc je laisse ici la version standard.
A noter un help -h intéressant car indiquant multiples facons de ripper un DVD. Pour le moment aucun n'a résisté car toujours une méthode qui marche au moins sur celles proposées).
Ci joint donc
A+
Thurston

#!/bin/bash
#########################################
# Script de jcvittet & Thurston / Ubuntu
# mpegtoavi
#########################################
# Nautilus script
# Encodage de mpeg2 en avi (AC3/mp3,xvid)
# Mplayer, mencoder, zenity
#########################################
# Script Version: 01.8
# Revision date:  2009-07-09
#
# Log
# *********************************************
# 01.8: display during encoding changed
# 01.7: Correct space in filename to be encoded

# Variables initialisation
#******************************************************************************************
mode=standard

# Control of argument presence
#******************************************************************************************
if [ $# -eq 0 ]
then
   echo "Usage: $0 [-f] [-a] <film1.mpg> <film2.mpg>"  
   echo "usage: $0 [-h] => Help Notes"
   exit 1
fi

# Handle options
#******************************************************************************************
while getopts "hfa" opt
do
   case $opt in
      h) # Help
         clear
         echo "usage: $0 <film1.mpg> <film2.mpg>      => sudo  if shutdown required"
         echo "usage: $0 [-h]                         => help"    
         echo "usage: $0 [-f] <film1.mpg> <film2.mpg> => forced mode"
         echo "         referring to Mplayer bug on some video (-ss bug)"
         echo "usage: $0 [-a] <film1.mpg> <film2.mpg> => alternate mode"
         echo "         useful for *.ogg for movie length being extracted in alt. way"
         echo ""
         echo "Sources: any video file, DV, DVD being ripped:"
         echo "        *)Using Acidrip"
         echo "         -copy mode for Audio & Video"
         echo "         -Output= .mpg"
         echo "        *)Using DVD::Rip"
         echo "         -DVD Extraction"
         echo "         -Merge operation: cat 1.vob 2.vob > DVD.mpg"
         echo "        *)Using Command Line in a terminal"
         echo "         -DVD Info: lsdvd /dev/dvd"
         echo "         -Check correct file number x: mplayer dvd://x"
         echo "         -DVD Rip: mplayer dvd://x -dumpstream -dumpfile DVD.mpg"
         echo "        *)Using vobcopy"
         echo "         -vobcopy -m"
         echo "         -Note that sometimes, playing with -F (Fast) mode can help"
         echo "         -vobcopy -m -F x, with x in range [1..64]"
         echo ""
         echo "Notes:"
         echo "        *mplayer, mencoder,libdvdcss proposed for auto-installation"
         echo "        *a log file is created at the end of process"
         echo ""
         exit 1
         ;;

      f) # Force mode solving problem of mplayer -ss incompatible with some video files
         mode=forced
         ;;

      a) # alternate mode solving problem of mplayer -ss incompatible with some video files
         mode=alternate
         ;;
    esac

    # Remove option

    shift $((OPTIND - 1))
    OPTIND=1
done


#******************************************************************************************
# Control of minimum software requirements correctly installed
test -x /usr/bin/mplayer || sudo apt-get install mplayer -y
test -x /usr/bin/mencoder || sudo apt-get install mencoder -y

# Control of additionnal software correctly installed
#******************************************************************************************

if [ `test -x /usr/share/doc/libdvdcss2` ];
then
   echo "Do you want to proceed with libdvdcss2 installation? (y/n)"
   read answer
   if [ $answer = y ];
   then
      echo "##Dépôt Medibuntu" | sudo tee -a /etc/apt/sources.list
      echo "deb http://fr.packages.medibuntu.org/ hardy free non-free" | sudo tee -a /etc/apt/sources.list
      wget -q http://fr.packages.medibuntu.org/medibuntu-key.gpg
      sudo apt-key add medibuntu-key.gpg
      sudo apt-get update
      sudo apt-get install libdvdcss2
      sudo rm -rf medibuntu-key.gpg
   fi
fi

#******************************************************************************************
function movie_info()
{
# $1: file to be analysed
# $2: atrack or all
# Length track search for optimize video-info analyse
# case of several id track is taken in account with option all or ID track
video_size=`du -h "$1" | awk -F " " '{print $1}'`

if [ $2 = "all" ];
then
   video_length=`mplayer -vo null -ao null -frames 0 -identify "$1" 2>/dev/null | grep "ID_LENGTH=" | awk -F "=" '{print $NF}' | awk -F "." '{print $1}'`
   movie_info=`mplayer -vo null -ao null -frames 0 -identify "$1" 2>/dev/null | grep "ID_"`
   audio_id=`echo "$movie_info" | grep "ID_AUDIO_ID=" 2>/dev/null |awk -F "=" '{print $NF}' | sort`
   audio_id=`echo $audio_id` # supress \n for nice zenity look
   audio_id_nb=`echo $audio_id | wc -w `
   if [ ! $audio_id_nb -eq 1 ];
   then
      audio_size=""
      audio_commnent="Result depends on audio id track: ?"
   else
      audio_bitrate=`echo "$movie_info" | grep "ID_AUDIO_BITRATE=" | awk -F "=" '{print $NF}' | sort -r | awk 'NR==1{print $0}'`
      audio_size=$(( video_length * audio_bitrate / 8 / 1024 / 1024 ))
      audio_commnent=""
   fi

else
   video_length=`mplayer -aid $2 -vo null -ao null -frames 0 -identify "$1" 2>/dev/null | grep "ID_LENGTH=" | awk -F "=" '{print $NF}' | awk -F "." '{print $1}'`
   movie_info=`mplayer -aid $2 -vo null -ao null -frames 0 -identify "$1" 2>/dev/null | grep "ID_"`
   audio_bitrate=`echo "$movie_info" | grep "ID_AUDIO_BITRATE=" | awk -F "=" '{print $NF}' | sort -r | awk 'NR==1{print $0}'`
   audio_size=$(( video_length * audio_bitrate / 8 / 1024 / 1024 ))
   audio_commnent=""
   audio_id=`echo "$movie_info" | grep "ID_AUDIO_ID=" 2>/dev/null |awk -F "=" '{print $NF}' | sort`
   audio_id=`echo $audio_id` # supress \n for nice zenity look
   audio_id_nb=`echo $audio_id | wc -w `
fi

if [ $mode = "alternate" ];
then
   video_length=`ffmpeg -i "$1" 2>&1| grep "Duration: " | awk -F ": " '{print $2}' | awk -F "," '{print $1}' | awk -F "." '{print $1}'`
   IFS=":"
    hour=`echo $video_length | awk '{print $1}'`
    min=`echo $video_length | awk '{print $2}'`
    sec=`echo $video_length | awk '{print $3}'`
   unset IFS

   if [ "$video_length" = "N/A" ];
   then
      video_length=0
   else
      video_length=$((10#$sec + 10#$min*10#60 + 10#$hour*10#3600))
   fi
      audio_size=$(( video_length * audio_bitrate / 8 / 1024 / 1024 ))
fi
#mplayer -vo null -ao null -frames 0 -identify "$1" 2>/dev/null |sed -ne '/^ID_/ {s/[]()|&;<>`'"'"'\\!$" []/\\&/g;p}'
}

#******************************************************************************************
function encoding_type()
# => $encode
# $1: file to be analysed
# $2: encoding setting file
{
# Choice Box (avi xvid-mp3 or avi xvid-ac3)
encode=`zenity  --title="MPEG to AVI" \
                --text="MPEG to AVI 2 passes (Mencoder)" \
                --list \
                --radiolist \
                --height="250" \
                --width="400" \
                --column="Selection" \
                --column="Avi" \
                --column="Encodage" \
                FALSE "xvid-mp3" "Encodage mencoder avi xvid-mp3" \
                FALSE "x264-mp3" "Encodage mencoder avi x264-mp3" \
                TRUE "xvid-ac3" "Encodage mencoder avi xvid-ac3" \
                | sed 's/ max//g'`
echo $encode > "$2"

# case of cancel action
if [ "$encode" = "" ];
then
   exit
fi

}

#******************************************************************************************
function videoinfo()
# $1: file to be analysed
# $2: encoding setting file
# $3= $encode (xvid-ac3 or xvid-mp3...)
# => $atrack 
# => $ampli
# => $vbitrate
# => $crop
{
# Length track search for optimize video-info analyse (some mpg doesn't stand it
if [ $mode = "forced" ];
then
   video_analyse_sector=0
else
   video_analyse_sector=$(( video_length / 5 )) # 20% of the total length of the movie
fi

# Audio track search (auto-scan of possible id audio track, with display of initial size
atrack=`zenity --entry --title="INPUTS" \
                       --text="Enter audio track ID (ex: 128): auto-detected => $audio_id "\
                       --entry-text="$audio_id" 2>&1`

# case of cancel action
if [ "$atrack" = "" ];
then
   exit
fi

if [ ! $audio_id_nb -eq 1 ];
then
   movie_info    "$1" $atrack
fi

echo "$3" | grep "mp3"
if [ $? -eq 0 ];
then
   # amplification factor requested for MP3 purposes
   ampli=`zenity --entry --title="INPUTS" \
                         --text="Enter Amplification facteur (use only for MP3) ex: 5  (0 - 10)" \
                         --entry-text="5" 2>&1`
   audio_size=$(( video_length * 128 / 8 / 1024 )) # approx audio file size assuming vbr mp3 file will result in a  cbr 128 kbp file
else
   ampli=5 #obliges to give a value to respect encode_file format even if unused
fi

mplayer "$1" -ss $video_analyse_sector -aid $atrack
zenity --question --title="QUESTION" \
                  --text=" Audio track/language correct ? \n Selected audio id $atrack size = $audio_size Mo"

if [ $? = 0 ];
then
   # Video & crop search
   zenity --info --title="INFO" \
                 --text=" Next: Crop processing \n Wait and Play up to clear scene... \n ... then Echap"
   crop=`mplayer "$1" -aid $atrack -ss $video_analyse_sector -vf cropdetect | tail -n 4 | head -n 1 | cat | cut -d= -f2 | cut -d")" -f1`
   zenity --info --title="INFO" \
                 --text="Next:Crop cheking...then Echap"
   mplayer "$1" -aid $atrack -ss $video_analyse_sector -vf crop=$crop
   zenity --question --title="QUESTION" \
                     --text="Crop: $crop seems correct ?"

   if [ $? = 0 ];

   then
      #determination of correct bitrate for movie final size
      final_movie_size_ok=0
      while [ $final_movie_size_ok -eq 0 ]
      do
         vbitrate=`zenity --entry --title="INPUTS" \
                          --text="Enter video BITRATE ex: 1500 kbp/s (defaut mencoder = 800 kbp/s)
                                  ****************************************
                                  (original file size = $video_size)
                                  1000 kbp/s => encoded movie size ~ $(( video_length * 1000*1000 /1024/1024/8 + audio_size )) Mo
                                  1500 kbp/s => encoded movie size ~ $(( video_length * 1500*1000 /1024/1024/8 + audio_size )) Mo
                                  2000 kbp/s => encoded movie size ~ $(( video_length * 2000*1000 /1024/1024/8 + audio_size )) Mo" \
                          --entry-text="1500" 2>&1`
         if [ $? -eq 1 ];
         then
            exit
         fi
         final_movie_size=$(( video_length * vbitrate*1000 /1024/1024/8 + audio_size ))
         zenity --question --title="QUESTION" \
                --text=" Final movie size expected = $final_movie_size Mo.\n Is It OK? \n - Valid for encoding process or next movie info collection. \n - abort to retry a different bitrate ?" 
         if [ $? = 0 ];
         then
            final_movie_size_ok=1
         fi
      done
 
    else
      zenity --question --title="INFO" \
                        --text="Crop Not Ok, do you want to retry?"
      if [ $? -eq 1 ];
      then
         exit
      else
          videoinfo_ok=0
          return
      fi
   fi
else 
   zenity --question --title="INFO" \
                     --text="Audio track Not Ok, do you want to retry?"
      if [ $? -eq 1 ];
      then
         exit
       else
          videoinfo_ok=0
          return
       fi
fi

echo $atrack           >> "$2"
echo $ampli            >> "$2"
echo $vbitrate         >> "$2"
echo $crop             >> "$2"
echo $final_movie_size >> "$2"
videoinfo_ok=1
}

#******************************************************************************************
function xvidencac3()
# Encoding mencoder xvid-AC3 2 passes
# $1= file to be analysed
# $2= $atrack 
# $3= $ampli (not used in AC3)
# $4= $vbitrate
# $5= $crop
# $6= encode type
# $7= $final_movie_size
# Creation of a text file with parameters used for encoding work
{
# passe 1
mencoder "$1" -aid $2 \
 -oac copy \
 -ovc xvid -xvidencopts chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:pass=1:bitrate=$4:autoaspect:turbo -vf crop=$5 \
 -passlogfile "${1/%.*/.log}" -o /dev/null \
2>&1 | awk -vRS="\r" '$1 ~ /Pos/ {gsub(/Pos:/,"  ");gsub(/%\)/," ");gsub(/ \(/," ");print $3"\n#Position :\\t"$1"\\nFrame :\\t"$2"\\nDone :\\t"$3"%\\nSpeed :\\t"$4"\\nRemain :\\t"$6"\\nSize :\\t"$7; fflush();}'|\
 zenity --progress --auto-close --title="$1 - 1st pass" --width="250"


# passe 2
mencoder "$1" -aid $2 \
                -oac copy -ovc xvid -xvidencopts chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:pass=2:bitrate=$4:autoaspect -vf crop=$5 \
                -passlogfile "${1/%.*/.log}" -o "${1/%.*/_xvid.avi}" \
2>&1 | awk -vRS="\r" '$1 ~ /Pos/ {gsub(/Pos:/,"  ");gsub(/%\)/," ");gsub(/ \(/," ");print $3"\n#Position :\\t"$1"\\nFrame :\\t"$2"\\nDone :\\t"$3"%\\nSpeed :\\t"$4"\\nRemain :\\t"$6"\\nSize :\\t"$7; fflush();}'|\
 zenity --progress --auto-close --title="$1 - 2nd pass" --width="250"
}

#******************************************************************************************
function xvidencmp3()
# Encoding mencoder xvid-mp3 2 passes
# $1= file to be analysed
# $2= $atrack 
# $3= $ampli
# $4= $vbitrate
# $5= $crop
# $6= encode type
# $7= $final_movie_size
# Creation of a text file with parameters used for encoding work
# Encoding mencoder xvid-mp3 2 passes
{
# passe 1
mencoder "$1" -aid $2 -oac mp3lame -lameopts vbr=3:vol=$3 \
 -ovc xvid -xvidencopts chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:pass=1:bitrate=$4:autoaspect:turbo -vf crop=$5 \
 -passlogfile "${1/%.*/.log}" -o /dev/null \
2>&1 | awk -vRS="\r" '$1 ~ /Pos/ {gsub(/Pos:/,"  ");gsub(/%\)/," ");gsub(/ \(/," ");print $3"\n#Position :\\t"$1"\\nFrame :\\t"$2"\\nDone :\\t"$3"%\\nSpeed :\\t"$4"\\nRemain :\\t"$6"\\nSize :\\t"$7; fflush();}'|\
 zenity --progress --auto-close --title="$1 - 1st pass" --width="250"

# passe 2
mencoder "$1" -aid $2 -oac mp3lame -lameopts vbr=3:vol=$3 \
 -ovc xvid -xvidencopts chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:pass=2:bitrate=$4:autoaspect -vf crop=$5 \
 -passlogfile "${1/%.*/.log}" -o "${1/%.*/_xvid.avi}" \
2>&1 | awk -vRS="\r" '$1 ~ /Pos/ {gsub(/Pos:/,"  ");gsub(/%\)/," ");gsub(/ \(/," ");print $3"\n#Position :\\t"$1"\\nFrame :\\t"$2"\\nDone :\\t"$3"%\\nSpeed :\\t"$4"\\nRemain :\\t"$6"\\nSize :\\t"$7; fflush();}'|\
 zenity --progress --auto-close --title="$1 - 2nd pass" --width="250"
}

#******************************************************************************************
function x264encmp3()
# Encoding mencoder xvid-AC3 2 passes
# $1= file to be analysed
# $2= $atrack 
# $3= $ampli
# $4= $vbitrate
# $5= $crop
# $6= encode type
# $7= $final_movie_size
{
mencoder "$1" -aid $2 -vf crop=$5 -ovc x264 -x264encopts pass=1:subq=3:bframes=1:b_pyramid:weight_b:bitrate=$4 -oac copy -o /dev/null  && mencoder \
 "$1" -aid $2 -vf crop=$5 -ovc x264 -x264encopts pass=2:subq=3:bframes=1:b_pyramid:weight_b:bitrate=$4 \
 -oac mp3lame -lameopts vbr=3:vol=$3 -o "${1/%.*/-x264.avi}" \
2>&1 | awk -vRS="\r" '$1 ~ /Pos/ {gsub(/Pos:/,"  ");gsub(/%\)/," ");gsub(/ \(/," ");print $3"\n#Position :\\t"$1"\\nFrame :\\t"$2"\\nDone :\\t"$3"%\\nSpeed :\\t"$4"\\nRemain :\\t"$6"\\nSize :\\t"$7; fflush();}'|\
 zenity --progress --auto-close --title="$1" --width="250"
}

#******************************************************************************************
function postshutdown()
{
# Shutdown at the end of process Choice Box
end_action=`zenity  --title="End Of Process Action" \
                    --text="Select If PC enter shutdown at the end of encoding" \
                    --list \
                    --radiolist \
                    --height="250" \
                    --width="500" \
                    --column="Selection" \
                    --column="Action" \
                    --column="descriptif" \
                    FALSE "Shutdown" "Shutdown at End Of Encoding Process (sudo only)" \
                    TRUE "No-Shutdown" "PC Stays On at End Of Encoding Process" \
                    | sed 's/ max//g'`

if [ "$end_action" = "Shutdown" ];
then
   zenity --question --title="INFO" \
                     --text="You must be sudo for requesting a end process shutdown"
   if [ $? = 1 ];
   then
      exit
   fi
else
   if [ "$end_action" = "" ];
   then
      exit
   fi

fi	
}

#******************************************************************************************
function duration()
{
# $1= Stop date
# $2= Start date
# $3 = log file
# date +%s gives duration between 1-01-1970 in seconds. Then easy for duration calculation
difference=$(( $1-$2 ))
hour=$(( difference/3600 ))
min=$(( (( difference/60 ))-$(( hour*60 )) ))                     
sec=$(( (( difference ))-$(( hour*3600 + min*60 )) ))          
echo "Process Duration = $hour hour $min minutes $sec seconds" >> "$3"
}

#******************************************************************************************
function log_info()
# $1= video file log
# Calculate & fill the log file with time needed for encoding
{
log_final="${1/%.*/.log}"

echo -e "Original File Name: `basename "$1"`"                                    >> $log_final
echo -e "Initial Video Size: `du -h "$1" | awk -F " " '{print $1}'` \n"        >> $log_final
echo -e "Encoding Settings
 -encoding type: $encode
 -audio track:   $atrack
 -amplification: $ampli (not used if AC3-type)
 -video Bitrate: $vbitrate
 -crop applied:  $crop
 -script mode:   $mode
 -target size:   $final_movie_size Mo\n"                                      >> $log_final

encoding_start=`sed -n '7p' $log_encode_file`
encoding_stop=`sed -n '8p' $log_encode_file`
duration $encoding_stop $encoding_start "$log_final"

echo -e "\nProcessor type & memory size"                                      >> $log_final
cat /proc/cpuinfo | grep "model name"                                         >> $log_final
cat /proc/meminfo | grep MemTotal                                             >> $log_final
}

#******************************************************************************************

#******************************************************************************************
#************************* Main Program ***************************************************
#******************************************************************************************

#******************************************************************************************
# 0th step: Validity test: name and source available
process_valid="true"

for source in "$@"
do
   if [ ! -e "$source" ];
   then
      zenity --info --title="INFO" \
                    --text=" File "$source" not available"
      process_valid="false"
   fi
done

if [ "$process_valid" = "false" ];
then
      exit
fi


#******************************************************************************************
# 1th step: what to be done end of global processing: shutdown or not
postshutdown

#******************************************************************************************
# 2nd step: collect all info on video to be later encoded
for source in "$@"
do

   # creation of log file
   log_encode_file="${source/%.*/_encode_settings.txt}"
   touch "$log_encode_file"

   # identification of video type
   typevid=`file -bi "$source"`

   # if argument = video/mp2p
   if [ ! `echo $typevid |grep video >> /dev/null` ];
   then
      zenity --info --title="INFO" \
                    --text="Settings Process on - `basename "$source"` -  will start."
      encoding_type "$source" "$log_encode_file"
      movie_info    "$source" all

      videoinfo_ok=0
      while [ $videoinfo_ok -eq 0 ]
      do
         videoinfo     "$source" "$log_encode_file" $encode
      done
   else
      zenity --info --title="INFO" \
                    --text="Not a valid video file. Consult help $0 -h \n Encoding canceled" && exit  
   fi
done

#******************************************************************************************
# 3rd step: process encoding using individual log file
for source in "$@"
do   
   # point at log file previously created
   log_encode_file="${source/%.*/_encode_settings.txt}" 

   # set initial encoding time
   echo $(date +%s)     >> "$log_encode_file"  #7th line

   encode=`sed -n '1p' "$log_encode_file"`
   atrack=`sed -n '2p' "$log_encode_file"`
   ampli=`sed -n '3p' "$log_encode_file"`
   vbitrate=`sed -n '4p' "$log_encode_file"`
   crop=`sed -n '5p' "$log_encode_file"`
   final_movie_size=`sed -n '6p' "$log_encode_file"`
   

   if [ "$encode" = "xvid-mp3" ];
   then
      xvidencmp3  "$source" $atrack $ampli $vbitrate $crop $encode $final_movie_size && rm -f "${source/%.*/.log}"
   elif [ "$encode" = "xvid-ac3" ];
   then
      xvidencac3 "$source" $atrack $ampli $vbitrate $crop $encode $final_movie_size && rm -f "${source/%.*/.log}"
   elif [ "$encode" = "x264-mp3" ];
   then
      x264encmp3 "$source" $atrack $ampli $vbitrate $crop $encode $final_movie_size && rm -f "${source/%.*/.log}"
   else
      exit
   fi
   # set initial encoding time
   echo $(date +%s)     >> "$log_encode_file"   #8th line

   # collect all info in dedicated log file
   log_info "$source"
   
   # clean files
   rm -f "$log_encode_file"
done

#******************************************************************************************
# 4th step: set final encoding action
# need to modify /etc/sudoers to get rights to shutdown PC though a script   

if [ "$end_action" = "Shutdown" ];
then
   sudo /sbin/shutdown -h now
fi
exit

Hors ligne

#66 Le 10/07/2009, à 06:21

al_boon

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

nickel chrome wink


viva ubuntu ^^ et deux personnes converties !!

ps: il est pas beau mon fils ? (cf mon avatar)

Hors ligne

#67 Le 11/07/2009, à 00:02

thurston

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

Oui et en plus (très bizarre) maitenant ca va 2x plus vite...simplement en ayant changé des parametres sur la fenetre...Enfin chez moi c'est le cas.
A+
Thurston

Hors ligne

#68 Le 07/09/2009, à 23:11

thurston

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

A al_boon

au fait j'ai posté ici un petit script pour le rip de DVDs. Dans le même esprit que le soft d'encodage, simple et efficace (en fait supposé etre). Le résultat est un gros .mpg à passer à la moulinette du soft d'encodage.
Si tu testes fais moi savoir le retour si tu as le temps
A+
Thurston

http://forum.ubuntu-fr.org/viewtopic.ph … 9#p2915059

Hors ligne

#69 Le 08/09/2009, à 06:37

al_boon

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

je testerai ce soir wink


viva ubuntu ^^ et deux personnes converties !!

ps: il est pas beau mon fils ? (cf mon avatar)

Hors ligne

#70 Le 08/09/2009, à 19:35

al_boon

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

répondu ^^ sur l autre poste


viva ubuntu ^^ et deux personnes converties !!

ps: il est pas beau mon fils ? (cf mon avatar)

Hors ligne

#71 Le 21/12/2009, à 23:02

thurston

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

Bon alors, après avoir galéré comme un malade avec les nouvelles protection type a-r-c-c-o-s. je poste ici une méthode possible pour extraire le flux video et le passer à la moulinette du script.
1. sous vlc > media > convertir
2. choisir la bonne piste video et audio (on verra que l'audio, on le remet pendant la lecture)
3. clic sur convertir / sauvegarder
4. créer un profil comme suit:
   encapsulation: MPEG-PS
   Codecs video:  video>conserver...>MPEG-2>8000kb/s(le max possible)>25i/s
   Codec audio: conserver la piste originale
5. choisir un fichier de destination film.mpg
    affiche le flux de sortie
6. lancer la lecture et vite selectionner la piste audio francais (plus sûr)
7. voila, il suffit maintenant d'attendre le temps de lecture car tout se fait en x1.
8. Le fichier obtenu peut alors etre passé à la moulinette du script (en mode -f).


Sinon, utiliser Handbrake, mais attention, le choix du titre à encoder est primordial. Handbrake se plante de temps en temps et le résultat est le désordre dans les chapitres. Ma méthode:
1. jouer le dvd avec vlc
2. repérer le n° de la piste lue (il peut y en avoir 100)
3. utiliser ce n° dans handbrake

A noter que toutes ces protections sur les DVD c'est vraiment débile au possible. Le mec qui veut pirater un DVD, il va le chercher sur internet, il va pas acheter le DVD pour s'auto-pirater tout seul!!! Pour ma part, j'ai un home theater avec mes DVDs encodés (4 gamins en bas age ca motive); j'achète TOUS mes DVDs quelques mois après leur sortie à des prix dérisoires...
Ce serait pas mal qu'on pense à ceux qui veulent et la modernité (home theater), et la légalité (après chacun prend ses responsabilités, je ne prône aucun comportement).
A+
Thurston

Dernière modification par thurston (Le 23/12/2009, à 09:33)

Hors ligne

#72 Le 11/12/2011, à 01:17

thurston

Re : [Résolu]DVD => .avi avec script + acidrip (avec audio & crop-control)

News, bug et autres:
**************************
Bon, plusieurs récents bug du fait d'un changement dans le paquet mplayer je pense.
Bug-1: les sous titres apparaissent sur le résultat encodé, alors qu'on ne le veut pas!!!. Il faut rajouter l'option -nosub dans les commandes (une nouvelle version arrive)
Bug-2: sur certains dvds, l'option crop donne une vidéo toute noire (vide). Bug très peu documenté. Il faut alors passer le script sans croper. (je mettrais bientot dans la nouvelle version un mode safe, sans crop).
Version 01.9 à suivre bientôt...

Hors ligne