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.

#1 Le 26/04/2008, à 14:43

thurston

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

Bonjour,

J'utilise Acidrip pour porter mes DVD sur mon home theater. Il fonctionne parfaitement à un détail près:
la reconnaissance du format initial du DVD.
c'est à dire:
Sur un DVD 16/9 par exemple que j'encode en Xvid, il va me selectionner le format 4/3, ce qui me fait des vidéos étirés ou écrasées à l'arrivée.
Quelqu'un a t il le même problème et la solution?
D'avance merci
THurston

Dernière modification par thurston (Le 02/05/2008, à 22:45)

Hors ligne

#2 Le 28/04/2008, à 23:17

thurston

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

Up?

Hors ligne

#3 Le 29/04/2008, à 06:34

jcvittet

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

A mon avi, il vaut mieux d'abord ripper seulement en mettant format mpg et copy pour l'audio et la video. Le lecteur tourne moins longtemps.
Ensuite j'encode en ligne de commande (je ne suis pas sur mon PC, je ne peux te détailler).
Mais on peut aussi, une fois rippé, reprendre le rip avec acidrip (taper le chemin complet du rip). De mémoire, après avoir chargé le mpg, il faut ensuite demander recherche du crop puis décocher les options scale pour garder l'original.
Si tu n'y arrives pas, je regarderai sur mon nunux comment je fais avec acidrip, ça marche bien au moins en xvid. En lavc il faut se méfier car il faut une option fourcc pour la compatibilité platine de salon.

#4 Le 29/04/2008, à 13:19

thurston

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

OK Merci d'avance jcvittet,
tout fonctionne comme tu l'indiques, et je fais d'abord l'acquisition en mpg. Le problème est que mes .avi (xvid) obtenus n'ont pas le bon format (il sont étirés ou écrasés). Je vais tenter de faire des tests avec un clip en 16/9 (Saute Mouton) des indestructibles, pour obtenir le bon format final, en croppant.
Je suis bien sûr intéressé par tes conseils.
A+
Thurston

Hors ligne

#5 Le 29/04/2008, à 22:42

jcvittet

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

Ayant toujours eu des problèmes avec les formats sur tous les logiciels d'encodage, je me suis fait un nautilus-script (je ne suis pas un pro). Je te le donne brut avec quelques commentaires. Si tu ne piges pas tout, je te dirai.
Le script mpeg2avi2passes (par défaut c'est du xvid par mencoder):

#!/bin/bash
#######################################
# Nautilus script
# Encodage de mpeg en avi
# Mplayer, mencoder, transcode, zenity
#######################################
for arg
do
# identifie le type video de l'argument
typevid=`file -bi "$arg"`
# Si l'argument est video/mp2p
if [ $typevid = video/mp2p ]; then
# identifie les pistes audio
videoinfo()
{
zenity --info --title="J.C.V" --text="Identifier ID_AUDIO \n ex: 128"
mplayer -identify -vc null -ac null -frames 0 "$arg" | grep "ID_AUDIO_ID=" | zenity --text-info & atrack=`zenity --entry --title="J.C.V" --text="Entrer la piste audio \n ex 128" 2>&1`
zenity --info --title="J.C.V" --text="Teste la piste audio"
mplayer "$arg" -ss 300 -aid $atrack
zenity --question --title="J.C.V" --text="Audio correct ?"
	if [ $? = 0 ]; then
# Amplification audio
ampli=`zenity --entry --title="J.C.V" --text="Entrer le facteur d'AMPLIFICATION \n ex: 5  (0 - 10)" 2>&1`
# Recherche de l'aspect video
# aspect=`mplayer -identify -vc null -frames 0 "$arg" | cat | grep ^"ID_VIDEO_ASPECT" | awk '{print}' | cut -d= -f2`
zenity --info --title="J.C.V" --text="Recherche du crop \n lire jusqu'Ã  scene claire \n ... puis Echap"
# Recherche du crop  
# crop=`mplayer "$arg" -vf cropdetect | tail -n 4 | head -n 1 | cat | awk '{print $22}'| cat | cut -d")" -f1 | cut -d= -f2 `
crop=`mplayer "$arg" -ss 200 -vf cropdetect | tail -n 4 | head -n 1 | cat | cut -d= -f2 | cut -d")" -f1`
zenity --info --text="Vérification du crop" 
mplayer "$arg" -aid $atrack -ss 300 -vf crop=$crop 
zenity --question --title="J.C.V" --text="Crop correct ?"
		if [ $? = 0 ]; then
vbitrate=`zenity --entry --title="J.C.V" --text="Entrer le BITRATE VIDEO \n ex: 900 \n (defaut 800)" 2>&1`
# Crée un fichier texte des paramètres entrés
touch "$arg".txt
echo titre = "$arg", vbitrate = $vbitrate, audio = $atrack, ampli = $ampli, crop = $crop, autoaspect >> "$arg".txt
		else zenity --info --title="J.C.V" --text="Crop incorrect \n Recommencer" && exit
		fi
	else zenity --info --title="J.C.V" --text="Audio incorrect \n Recommencer" && exit
	fi
}
lavcenc()
{
# passe 1
mencoder "$arg" -aid $atrack -oac mp3lame -lameopts vbr=3:vol=$ampli -ovc lavc -lavcopts vcodec=mpeg4:vhq:v4mv:vqmin=2:vpass=1:vbitrate=$vbitrate:autoaspect:turbo -vf crop=$crop -ffourcc DX50 -passlogfile "$arg".log -o /dev/null | nice zenity --progress --auto-close --percentage=0 --title="MENCODER lavc" --text="Encodage avi de: \n ... "$arg" ... \n Bitrate video = $vbitrate \n Audio = $atrack \n Volume = x $ampli \n Crop = $crop \n Autoaspect \n Qualité VHQ \n PASSE 1 (turbo) ... en cours"
# passe 2
mencoder "$arg" -aid $atrack -oac mp3lame -lameopts vbr=3:vol=$ampli -ovc lavc -lavcopts vcodec=mpeg4:vhq:v4mv:vqmin=2:vpass=2:vbitrate=$vbitrate:autoaspect -vf crop=$crop -ffourcc DX50 -passlogfile "$arg".log -o film.avi | nice zenity --progress --auto-close --percentage=0 --title="MENCODER lavc" --text="Encodage avi de: \n ... "$arg" ... \n Bitrate video = $vbitrate \n Audio = $atrack \n Volume = x $ampli \n Crop = $crop \n Autoaspect \n Qualité VHQ \n PASSE 2 ... en cours"
}
xvidenc()
{
# passe 1
mencoder "$arg" -aid $atrack -oac mp3lame -lameopts vbr=3:vol=$ampli -ovc xvid -xvidencopts chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:pass=1:bitrate=$vbitrate:autoaspect:turbo -vf crop=$crop -passlogfile "$arg".log -o /dev/null | nice zenity --progress --auto-close --percentage=0 --title="MENCODER xvid" --text="Encodage avi de: \n ... "$arg" ... \n Bitrate video = $vbitrate \n Audio = $atrack \n Volume = x $ampli \n Crop = $crop \n Autoaspect \n Qualité VHQ \n PASSE 1 (turbo) ... en cours"
# passe 2
mencoder "$arg" -aid $atrack -oac mp3lame -lameopts vbr=3:vol=$ampli -ovc xvid -xvidencopts chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:pass=2:bitrate=$vbitrate:autoaspect -vf crop=$crop -passlogfile "$arg".log -o film.avi | nice zenity --progress --auto-close --percentage=0 --title="MENCODER xvid" --text="Encodage avi de: \n ... "$arg" ... \n Bitrate video = $vbitrate \n Audio = $atrack \n Volume = x $ampli \n Crop = $crop \n Autoaspect \n Qualité VHQ \n PASSE 2 ... en cours"
}
transcodeenc()
{
nice transcode -i "$arg" -y xvid4 -Z 576x328,fast -w $vbitrate -V -N 0x55 -b 128 -s 3 -o /dev/null -R 1 | nice zenity --progress --percentage=0 --auto-close --title="TRANSCODE" --text=""$arg" \n Vbitrate = $vbitrate \n Resolution = 576x328 \n Passe 1 ... en cours"
nice transcode -i "$arg" -y xvid4 -Z 576x328,fast -w $vbitrate -V -N 0x55 -b 128 -s 3 -o film.avi -R 2 | nice zenity --progress --percentage=0 --auto-close --title="TRANSCODE" --text=""$arg" \n Vbitrate = $vbitrate \n Resolution = 576x328 \n Passe 2 ... en cours"
rm -f divx4.log
}
encode=`zenity  --title="MPEG to AVI" --text="MPEG to AVI 2 passes (Mencoder/Transcode)" --list --radiolist --height="250" --width="350" --column="Selection" \
	--column="Codec"\
	--column="Encodage"\
	TRUE "lavc" "Encodage mencoder lavc"\
	FALSE "xvid" "Encodage mencoder xvid"\
	FALSE "transcode" "Encodage transcode xvid"\
	| sed 's/ max//g'`
			if [ "$encode" = "lavc" ]; then
videoinfo && lavcenc && rm -f "$arg".log && zenity --info --title="J.C.V" --text="Encodage ... OK"
			elif [ "$encode" = "xvid" ]; then
videoinfo && xvidenc && rm -f "$arg".log && zenity --info --title="J.C.V" --text="Encodage ... OK"
			elif [ "$encode" = "transcode" ]; then
zenity --info --title="J.C.V" --text="Encodage video et toutes pistes audio"
vbitrate=`zenity --entry --title="J.C.V" --text="Entrer le BITRATE VIDEO \n ex: 900 \n (defaut 800)" 2>&1`
transcodeenc && zenity --info --title="J.C.V" --text="Encodage ... OK"
			else exit
			fi
else zenity --info --title="J.C.V" --text="Argument non video/mp2p \n Encodage annulé" && exit
fi
done

Dernière modification par michel2652 (Le 03/05/2008, à 09:26)

#6 Le 29/04/2008, à 23:06

thurston

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

Oups!!!
Ca mérite réflexion!!!!

Pour info, je n'ai jamais rencontré de problèmes de format avec autoGK. Je vais essayer de comparer avec Acidrip, en tentant divers settings pour arriver au format correct que me donnait autogk.
Par exemple: le dessin animé les indestructibles sort en 720 x 304 par autogk, parfait à mon sens. Je vais ainsi essayer de bidouiller un peu dans Acidrip pour arriver à une méthode qui me donne cette résolution de sortie...Qu'en penses tu?

Où fais tu la différence avec les autres softs dans ton script au sujet du format (=> xvid). Je veux dire, ton script fonctionne t il parfaitement quelque soit le format initial du film? 16/9 ou 4/3? Est ce l'option autoaspect qui fonctionne à tous les coups?

Je vais étudier ton script à tête reposée.
Merci en tous les cas pour le partage du script.
Amitiés
Thurston

Hors ligne

#7 Le 30/04/2008, à 00:20

jcvittet

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

Le script est plus simple qu'il n'y parait. Beaucoup de fioriture pour la convivialité (je me parle à moi-même).
Etape identification de la piste audio puis vérification puis amplification
Etape détermination du crop puis vérification
Etape encodage
J'ai testé sur du 4/3, du 16/9 et sur "seigneur des anneaux" en 16/9 encore plus large. Une fois cropé, j'ai texto le format ce qui n'est pas forcément l'idéal sur un PC pour un film extra large. C'est en effet l'option autoaspect qui garde le format.
J'encode avec un bitrate à 900, ça donne en gros, "seigneur des anneaux" sort en 1.2Go, un film standard en 700Mo, un dessin animé en 500Mo
Amuses toi bien

#8 Le 30/04/2008, à 13:18

thurston

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

Super, un film en commun et quel film.
Je te donne les résultats de AutoGK, qui me donnent un aspect nikel sur télé:
Le seigneur des anneaux - la communauté de l'anneau xvid 720 x 304
Qu'as tu comme résolution finale, pour comparaison avec ton script?
On est d'accord que la résolution indiquée ici est celle du film sans bande noire. Je pesne que c'était du 16/9 classique sur mon DVD initial.

Au cas où sur Spiderman, j'obtiens du 720 x 384.
A+
THurston

PS:
Je vais tester ton script sur le dessin animé bonus (quelques minutes) des indestructibles. Je te fais savoir bientot.

Dernière modification par thurston (Le 30/04/2008, à 13:22)

Hors ligne

#9 Le 30/04/2008, à 23:59

jcvittet

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

Salut,
Sur "le retour du roi" encodé sans bande noire, j'ai du 720x416 en divx5,ffmpeg. J'ai dû l'encoder par mencoder lavc 2 passes vbitrate 800 qui me donne 1,3 Go. Caractéristiques ci-dessous:
ID_FILENAME=SDA-RetourDuRoi.avi
ID_DEMUXER=avi
ID_VIDEO_FORMAT=DX50
ID_VIDEO_BITRATE=799624
ID_VIDEO_WIDTH=720
ID_VIDEO_HEIGHT=416
ID_VIDEO_FPS=25.000
ID_VIDEO_ASPECT=2.4619
ID_LENGTH=11565.72
SDL: Using driver: x11
Je ne vois pas de différence de qualité entre mencoder lavc et mencoder xvid.
Mon script étant très perso, arrives-tu à t'en servir? Si non, essaie d'identifier ce qui foire chez toi, j'essaierai de le modifier. Si oui, dans le même genre, j'en ai fait un pour ripper et requantiser (dvd9 en dvd5) mais peu utile car dvd95 et lxdvdrip marchent très bien.
Amuses toi bien

#10 Le 01/05/2008, à 00:11

jcvittet

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

J'oubliais. Avec acidrip sur une video courte de campagne éléctorale en 4/3, en décochant le scale, j'ai des petites bandes noires verticales, ce que je n'ai pas avec mon script. Avec avidemux, je ne suis jamais arrivé à avoir un format correct, toujours ce problème de scale, dommage car avidemux est vraiment super

#11 Le 01/05/2008, à 20:17

thurston

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

Salut jcvittet

TOUT SIMPLEMENT HALLUCINANT!!!!

Alors la phase de test:
1. Copy du DVD en utilisant acidrip, et en specifiant bien
- la sortie .mpg (indispensable, ca plante si on laisse avi)
- copy pour audio et video
- language en Francais
- indiquer le nom du film dans track title et lui specifier un emplacement de type /media/films/%T (le %T permet de récuperer le titre rentré).

2. Test uniquement de l'encodeur xvid (le seul qui m'intéresse)
- CA MARCHE NICKEL pour ce qui est du crop. Avec un bémol quand même. Si l'on croppe trop comment le sait on?? Je pense que le problème est plutot de ne pas cropper assez donc faux problème.


Améliorations possibles (attention, c'est pas des critiques, ou alors elles sont constructives!!!):
1. Il est très subjectif le coefficient pour l'audio, non? Serait il également possible de relire le passage avec le gain audio actif. Tu as bien sûr l'habitude de ton script et cela ne t'est pas très utile...
2. Le choix pour l'encodage audio mp3 ou ac3 serait peut être un + (voir ci dessous)
3. J'aurais mis les unités pour les bitrates dans les exemples.
(ne me réponds pas tout de suite, je teste et mets au fur à mesure dans le post mes commentaires)

Je suis un fan de l'ac3, y a t il moyen de customiser ton script pour demander le type d'encodage audio souhaité? Je pense que oui, il suffit de demander dans les options ac3 au lieu de mp3lame, je vais y regarder aussi, mais tu me parais plus à l'aise et de loin que moi!!!

(pourquoi j'aime l'ac3: parce que je lis mes dvds sur PC avec un filtre Ac3filter sous winchose, qui me permet de moyenner le son parole = explosion). En plus je me garde ainsi la possibilité d'un 5.1 futur.


PS:
le retour du roi, je l'ai en 720 x 304, sans bande noire...par autogk. Attention j'ai l'impression que autogk se mèle du pixel pas carré sur les télé, ou un truc du style. En effet, mes DV qui font bien 720x576 se retrouvent en 720x544 une fois passé par Autogk. Et pourtant j'ai pas de bande noire sur mon camescope. J'obtiens bien du 720x416 sur du 16/9 avec ton script sur les indestructibles.

Ah oui j'oubliais, pourquoi avoir les 3 encodeurs? y a t il des cas ou l'un est meilleur que l'autre?

C'est grace à ce genre d'échanges sur des scripts aussi cool que je ne regrette pas winchose, qui m'a accompagné depuis + de 20 ans!!! Merci encore pour le partage du script. A+
Thurston

Dernière modification par thurston (Le 01/05/2008, à 21:27)

Hors ligne

#12 Le 01/05/2008, à 21:00

PRQT83

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

Bonjour,  [ HS]
Salut jcvittet, ça fait longtemps que je ne t'avais croisé. Comme tu le voit dans ma signature, j'ai pas le net, je fais tout avec mon tel. Ceci étant dit, pourrais tu s'il te plaît me mailer ton script ci dessus, il m'intéresse bien et je ne peux le récupérer avec le téléphone ( c'est loin d'être un pda ou un palm...). Si ce n'est trop te demander, me l'envoyer si tu peut en archive zip, il n'y à que ce format d'archive que mon téléphone lit/accepte. Si c'est possible, je te remercie. smile [/HS]

#13 Le 02/05/2008, à 00:46

jcvittet

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

PRQT3
Je n'ai pas trouvé l'adresse où t'envoyer mon chef d'oeuvre.

#14 Le 02/05/2008, à 01:31

jcvittet

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

Salut Thurston
Pour le test acidrip, que tu choisisses la langue ou pas, il me semble que toutes les pistes sont rippées.
Pour le crop, c'est mplayer qui le calcule et je prends ses valeurs, le film est lu après crop, au cas où. Il ne me semble pas avoir déjà eu trop de crop, plutôt pas assez.
Pour l'audio, le gain est subjectif, je prends une valeur moyenne pour ne pas altérer mais 3/4 du maxi doit être bon. A tester mais on ne peut tester qu'après encodage.
Pour garder l'ac3, il doit suffir de mettre -oac copy au lieu de -oac mp3lame et supprimer -lameopts etc... Mais là pour l'amplification c'est autre chose, je pense qu'il faut ripper séparément l'audio et la vidéo, décoder l'audio en wav, l'amplifier puis la réencoder en ac3 puis muxer audio et vidéo. J'ai des scripts de rip séparant audio et vidéo puis mixant les deux.
Pour les unités des bitrates, c'est toi qui voit, je ne compte pas déposer un brevet, tu en fais ce que tu veux et qui te fera de bons films.
Ne me demandes pas trop de détails sur les video, je n'y connais pas grans chose.
Trois encodeurs sont inutiles, j'avais commencé par lavc le pensant meilleur que xvid mais je ne vois pas de différence si on a les bonnes options. 
Excuses, j'avais dit que par défaut c'était xvid alors que TRUE est sur lavc

#15 Le 02/05/2008, à 02:36

PRQT83

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

@jcvittet: p4XXX@XXXXfr merci smile tes " chefs-d'oeuvres m'aide à étudier le bash wink ( je débute)
Edit: Jamais tu t'inscrit depuis le temps? tongue

Dernière modification par PRQT83 (Le 02/05/2008, à 22:03)

#16 Le 02/05/2008, à 08:23

jcvittet2

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

Je me suis inscrit et ne peux plus utiliser mon login jcvittet

#17 Le 02/05/2008, à 08:38

jcvittet2

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

PRQT83
Script envoyé en zip.
Je l'ai modifié pour éliminer mes initiales, animer les barres de progression, donner aux fichiers temporaires le nom du mpeg extension .log et .txt et à la sortie le nom du mpeg extension .avi
On ainsi peut lancer plusieurs encodages simultanés si le processeur le permet.
Je ne sais plus pourquoi j'ai mis les commandes transcode car DVD::RIP fait nettement mieux
Une technique que j'ai utilisé longtemps est de ripper avec lxdvdrip qui requantise et crée une structure DVD5 à graver. On concatene ensuite les vob qu'on encode en avi.
Le script modifié (pour le plaisir partagé du bash que je n'ai malheureusement jamais appris, comme toi j'ai pompé sur le voisin)

#!/bin/bash
#######################################
# Nautilus script
# Encodage de mpeg en avi
# Mplayer, mencoder, transcode, zenity
#######################################
for arg
do
# identifie le type video de l'argument
typevid=`file -bi "$arg"`
# Si l'argument est video/mp2p
if [ $typevid = video/mp2p ]; then
# identifie les pistes audio
videoinfo()
{
zenity --info --title="INFO" --text="Identifier ID_AUDIO \n ex: 128"
mplayer -identify -vc null -ac null -frames 0 "$arg" | grep "ID_AUDIO_ID=" | zenity --text-info & atrack=`zenity --entry --title="ENTREE" --text="Entrer la piste audio \n ex 128" 2>&1`
zenity --info --title="INFO" --text="Teste la piste audio"
mplayer "$arg" -ss 300 -aid $atrack
zenity --question --title="QUESTION" --text="Audio correct ?"
	if [ $? = 0 ]; then
# Amplification audio
ampli=`zenity --entry --title="ENTREE" --text="Entrer le facteur d'AMPLIFICATION \n ex: 5  (0 - 10)" 2>&1`
# Recherche de l'aspect video
# aspect=`mplayer -identify -vc null -frames 0 "$arg" | cat | grep ^"ID_VIDEO_ASPECT" | awk '{print}' | cut -d= -f2`
zenity --info --title="INFO" --text="Recherche du crop \n lire jusqu'à scene claire \n ... puis Echap"
# Recherche du crop  
# crop=`mplayer "$arg" -vf cropdetect | tail -n 4 | head -n 1 | cat | awk '{print $22}'| cat | cut -d")" -f1 | cut -d= -f2 `
crop=`mplayer "$arg" -ss 200 -vf cropdetect | tail -n 4 | head -n 1 | cat | cut -d= -f2 | cut -d")" -f1`
zenity --info --text="Vérification du crop" 
mplayer "$arg" -aid $atrack -ss 300 -vf crop=$crop 
zenity --question --title="QUESTION" --text="Crop correct ?"
		if [ $? = 0 ]; then
vbitrate=`zenity --entry --title="ENTREE" --text="Entrer le BITRATE VIDEO \n ex: 900 \n (defaut 800)" 2>&1`
# Crée un fichier texte des paramètres entrés
touch "${arg/%.*/.txt}"
echo titre = "$arg", vbitrate = $vbitrate, audio = $atrack, ampli = $ampli, crop = $crop, autoaspect >> "${arg/%.*/.txt}"
		else zenity --info --title="INFO" --text="Crop incorrect \n Recommencer" && exit
		fi
	else zenity --info --title="INFO" --text="Audio incorrect \n Recommencer" && exit
	fi
# Encodage mencoder lavc 2 passes
}
lavcenc()
{
# passe 1
mencoder "$arg" -aid $atrack -oac mp3lame -lameopts vbr=3:vol=$ampli -ovc lavc -lavcopts vcodec=mpeg4:vhq:v4mv:vqmin=2:vpass=1:vbitrate=$vbitrate:autoaspect:turbo -vf crop=$crop -ffourcc DX50 -passlogfile "${arg/%.*/.log}" -o /dev/null | nice zenity --progress --auto-close --pulsate --title="MENCODER lavc" --text="Encodage en mpeg4 de: \n ... "$arg" ... \n Bitrate video = $vbitrate \n Audio = $atrack \n Volume = x $ampli \n Crop = $crop \n Autoaspect \n Qualité VHQ \n PASSE 1 (turbo) ... en cours"
# passe 2
mencoder "$arg" -aid $atrack -oac mp3lame -lameopts vbr=3:vol=$ampli -ovc lavc -lavcopts vcodec=mpeg4:vhq:v4mv:vqmin=2:vpass=2:vbitrate=$vbitrate:autoaspect -vf crop=$crop -ffourcc DX50 -passlogfile "${arg/%.*/.log}" -o "${arg/%.*/.avi}" | nice zenity --progress --auto-close --pulsate --title="MENCODER lavc" --text="Encodage en mpeg4 de: \n ... "$arg" ... \n Bitrate video = $vbitrate \n Audio = $atrack \n Volume = x $ampli \n Crop = $crop \n Autoaspect \n Qualité VHQ \n PASSE 2 ... en cours"
}
# Encodage mencoder xvid 2 passes
xvidenc()
{
# passe 1
mencoder "$arg" -aid $atrack -oac mp3lame -lameopts vbr=3:vol=$ampli -ovc xvid -xvidencopts chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:pass=1:bitrate=$vbitrate:autoaspect:turbo -vf crop=$crop -passlogfile "${arg/%.*/.log}" -o /dev/null | nice zenity --progress --auto-close --pulsate --title="MENCODER xvid" --text="Encodage en mpeg4 de: \n ... "$arg" ... \n Bitrate video = $vbitrate \n Audio = $atrack \n Volume = x $ampli \n Crop = $crop \n Autoaspect \n Qualité VHQ \n PASSE 1 (turbo) ... en cours"
# passe 2
mencoder "$arg" -aid $atrack -oac mp3lame -lameopts vbr=3:vol=$ampli -ovc xvid -xvidencopts chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:pass=2:bitrate=$vbitrate:autoaspect -vf crop=$crop -passlogfile "${arg/%.*/.log}" -o "${arg/%.*/.avi}" | nice zenity --progress --auto-close --pulsate --title="MENCODER xvid" --text="Encodage en mpeg4 de: \n ... "$arg" ... \n Bitrate video = $vbitrate \n Audio = $atrack \n Volume = x $ampli \n Crop = $crop \n Autoaspect \n Qualité VHQ \n PASSE 2 ... en cours"
}
# Encodage transcode 2 passes scale fixé à 576x328 (préférer dvd::rip qui fait mieux)
transcodeenc()
{
nice transcode -i "$arg" -y xvid4 -Z 576x328,fast -w $vbitrate -V -N 0x55 -b 128 -s 3 -o /dev/null -R 1 | nice zenity --progress --pulsate --auto-close --title="TRANSCODE" --text=""$arg" \n Vbitrate = $vbitrate \n Resolution = 576x328 \n Passe 1 ... en cours"
nice transcode -i "$arg" -y xvid4 -Z 576x328,fast -w $vbitrate -V -N 0x55 -b 128 -s 3 -o "${arg/%.*/.avi}" -R 2 | nice zenity --progress --pulsate --auto-close --title="TRANSCODE" --text=""$arg" \n Vbitrate = $vbitrate \n Resolution = 576x328 \n Passe 2 ... en cours"
rm -f divx4.log
}
# Boîte de choix
encode=`zenity  --title="MPEG to AVI" --text="MPEG to AVI 2 passes (Mencoder/Transcode)" --list --radiolist --height="250" --width="350" --column="Selection" \
	--column="Codec"\
	--column="Encodage"\
	FALSE "lavc" "Encodage mencoder lavc"\
	TRUE "xvid" "Encodage mencoder xvid"\
	FALSE "transcode" "Encodage transcode xvid"\
	| sed 's/ max//g'`
			if [ "$encode" = "lavc" ]; then
videoinfo && lavcenc && rm -f "${arg/%.*/.log}" && zenity --info --title="INFO" --text="Encodage ... OK"
			elif [ "$encode" = "xvid" ]; then
videoinfo && xvidenc && rm -f "${arg/%.*/.log}" && zenity --info --title="INFO" --text="Encodage ... OK"
			elif [ "$encode" = "transcode" ]; then
zenity --info --title="INFO" --text="Encodage video et toutes pistes audio"
vbitrate=`zenity --entry --title="ENTREE" --text="Entrer le BITRATE VIDEO \n ex: 900 \n (defaut 800)" 2>&1`
transcodeenc && zenity --info --title="INFO" --text="Encodage ... OK"
			else exit
			fi
else zenity --info --title="INFO" --text="Argument non video/mp2p \n Encodage annulé" && exit
fi
done

Dernière modification par michel2652 (Le 03/05/2008, à 09:27)

#18 Le 02/05/2008, à 09:50

thurston

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

Salut jcvittet,

la classe!!. Je suis en train de personnaliser.
1. ac3 donc comme indiqué précédemment,
2. emplacement du fichier vidéo et log directement dans ma biblio
3. calcul du temps d'encodage en affichant vitesse processeur, mémoire vive, juste pour info

Le gros avantage du script:
1. on encode tjrs de la même façon donc résultat tjrs identique. je me demande même si je ne vais pas geler le bitrate d'ailleurs (j'utilise plutot 1500 habituellement)
2. ON TESTE ce que l'on encode: je veux dire, la piste audio c'est sur que c'est la bonne, et le crop est validé aussi, donc pas de mauvaises surprises à l'arrivée (ce qui est le cas avec les autres logiciels je trouve)

Merci donc à jcvittet.
je posterai mon script 99% inspiré de celui de jcvittet quand il sera au point.

Amitiés
Thurston

Hors ligne

#19 Le 02/05/2008, à 10:45

PRQT83

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

Merci à toi, je vais m'empresser de tester ça wink

#20 Le 02/05/2008, à 22:34

thurston

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

Alors voila, je post mon script (encore une fois 100% inspiré de celui de jcvittet)

Le but:
Encoder en
- xvid 2 passes (pas d'option autre format)
- audio ac3 original (pas d'option mp3)
un film.mpg obtenu par le rip d'un DVD sous acidrip (option -copy pour audio et video, avec extension .mpg), le tout en controlant le crop ainsi que la piste audio. Un fichier log est créé qui indique les options de codage ainsi que le temps d'encodage.
Voilà.
PS: le script discute en anglais (environnement multilangue au boulot)
A+
Thurston

#!/bin/bash
#######################################
# Nautilus script
# Encodage de mpeg en avi
# Mplayer, mencoder, zenity
#######################################

# Control of argument presence
if [ $# -eq 0 ]
   then
      echo "usage: mpeg2xvid [-film.mpg]"
      exit 1
fi


for arg
do
# identifie le type video de l'argument
typevid=`file -bi "$arg"`
# if argument = video/mp2p
if [ $typevid = video/mp2p ]; then

# identifie les pistes audio
videoinfo()
   {
   zenity --info --title="INFO" --text="Specify DVD ID_AUDIO \n ex: 128"
   mplayer -identify -vc null -ac null -frames 0 "$arg" | grep "ID_AUDIO_ID=" | zenity --text-info & atrack=`zenity --entry --title="INPUTS" --text="Enter audio track ID \n ex 128" 2>&1`

   zenity --info --title="INFO" --text="Next: Test of audio track (correct language)...then Echap"
   mplayer "$arg" -ss 300 -aid $atrack
   zenity --question --title="QUESTION" --text="Audio track/language correct ?"

   if [ $? = 0 ]; then

       # Recherche de l'aspect video
       # aspect=`mplayer -identify -vc null -frames 0 "$arg" | cat | grep ^"ID_VIDEO_ASPECT" | awk '{print}' | cut -d= -f2`
       zenity --info --title="INFO" --text="Next: Crop processing \n Wait and Play up to clear scene \n ... then Echap"
       # Recherche du crop 
       # crop=`mplayer "$arg" -vf cropdetect | tail -n 4 | head -n 1 | cat | awk '{print $22}'| cat | cut -d")" -f1 | cut -d= -f2 `
       crop=`mplayer "$arg" -ss 200 -vf cropdetect | tail -n 4 | head -n 1 | cat | cut -d= -f2 | cut -d")" -f1`

       zenity --info --text="Next:Crop cheking...then Echap"
       mplayer "$arg" -aid $atrack -ss 300 -vf crop=$crop
       zenity --question --title="QUESTION" --text="Crop correct ?"
 

      if [ $? = 0 ]; then   
         # Definition of video bitrate
         vbitrate=`zenity --entry --title="INPUTS" --text="Entrer video BITRATE \n ex: 1500 \n (defaut 1500)" 2>&1`
     
          # Crée un fichier texte des paramètres entrés
          touch "${arg/%.*/.txt}"
          echo titre = "$arg", video codec = xvid 2 passes, audio codec = ac3 copy, vbitrate = $vbitrate, track audio ID = $atrack, crop = $crop, autoaspect >> "${arg/%.*/.txt}"
          else zenity --info --title="INFO" --text="Crop NOT CORRECT \n RETRY" && exit
       fi

   else zenity --info --title="INFO" --text="Audio track NOT CORRECT \n RETRY" && exit
   fi
   
   }
# Encodage mencoder xvid 2 passes
xvidenc()
   {
   # set intitial encoding time
   # date +%s gives duration between 1-01-1970 in seconds. Then easy to compute for duration calculation
   encoding_start_date=$(date +%s)

   # passe 1
   mencoder "$arg" -aid $atrack -oac copy -ovc xvid -xvidencopts chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:pass=1:bitrate=$vbitrate:autoaspect:turbo -vf crop=$crop -passlogfile "${arg/%.*/.log}" -o /dev/null | nice zenity --progress --auto-close --pulsate --title="MENCODER xvid" --text="Encodage en mpeg4 de: \n ... "$arg" ... \n Bitrate video = $vbitrate \n Audio = $atrack \n Audio codec = AC3 initial \n Crop = $crop \n Autoaspect \n Qualité VHQ \n PASSE 1 (turbo) ... processing"

   # passe 2
   mencoder "$arg" -aid $atrack -oac copy -ovc xvid -xvidencopts chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:pass=2:bitrate=$vbitrate:autoaspect -vf crop=$crop -passlogfile "${arg/%.*/.log}" -o "${arg/%.*/.avi}" | nice zenity --progress --auto-close --pulsate --title="MENCODER xvid" --text="Encodage en mpeg4 de: \n ... "$arg" ... \n Bitrate video = $vbitrate \n Audio = $atrack \n Audio codec = AC3 initial \n Crop = $crop \n Autoaspect \n Qualité VHQ \n PASSE 2 ... processing"

   # set final encoding time
   # date +%s gives duration between 1-01-1970 in seconds. Then easy to compute for duration calculation
   encoding_stop_date=$(date +%s)
   
   }


# Menu indicating what will be processed
encode=`zenity  --title="MPEG to AVI" --text="MPEG to AVI 2 passes (Mencoder)" --list --radiolist --height="250" --width="350" --column="Selection" \
    --column="Codec"\
    --column="Encodage"\
    TRUE "Video" "Encodage Mencoder Xvid"\
    TRUE "Audio" "Copy Audio AC3"\
    | sed 's/ max//g'`

# Set action after pressing Enter
   videoinfo && xvidenc && rm -f "${arg/%.*/.log}" && zenity --info --title="INFO" --text="Encoding ... OK"

# Calculate & fill the log file with time needed for encoding
   difference=$(( encoding_stop_date-encoding_start_date ))
   he=$(( difference/3600 ))
   mi=$(( (( difference/60 ))-$(( he*60 )) ))
   #se=$(( difference-$(( $(( mi*60 ))+$(( he*3600 )) )) ))

   echo encoding time "=" $he"Hour "$mi"minutes" # $se 
   echo encoding time "=" $he"Hour "$mi"minutes" >> "${arg/%.*/.txt}"


exit

else zenity --info --title="INFO" --text="Argument non video/mp2p. Please use Acidrip for DVD ripping and specify .mpg for output file, with copy option for audio and video. Please Ensure you select correct laguage \n Encodage canceled" && exit
fi
done

Hors ligne

#21 Le 02/05/2008, à 23:42

jcvittet2

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

Et tu ne voudrais pas pour le fun, ripper ton dvd en script ? Pour s'amuser d'abord et surtout, et petit avantage pour moi, je rippe en mpeg avec requantisation permettant la gravure en dvd5 puis l'encodage en avi. Pour les deux opérations, le lecteur ne tourne qu'une fois, il est content. Mon script n'est pas terrible et approximatif, je te le laisse bidouiller.

#!/bin/bash
##############################################
# RIP DVD titre principal
# Choix de la piste audio
# Rip les flux DVD audio et video séparément
# Rip audio seul possible encodé en mp3  
# Rip video avec possible requantisation
##########################################################################################################
# lsdvd, mpg321, zenity, mplayer, dvdauthor, dvd+rw-format, growisofs, mencoder, transcode, vobcopy, mplex 
##########################################################################################################
# Se place dans le repertoire cible du rip
cd /media/sda4/encodage
# Identifie le nom et le titre principal du film
nom=`lsdvd /dev/dvd | grep ^"Disc Title:" | awk '{print $3}'`
titre=`lsdvd /dev/dvd | grep ^"Longest track" | awk '{print $3}'`
# Avertissement sonore (Alice Cooper mp3 placé dans mon home/bin)
avson()
{
mpg321 /home/jc/bin/avson.mp3
}
# DVD infos (nom, titre principal, début du titre en secondes)
dvdinfo()
{
nom=`lsdvd /dev/dvd | grep ^"Disc Title:" | awk '{print $3}'`
titre=`lsdvd /dev/dvd | grep ^"Longest track" | awk '{print $3}'`
start=`zenity --entry --title="J.C.V" --text="Entrer le délai de debut (en sec) \n ex 120" 2>&1`
}
# Infos pour recherche de l'audio
testaud()
{
mplayer -identify -vc null -ac null -frames 0 dvd://$titre | grep "ID_AUDIO_ID" | zenity --text-info --height="400" --width="200" & mplayer -identify -vc null -ac null -frames 0 dvd://$titre | grep "ID_AID" | zenity --text-info --height="200" --width="400" & atrack=`zenity --entry --title="J.C.V" --text="Entrer la piste audio \n ex 128" 2>&1`
}
# Creation structure DVD
struct()
{
avson & zenity --question --text="Créer une structure à graver ?"
if [ $? = 0 ];then
nice dvdauthor -o $nom -f $nom.vob | nice zenity --progress --pulsate --auto-close --pulsate --title="DVDAUTHOR" --text="Création structure DVD ... \n ...... en cours"
nice dvdauthor -T -o $nom | nice zenity --progress --pulsate --auto-close --pulsate --title="DVDAUTHOR" --text="Création TOC ... \n ...... en cours"
avson & zenity --info --title="DVDAUTHOR" --text="Structure DVD ... OK \n Vérification" 
mplayer -dvd-device $nom dvd://
zenity --info --text="Si structure incorrecte, ne pas graver" 
fi
}
# Gravure DVD video
burn()
{
zenity --info --text="Introduire un DVD vierge \n Attendre son montage \n puis Valider "
zenity --question --text="Graver ?"
	if [ $? = 0 ];then
zenity --question --text="Effacer le DVD ?"
		if [ $? = 0 ];then
dvd+rw-format -blank /dev/dvd && eject /dev/dvd && zenity --info --text="Refermer le DVD \n puis Valider"
growisofs -Z /dev/hda -speed=4 -V $nom -dvd-video $nom | nice zenity --progress --pulsate --auto-close --pulsate --title="GROWISOFS" --text="Gravure ... en cours"
eject /dev/dvd & avson & zenity --info --text="Gravure ... OK" && rm -fr $nom
		else growisofs -Z /dev/hda -speed=4 -V $nom -dvd-video $nom | nice zenity --progress --pulsate --auto-close --pulsate --title="GROWISOFS" --text="Gravure ... en cours"
eject /dev/dvd & avson =& zenity --info --text="Gravure ... OK" && rm -fr $nom
		fi
	else zenity --info --text="Gravure annulee" && rm -fr $nom
	fi
}
# MencoderRip 2 flux (oafile.ac3 ovfile.m2v)
mencoderrip2()
{
testaud
zenity --info --text="Vérification de la piste audio"
mplayer dvd://$titre -ss 200 -aid $atrack
zenity --question --title="J.C.V" --text="Audio correct ?"
	if [ $? = 0 ]; then
nice mencoder dvd://$titre -ss $start -aid $atrack -oac copy -ovc copy -of rawaudio -o oafile.ac3 | nice zenity --progress --height="300" --auto-close --pulsate --title="MENCODER RIP AUDIO" --text="Rip audio de $nom \n Titre $titre \n Start à $start  secondes ... en cours" & nice mencoder dvd://$titre -ss $start -oac copy -ovc copy -of rawvideo -o ovfile.m2v | nice zenity --progress --width="300" --auto-close --pulsate --title="MENCODER RIP VIDEO" --text="Rip video de $nom \n Titre $titre \n Start à $start  secondes ... en cours"
	else zenity --info --text="Audio incorrect \n Recommencer"
	fi
eject /dev/dvd 
}
# MplayerRip 2 flux (oafile.ac3 ovfile.m2v)
mplayerrip2()
{
testaud
zenity --info --text="Vérification de la piste audio"
mplayer dvd://$titre -ss 200 -aid $atrack
zenity --question --title="J.C.V" --text="Audio correct ?"
	if [ $? = 0 ]; then
nice mplayer dvd://$titre -ss $start -aid $atrack -dumpaudio -dumpfile oafile.ac3 | nice zenity --progress --height="300" --auto-close --pulsate --title="MPLAYER RIP AUDIO" --text="Rip audio de $nom \n Titre $titre \n Start à $start  secondes ... en cours" & nice mplayer dvd://$titre -ss $start -dumpvideo -dumpfile ovfile.m2v | nice zenity --progress  --width="300" --auto-close --pulsate --title="MPLAYER RIP VIDEO" --text="Rip video de $nom \n Titre $titre \n Start à $start  secondes ... en cours"
	else zenity --info --text="Audio incorrect \n Recommencer"
	fi
eject /dev/dvd 
}
# MencoderRip 2 flux (oafile.ac3 ovfile.m2v) tous titres
mencoderrip3()
{
testaud
zenity --info --text="Vérification de la piste audio"
mplayer dvd://$titre -ss 200 -aid $atrack
zenity --question --title="J.C.V" --text="Audio correct ?"
	if [ $? = 0 ]; then
nice mencoder dvd://$titre -ss $start -aid $atrack -oac copy -ovc copy -of rawaudio -o oafile.ac3 | nice zenity --progress --height="300" --auto-close --pulsate --title="MENCODER RIP AUDIO" --text="Rip audio de $nom \n Titre $titre \n Start à $start  secondes ... en cours" & nice mencoder dvd://$titre -ss $start -oac copy -ovc copy -of rawvideo -o ovfile.m2v | nice zenity --progress --width="300" --auto-close --pulsate --title="MENCODER RIP VIDEO" --text="Rip video de $nom \n Titre $titre \n Start à $start  secondes ... en cours"
	else zenity --info --text="Audio incorrect \n Recommencer"
	fi
eject /dev/dvd 
}

# TranscodeRip 2 flux (oafile.ac3 ovfile.m2v)
transcoderip2()
{
lsdvd -t $titre -a | grep "Audio:" | awk '{print $1 $2 $3 $4 $5 $6 $7 $8}' | zenity --text-info --height="400" --width="450" & zenity --question --text="Audio format: AC3 ? \n Sinon recommencer avec mplayer"
if [ $? = 0 ]; then
audiotrack=`zenity --entry --title="J.C.V" --text="Entrer la piste audio \n ex 2" 2>&1`  
audiotrack=`echo $audiotrack - 1 | bc`
else zenity --info --text="Audio non AC3 \n Rip annulé" && exit
fi
zenity --info --text="Rip MUET jusqu'à ejection du dvd"
nice tccat -i /dev/dvd -T $titre,-1 -P | tcextract -t vob -x ac3 -a $audiotrack > oafile.ac3 & nice tccat -i /dev/dvd -T $titre,-1 -P | tcextract -t vob -x mpeg2 > ovfile.m2v
eject /dev/dvd
}
# VobcopyRip
vobrip()
{
vobcopy -l -n $titre | zenity --progress --auto-close --pulsate --title="VOBCOPY" --text="Rip DVD ... en cours"
eject /dev/dvd
}
# MplayerRip audio seul
mplayerripaudio()
{
testaud
mplayer dvd://$titre -ss 200 -aid $atrack
zenity --question --title="J.C.V" --text="Audio correct ?"
	if [ $? = 0 ]; then
nice mplayer dvd://$titre -ss $start -aid $atrack -dumpaudio -dumpfile $nom.ac3 | nice zenity --progress --auto-close --pulsate --title="MPLAYER RIP AUDIO" --text="Rip audio de $nom \n Titre $titre \n Start à $start  secondes ... en cours"
nice a52dec $nom.ac3 -o wav > $nom.wav && rm -f $nom.ac3 
nice normalize-audio -a 0,6 norm-$nom.wav | nice zenity --progress --auto-close  --pulsate --title="NORMALIZE" --text="Ampli x0,6 ... en cours" 
nice lame -m s --preset standard $nom.wav $nom.mp3 | nice zenity --progress --auto-close  --pulsate --title="LAME" --text="Encodage mp3 ... en cours" && rm $nom.wav
zenity --info --title="J.C.V" --text="Extraction-encodage ac3 en mp3 ... OK"
	else exit
	fi
eject /dev/dvd
}
# Requantisation (ovfile.m2v > $nom.m2v)
requant()
{
nice tcrequant -i ovfile.m2v -o $nom.m2v -f $req | zenity --progress --auto-close --pulsate --title="TCREQUANT" --text="Requantisation \n f = $req \n ... en cours"
rm -f ovfile.m2v
}
# Multiplexage (ovfile.m2v oafile.ac3 > $nom.vob)
plex()
{
nice mplex -f 8 -S 0 -o $nom.vob ovfile.m2v oafile.ac3 | nice zenity --progress --auto-close --pulsate --title="MPLEX" --text="Multiplexage ... en cours"
}
# Multiplexage req ($nom.m2v oafile.ac3 > $nom.vob)
plexreq()
{
nice mplex -f 8 -S 0 -o $nom.vob $nom.m2v oafile.ac3 | nice zenity --progress --auto-close --pulsate --title="MPLEX" --text="Multiplexage ... en cours"
}
# Calcul si requantisation necessaire
autoreqplex() 
{
# vsize=`ls -l ovfile.m2v | awk '{print $5}'` 
# vsize=`echo $vsize / 1048576 | bc` 
# asize=`ls -l oafile.ac3 | awk '{print $5}'` 
# asize=`echo $asize / 1048576 | bc` 
# req=`echo "1.04 * $vsize / (4400 - $asize)" | bc -ql` 
vsize=`ls -l ovfile.m2v | awk '{print $5}'`
vsize=`echo $vsize | bc`
asize=`ls -l oafile.ac3 | awk '{print $5}'`
asize=`echo $asize | bc`
req=`echo "(1.05 * $vsize) / (4706074624 - $asize)" | bc -ql`
	if [[ $req > 1,0 ]]; then 
requant && plexreq 
	else plex
	fi
}
# Suppression des aofile.ac3 et ovfile.m2v
deltmp()
{
rm -f ovfile.m2v oafile.ac3 $nom.m2v
} 
# Encodage em mpeg4
avi()
{
zenity --question --text="Encodage $nom en avi ?"
if [ $? = 0 ]; then
# Recherche du crop
zenity --info --text="Recherche du crop \n Lire jusqu'à scène claire"  
crop=`mplayer $nom.vob -ss 200 -vf cropdetect | tail -n 4 | head -n 1 | cat | cut -d= -f2 | cut -d")" -f1`
zenity --info --text="Vérification du crop" 
mplayer $nom.vob -ss 250 -vf crop=$crop 
zenity --question --title="J.C.V" --text="Crop et audio corrects ?"
	if [ $? = 0 ]; then
# passe 1
mencoder $nom.vob -oac mp3lame -lameopts vbr=3:vol=6 -ovc xvid -xvidencopts chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:pass=1:bitrate=900:autoaspect:turbo -vf crop=$crop -passlogfile $nom.log -o /dev/null | nice zenity --progress --auto-close --pulsate --title="MENCODER xvid" --text="Encodage avi de: \n ... $nom.vob ... \n Bitrate video = 900 \n Audio Volume x 6 \n Crop = $crop \n Autoaspect \n Qualité VHQ \n PASSE 1 (turbo) ... en cours"
# passe 2
mencoder $nom.vob -oac mp3lame -lameopts vbr=3:vol=6 -ovc xvid -xvidencopts chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:pass=2:bitrate=900:autoaspect -vf crop=$crop -passlogfile $nom.log -o $nom.avi | nice zenity --progress --auto-close --pulsate --title="MENCODER xvid" --text="Encodage avi de: \n ... $nom.vob ... \n Bitrate video = 900 \n Audio Volume x 6 \n Crop = $crop \n Autoaspect \n Qualité VHQ \n PASSE 2 ... en cours"
avson & zenity --info --text="$nom.avi ... OK"
	else zenity --info --text="Crop et ou audio incorrects \n Encodage annulé" && exit
	fi
else zenity --info --text="Operation terminée" && exit
fi 
}
# Boite de choix			
rip=`zenity  --title="RIP DVD Video" --text="RIP de: ... $nom, titre $titre" --list --radiolist --height="400" --width="450" --column="Selection" \
	--column="Programme"\
	--column="Type de Rip"\
	FALSE "Mplayer" "Requantisation (choix audio)"\
	TRUE "MplayerDVD" "Gravure DVD9to5 et avi"\
	FALSE "Mencoder" "Requantisation (choix audio)"\
	FALSE "MencoderDVD" "Gravure DVD9to5 et avi"\
	FALSE "MencoderDVD-AllTitles" "Gravure DVD9to5 et avi"\
	FALSE "Transcode" "Simple (choix piste audio)"\
	FALSE "TranscodeRequant" "Requantisation (choix piste audio)"\
	FALSE "TranscodeDVD"  "Gravure DVD9to5 et avi"\
	FALSE "MplayerAudio" "Audio seul"\
	FALSE "Vobcopy" "Vobcopy"\
	| sed 's/ max//g'`
if [ "$rip" = "Mplayer" ]; then
dvdinfo && mplayerrip2 && autoreqplex && deltmp && exit
elif [ "$rip" = "MplayerDVD" ]; then
dvdinfo && mplayerrip2 && autoreqplex && deltmp && struct && burn && avi && exit
elif [ "$rip" = "Mencoder" ]; then
dvdinfo && mencoderrip2 && autoreqplex && deltmp && exit
elif [ "$rip" = "MencoderDVD" ]; then
dvdinfo && mencoderrip2 && autoreqplex && deltmp && struct && burn && avi && exit
elif [ "$rip" = "MencoderDVD-AllTitles" ]; then
dvdinfo && mencoderrip3 && autoreqplex && deltmp && struct && burn && avi && exit
elif [ "$rip" = "Transcode" ]; then
dvdinfo && transcoderip2 && plex && deltmp && exit
elif [ "$rip" = "TranscodeRequant" ]; then
dvdinfo && transcoderip2 && autoreqplex && deltmp && exit
elif [ "$rip" = "TranscodeDVD" ]; then
dvdinfo && transcoderip2 && autoreqplex && deltmp && struct && burn && avi && exit
elif [ "$rip" = "MplayerAudio" ]; then
dvdinfo && mplayerripaudio && zenity --info --text="Rip ... OK" && exit
elif [ "$rip" = "Vobcopy" ]; then
dvdinfo && vobrip && zenity --info --text="Rip ... OK" && exit 
else exit
fi

Dernière modification par michel2652 (Le 03/05/2008, à 09:27)

#22 Le 03/05/2008, à 00:00

jcvittet2

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

Thurston,
Petites corrections de ton script (après les ########)

#!/bin/bash
#######################################
# Nautilus script
# Encodage de mpeg en avi
# Mplayer, mencoder, zenity
#######################################

# Control of argument presence
if [ $# -eq 0 ]
   then
      echo "usage: mpeg2xvid [-film.mpg]"
      exit 1
fi


for arg
do
# identifie le type video de l'argument
typevid=`file -bi "$arg"`
# if argument = video/mp2p
if [ $typevid = video/mp2p ]; then

# identifie les pistes audio
videoinfo()
   {
   zenity --info --title="INFO" --text="Specify DVD ID_AUDIO \n ex: 128"
   mplayer -identify -vc null -ac null -frames 0 "$arg" | grep "ID_AUDIO_ID=" | zenity --text-info & atrack=`zenity --entry --title="INPUTS" --text="Enter audio track ID \n ex 128" 2>&1`

   zenity --info --title="INFO" --text="Next: Test of audio track (correct language)...then Echap"
   mplayer "$arg" -ss 300 -aid $atrack
   zenity --question --title="QUESTION" --text="Audio track/language correct ?"

   if [ $? = 0 ]; then

       # Recherche de l'aspect video
       # aspect=`mplayer -identify -vc null -frames 0 "$arg" | cat | grep ^"ID_VIDEO_ASPECT" | awk '{print}' | cut -d= -f2` ###############(A SUPPRIMER)
       zenity --info --title="INFO" --text="Next: Crop processing \n Wait and Play up to clear scene \n ... then Echap"
       # Recherche du crop 
       # crop=`mplayer "$arg" -vf cropdetect | tail -n 4 | head -n 1 | cat | awk '{print $22}'| cat | cut -d")" -f1 | cut -d= -f2 `
       crop=`mplayer "$arg" -ss 200 -vf cropdetect | tail -n 4 | head -n 1 | cat | cut -d= -f2 | cut -d")" -f1`

       zenity --info --text="Next:Crop cheking...then Echap"
       mplayer "$arg" -aid $atrack -ss 300 -vf crop=$crop
       zenity --question --title="QUESTION" --text="Crop correct ?"
 

      if [ $? = 0 ]; then   
         # Definition of video bitrate
         vbitrate=`zenity --entry --title="INPUTS" --text="Entrer video BITRATE \n ex: 1500 \n (defaut 1500)" 2>&1` ############ (DEFAUT VBITRATE DE MENCODER EST 800)
     
          # Crée un fichier texte des paramètres entrés
          touch "${arg/%.*/.txt}"
          echo titre = "$arg", video codec = xvid 2 passes, audio codec = ac3 copy, vbitrate = $vbitrate, track audio ID = $atrack, crop = $crop, autoaspect >> "${arg/%.*/.txt}"
          else zenity --info --title="INFO" --text="Crop NOT CORRECT \n RETRY" && exit
       fi

   else zenity --info --title="INFO" --text="Audio track NOT CORRECT \n RETRY" && exit
   fi
   
   }
# Encodage mencoder xvid 2 passes
xvidenc()
   {
   # set intitial encoding time
   # date +%s gives duration between 1-01-1970 in seconds. Then easy to compute for duration calculation
   encoding_start_date=$(date +%s)

   # passe 1
   mencoder "$arg" -aid $atrack -oac copy -ovc xvid -xvidencopts chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:pass=1:bitrate=$vbitrate:autoaspect:turbo -vf crop=$crop -passlogfile "${arg/%.*/.log}" -o /dev/null | nice zenity --progress --auto-close --pulsate --title="MENCODER xvid" --text="Encodage en mpeg4 de: \n ... "$arg" ... \n Bitrate video = $vbitrate \n Audio = $atrack \n Audio codec = AC3 initial \n Crop = $crop \n Autoaspect \n Qualité VHQ \n PASSE 1 (turbo) ... processing"

   # passe 2
   mencoder "$arg" -aid $atrack -oac copy -ovc xvid -xvidencopts chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:pass=2:bitrate=$vbitrate:autoaspect -vf crop=$crop -passlogfile "${arg/%.*/.log}" -o "${arg/%.*/.avi}" | nice zenity --progress --auto-close --pulsate --title="MENCODER xvid" --text="Encodage en mpeg4 de: \n ... "$arg" ... \n Bitrate video = $vbitrate \n Audio = $atrack \n Audio codec = AC3 initial \n Crop = $crop \n Autoaspect \n Qualité VHQ \n PASSE 2 ... processing"

   # set final encoding time
   # date +%s gives duration between 1-01-1970 in seconds. Then easy to compute for duration calculation
   encoding_stop_date=$(date +%s)
   
   }


# Menu indicating what will be processed ############## (BOITE DE CHOIX INUTILE, IL N'Y A PAS DE CHOIX)
encode=`zenity  --title="MPEG to AVI" --text="MPEG to AVI 2 passes (Mencoder)" --list --radiolist --height="250" --width="350" --column="Selection" \
    --column="Codec"\
    --column="Encodage"\
    TRUE "Video" "Encodage Mencoder Xvid"\
    TRUE "Audio" "Copy Audio AC3"\
    | sed 's/ max//g'`

# Set action after pressing Enter
   videoinfo && xvidenc && rm -f "${arg/%.*/.log}" && zenity --info --title="INFO" --text="Encoding ... OK"

# Calculate & fill the log file with time needed for encoding
   difference=$(( encoding_stop_date-encoding_start_date ))
   he=$(( difference/3600 ))
   mi=$(( (( difference/60 ))-$(( he*60 )) ))
   #se=$(( difference-$(( $(( mi*60 ))+$(( he*3600 )) )) ))

   echo encoding time "=" $he"Hour "$mi"minutes" # $se 
   echo encoding time "=" $he"Hour "$mi"minutes" >> "${arg/%.*/.txt}"


exit

else zenity --info --title="INFO" --text="Argument non video/mp2p. Please use Acidrip for DVD ripping and specify .mpg for output file, with copy option for audio and video. Please Ensure you select correct laguage \n Encodage canceled" && exit  
fi
done

Dernière modification par michel2652 (Le 03/05/2008, à 09:27)

#23 Le 03/05/2008, à 02:13

jcvittet2

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

Un peu égoïste le Thurston, il personalise pour lui tout seul. Et ceux qui veulent du mp3 ...
Script modifié (je sens qu'on va nous demander d'arrêter d'encombrer le forum avec nos conneries)

#!/bin/bash
#########################################
# Script de Thurston modifié par jcvittet
#########################################
# Nautilus script
# Encodage de mpeg2 en avi (AC3,xvid)
# Mplayer, mencoder, zenity
#########################################

# Control of argument presence
if [ $# -eq 0 ]
   then
      echo "usage: mpeg2xvid [-film.mpg]"
      exit 1
fi


for arg
do
# identifie le type video de l'argument
typevid=`file -bi "$arg"`
# if argument = video/mp2p
if [ $typevid = video/mp2p ]; then

# identifie les pistes audio
videoinfo()
   {
   zenity --info --title="INFO" --text="Specify DVD ID_AUDIO \n ex: 128"
   mplayer -identify -vc null -ac null -frames 0 "$arg" | grep "ID_AUDIO_ID=" | zenity --text-info & atrack=`zenity --entry --title="INPUTS" --text="Enter audio track ID \n ex 128" 2>&1`

   zenity --info --title="INFO" --text="Next: Test of audio track (correct language)...then Echap"
   mplayer "$arg" -ss 300 -aid $atrack
   zenity --question --title="QUESTION" --text="Audio track/language correct ?"

   if [ $? = 0 ]; then

       # Recherche de l'aspect video
       zenity --info --title="INFO" --text="Next: Crop processing \n Wait and Play up to clear scene \n ... then Echap"
       # Recherche du crop 
       crop=`mplayer "$arg" -ss 200 -vf cropdetect | tail -n 4 | head -n 1 | cat | cut -d= -f2 | cut -d")" -f1`

       zenity --info --text="Next:Crop cheking...then Echap"
       mplayer "$arg" -aid $atrack -ss 300 -vf crop=$crop
       zenity --question --title="QUESTION" --text="Crop correct ?"
 

      if [ $? = 0 ]; then   
         # Definition of video bitrate 
         vbitrate=`zenity --entry --title="INPUTS" --text="Entrer video BITRATE \n ex: 1500 \n (defaut mencoder = 800)" 2>&1`
     
          # Crée un fichier texte des paramètres entrés
          echo titre = "$arg", video codec = xvid 2 passes, audio codec = ac3 copy, vbitrate = $vbitrate, track audio ID = $atrack, crop = $crop, autoaspect >> "${arg/%.*/.txt}"
          else zenity --info --title="INFO" --text="Crop NOT CORRECT \n RETRY" && exit
       fi

   else zenity --info --title="INFO" --text="Audio track NOT CORRECT \n RETRY" && exit
   fi
   
   }
# Encodage mencoder xvid-AC3 2 passes
xvidencac3()
   {
   # set intitial encoding time
   # date +%s gives duration between 1-01-1970 in seconds. Then easy to compute for duration calculation
   encoding_start_date=$(date +%s)

   # passe 1
   mencoder "$arg" -aid $atrack -oac copy -ovc xvid -xvidencopts chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:pass=1:bitrate=$vbitrate:autoaspect:turbo -vf crop=$crop -passlogfile "${arg/%.*/.log}" -o /dev/null | nice zenity --progress --auto-close --pulsate --title="MENCODER xvid-ac3" --text="Encodage en mpeg4 de: \n ... "$arg" ... \n Bitrate video = $vbitrate \n Audio = $atrack \n Audio codec = AC3 initial \n Crop = $crop \n Autoaspect \n Qualité VHQ \n PASSE 1 (turbo) ... processing"

   # passe 2
   mencoder "$arg" -aid $atrack -oac copy -ovc xvid -xvidencopts chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:pass=2:bitrate=$vbitrate:autoaspect -vf crop=$crop -passlogfile "${arg/%.*/.log}" -o "${arg/%.*/.avi}" | nice zenity --progress --auto-close --pulsate --title="MENCODER xvid-ac3" --text="Encodage en mpeg4 de: \n ... "$arg" ... \n Bitrate video = $vbitrate \n Audio = $atrack \n Audio codec = AC3 initial \n Crop = $crop \n Autoaspect \n Qualité VHQ \n PASSE 2 ... processing"

   # set final encoding time
   # date +%s gives duration between 1-01-1970 in seconds. Then easy to compute for duration calculation
   encoding_stop_date=$(date +%s)
   
   }
# Encodage mencoder xvid-mp3 2 passes
xvidencmp3()
   {
# passe 1
mencoder "$arg" -aid $atrack -oac mp3lame -lameopts vbr=3:vol=$ampli -ovc xvid -xvidencopts chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:pass=1:bitrate=$vbitrate:autoaspect:turbo -vf crop=$crop -passlogfile "${arg/%.*/.log}" -o /dev/null | nice zenity --progress --auto-close --pulsate --title="MENCODER xvid-mp3" --text="Encodage en mpeg4 de: \n ... "$arg" ... \n Bitrate video = $vbitrate \n Audio = $atrack \n \n Audio codec = MP3 \n Volume = x $ampli \n Crop = $crop \n Autoaspect \n Qualité VHQ \n PASSE 1 (turbo) ... en cours"
# passe 2
mencoder "$arg" -aid $atrack -oac mp3lame -lameopts vbr=3:vol=$ampli -ovc xvid -xvidencopts chroma_opt:vhq=4:bvhq=1:quant_type=mpeg:pass=2:bitrate=$vbitrate:autoaspect -vf crop=$crop -passlogfile "${arg/%.*/.log}" -o "${arg/%.*/.avi}" | nice zenity --progress --auto-close --pulsate --title="MENCODER xvid-mp3" --text="Encodage en mpeg4 de: \n ... "$arg" ... \n Bitrate video = $vbitrate \n Audio = $atrack \n \n Audio codec = MP3 \n Volume = x $ampli \n Crop = $crop \n Autoaspect \n Qualité VHQ \n PASSE 2 ... en cours"
}

# Boîte de choix (avi xvid-mp3 ou 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 "\
	TRUE "xvid-ac3" "Encodage mencoder avi xvid-ac3"\
	| sed 's/ max//g'`
			if [ "$encode" = "xvid-mp3" ]; then
   videoinfo && xvidencmp3 && rm -f "${arg/%.*/.log}" && zenity --info --title="INFO" --text="Encoding ... OK"
			elif [ "$encode" = "xvid-ac3" ]; then
   videoinfo && xvidencac3 && rm -f "${arg/%.*/.log}" && zenity --info --title="INFO" --text="Encoding ... OK"
			else exit
			fi
# Calculate & fill the log file with time needed for encoding
   difference=$(( encoding_stop_date-encoding_start_date ))
   he=$(( difference/3600 ))
   mi=$(( (( difference/60 ))-$(( he*60 )) ))
   #se=$(( difference-$(( $(( mi*60 ))+$(( he*3600 )) )) ))

   echo encoding time "=" $he"Hour "$mi"minutes" # $se 
   echo encoding time "=" $he"Hour "$mi"minutes" >> "${arg/%.*/.txt}"


exit

else zenity --info --title="INFO" --text="Argument non video/mp2p. Please use Acidrip for DVD ripping and specify .mpg for output file, with copy option for audio and video. Please Ensure you select correct laguage \n Encodage canceled" && exit  
fi
done

Dernière modification par michel2652 (Le 03/05/2008, à 09:28)

#24 Le 03/05/2008, à 02:24

jcvittet2

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

Thurston,
Erreur dans les commandes encodage xvid-mp3, tu me corriges l'erreur ?
Sûrement un détail mais ça me saoule de chercher

#25 Le 03/05/2008, à 08:19

thurston

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

Un peu égoiste, c'est vrai. M'enfin l'intérêt du script, c'est bien de faire le script dédié!!!!
je pensais bien que quelqu'un allait le modifier avec le choix mp3/ac3, et tu te posais en bon candidat!!
Je regarde après ce we, où je laisse les PC derrière moi.
A bientot
Pour ce qui est du rip des dvd, why not.
A+
Thurston

Hors ligne