Script transcodage mkv => avi - need testeurs !

Script transcodage mkv => avi - need testeurs ! - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 16-12-2010 à 00:58:15    

Bonjour,
 
Je me suis fendu d'un petit script de transcodage de films mkv vers avi.
Je sais, c'est une usine à gaz, c'est pourquoi je suis ouvert à toute remarque constructive. Que ce soit en terme de code ou de fonctionnalités.
A ma décharge, ça ne fait que 2 mois que je suis rentré dans le monde magique de linux, et je n'avais plus rien codé depuis 11 ans...  :ange:
 
Script testé avec l'installation standard de Maverick Meerkat.
 
Merci d'avance pour vos réponses
 
Script disponible ici


Message édité par lo@hn le 18-12-2010 à 08:39:03

---------------
Sauvez les arbres : mangez du castor
Reply

Marsh Posté le 16-12-2010 à 00:58:15   

Reply

Marsh Posté le 18-12-2010 à 01:05:01    

Une suggestion, par exemple passer par un fifo pour éviter que la décompression en wave ne prenne une place énorme :

mkfifo audio.wav
mv audio.wav film_temp # Pas pratique ce dossier film_temp, et pas vraiment utile.
mplayer -vo null $id_a -ao pcm:file=film_temp/audio.wav "${movie_name}" & lame -V2 film_temp/audio.wav film_temp/audio.mp3
rm -f film_temp/audio.wav


---------------
La réponse est 42
Reply

Marsh Posté le 18-12-2010 à 08:34:19    

Merci pour ta réponse.
Eh bien je vais le renseigner de ce pas pour ces fichiers fifo, que je ne connaissais pas.
Concernant le dossier "film_temp", je l'ai mis en place parce qu'il me permet s'effacer tous les temporaires en une seule commande, du moins c'est la méthode la plus simple que je connaisse. Si c'est son nom qui te dérange, il est ainsi parce que j'ai pris en compte le fait que les personnes nomment souvent leurs dossiers temporaires "tmp" ou "temp" et je ne voulais pas interférer avec leur organisation.
Maintenant si le fichier fifo crée n'est pas trop gros, je vais voir pour tout mettre dans le /tmp de Linux... Qu'en penses tu ?


Message édité par lo@hn le 18-12-2010 à 08:39:24

---------------
Sauvez les arbres : mangez du castor
Reply

Marsh Posté le 18-12-2010 à 14:19:00    

La taille d'un fichier fifo est de 0. Il s'agit d'un tube nommé, Le fichier audio est décompressé et injecté directement dans Lame qui le convertit en mp3. À propos 'transcode' est le nom d'un autre programme, tu devrais en changer.


---------------
La réponse est 42
Reply

Marsh Posté le 18-12-2010 à 15:14:29    

Merci pour ces précisions, je fais les corrections des que je reviens de mes courses de Noël :) Je profiterai des files d'attente aux caisses pour réfléchir à un nouveau nom...


Message édité par lo@hn le 18-12-2010 à 15:15:00

---------------
Sauvez les arbres : mangez du castor
Reply

Marsh Posté le 20-12-2010 à 16:17:36    

Voilà, corrections faites, utilisation du dossier /tmp et amélioration du logfile

 

Disponible >>ici<<, les avis sont les bienvenus


Message édité par lo@hn le 24-12-2010 à 00:46:24

---------------
Sauvez les arbres : mangez du castor
Reply

Marsh Posté le 20-12-2010 à 18:50:27    

Plutôt que :

# Transformaton du nom de fichier en .avi
path="${movie_name}"
while [ "$path" != "${path#*/}" ]; do
 path="${path#*/}"
 echo $path
done
path="${path%.*}"
path="${path}.avi"


Pourquoi pas :

INPUT_FILE="${movie_name##*/}" # Le nom du fichier en entrée sans son chemin
OUPUT_FILE="${INPUT_FILE%.*}".avi # Le nom du fichier AVI en sortie sans son chemin


Et puis j'aime pas trop l'utilisation de 'path' en variable alors qu'il y a déjà PATH en variable du shell.


---------------
La réponse est 42
Reply

Marsh Posté le 23-12-2010 à 13:06:32    

Voilà c'est modifié... Encore merci pour tes corrections.
Nouvelle mouture dispo au même endroit


---------------
Sauvez les arbres : mangez du castor
Reply

Marsh Posté le 23-12-2010 à 19:21:44    

echo "Informations système :
`cat /proc/cpuinfo | grep "model name"`
`cat /proc/meminfo | grep MemTotal`


Useless use of cat

grep "model name" /proc/cpuinfo | uniq # Pour éviter d'avoir 3 fois la même ligne sur un tri-proc
grep MemTotal /proc/meminfo


---------------
La réponse est 42
Reply

Marsh Posté le 24-12-2010 à 00:45:57    

twocats a écrit :

Useless use of cat


 
Ah, ça quand on copie des commandes, parfois on fait des trucs inutiles ;)
 
Merci, correction faite


---------------
Sauvez les arbres : mangez du castor
Reply

Marsh Posté le 24-12-2010 à 00:45:57   

Reply

Marsh Posté le 24-12-2010 à 17:17:12    

Petites améliorations envisageables pour éviter les erreurs de saisie :

# fonction de choix de la piste audio à encoder
function choix_audio(){
 echo -e "\n\n=== Choix du flux audio ===\n"
 lit_flux "-aid"
 read -p "Quel flux voulez vous tester ? [ ou |Q|uitter ]" touche
 
# On cherche le nombre de pistes audio
AUDIO_SEARCH=$(grep -cF aid /tmp/info.txt)
 
# On vérifie la validité du choix de piste
while [[ ${touche} -ge ${AUDIO_SEARCH} || ${touche} = [^[:digit:]] ]]
do
 # On quitte sur demande
 case ${touche} in
  q* | Q*) echo -e "Quitte sans erreur."; rm -f /tmp/flux.txt /tmp/info.txt; exit 0 ;;
 esac
 
 echo -e "Entrée incorrecte. Veuillez recommencer."
 read -p "Quel flux voulez vous tester ? " touche
done
 
 id_a="-aid $touche"
 echo -e "\nlecture du film avec les nouveaux paramètres"
 pause
 mplayer $id_a $id_s "${movie_name}"
}


A faire de la même manière pour le choix des sous-titres.


---------------
La réponse est 42
Reply

Marsh Posté le 25-12-2010 à 10:44:09    

Je modifierai ça après les digestions de Noël

 

Par contre, 2 petites questions sur tes corrections :

 

- pourquoi grep -cF et pas simplement grep -c ?

 

- le dossier /tmp se réinitialisant au redémarrage, faut il supprimer les fichiers crées ? J'ai remarqué que tu me le proposais systématiquement. Est ce un question d'espace disque, de propreté de programme ou une simple déformation professionnelle ? ;)


Message édité par lo@hn le 25-12-2010 à 10:44:32

---------------
Sauvez les arbres : mangez du castor
Reply

Marsh Posté le 25-12-2010 à 11:52:04    

Citation :

- pourquoi grep -cF et pas simplement grep -c ?


C'est sans doute de l'enc***ge de mouches... grep recherche une chaîne de caractères fixe et pas une variable à interpréter, il est plus rapide.

Citation :

- le dossier /tmp se réinitialisant au redémarrage


Taratata ! Ubuntu centrisme ! Pas sur toutes les distributions. Et il y a parfois dans mon /tmp de vielles choses qui traînent (crash, redémarrage brutal, bug logiciel).
Quand je fais un script je préfère largement créer un dossier caché dans mon HOME avec des sous-dossiers /tmp et /log.


Message édité par twocats le 25-12-2010 à 13:56:45

---------------
La réponse est 42
Reply

Marsh Posté le 28-12-2010 à 10:44:44    

Citation :

C'est sans doute de l'enc***ge de mouches... grep recherche une chaîne de caractères fixe et pas une variable à interpréter, il est plus rapide.


Bah, comme dit, j'apprends, donc en***ge de mouches ou pas, ces précisions peuvent toujours être utiles. Ici, ok, c'est sans grand intérêt, mais qui sait, dans un prochain script....

Citation :

Taratata ! Ubuntu centrisme ! Pas sur toutes les distributions.


Ok, ça je savais pas... Faut que je me détache du "www.chezmoicamarche.com"... Noté ;)

Citation :

Quand je fais un script je préfère largement créer un dossier caché dans mon HOME avec des sous-dossiers /tmp et /log.


Rhaaa et moi qui avais supprimé mon répertoire film_temp :p

 


Message édité par lo@hn le 28-12-2010 à 10:45:43

---------------
Sauvez les arbres : mangez du castor
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed