Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1795 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script transcodage mkv => avi - need testeurs !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script transcodage mkv => avi - need testeurs !

n°1256002
lo@hn
Und bin im Wasser verbrannt
Posté le 16-12-2010 à 00:58:15  profilanswer
 

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
mood
Publicité
Posté le 16-12-2010 à 00:58:15  profilanswer
 

n°1256531
twocats
Posté le 18-12-2010 à 01:05:01  profilanswer
 

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
n°1256539
lo@hn
Und bin im Wasser verbrannt
Posté le 18-12-2010 à 08:34:19  profilanswer
 

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
n°1256567
twocats
Posté le 18-12-2010 à 14:19:00  profilanswer
 

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
n°1256574
lo@hn
Und bin im Wasser verbrannt
Posté le 18-12-2010 à 15:14:29  profilanswer
 

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
n°1256962
lo@hn
Und bin im Wasser verbrannt
Posté le 20-12-2010 à 16:17:36  profilanswer
 

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
n°1256967
twocats
Posté le 20-12-2010 à 18:50:27  profilanswer
 

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
n°1257541
lo@hn
Und bin im Wasser verbrannt
Posté le 23-12-2010 à 13:06:32  profilanswer
 

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


---------------
Sauvez les arbres : mangez du castor
n°1257670
twocats
Posté le 23-12-2010 à 19:21:44  profilanswer
 

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
n°1257721
lo@hn
Und bin im Wasser verbrannt
Posté le 24-12-2010 à 00:45:57  profilanswer
 

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
mood
Publicité
Posté le 24-12-2010 à 00:45:57  profilanswer
 

n°1257915
twocats
Posté le 24-12-2010 à 17:17:12  profilanswer
 

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
n°1257940
lo@hn
Und bin im Wasser verbrannt
Posté le 25-12-2010 à 10:44:09  profilanswer
 

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
n°1257948
twocats
Posté le 25-12-2010 à 11:52:04  profilanswer
 

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
n°1258115
lo@hn
Und bin im Wasser verbrannt
Posté le 28-12-2010 à 10:44:44  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script transcodage mkv => avi - need testeurs !

 

Sujets relatifs
script unix ajoutant la date à chaque nouvelle ligneScript Bash: cut/sed?
Script Bash : Gestion des erreursProblème d'exécution script bash
script de demarrage sous solaris10[Script] Demande de conseil
Script FTP synchronisation de répertoire distantScript shell ftp
Comment mettre la reponse à un script dans la commande ? 
Plus de sujets relatifs à : Script transcodage mkv => avi - need testeurs !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR