tocks Posté(e) le 15 décembre 2012 Posté(e) le 15 décembre 2012 Bonjour, Je voudrais réaliser un script pour mon synology, mais j'ai un problème des le début. mon code : #!/bin/bash #Parametrage de iconv (piconv dans le syno) FROM=iso-8859-1 TO=UTF-8 ICONV="piconv -f $FROM -t $TO" funcx () { echo $1 } funcx $1 Exécution : Data> sh script.sh azertyui azertyui Data> sh script.sh /volume1/homes/admin/test/toto/Saison 07/ /volume1/homes/admin/test/toto/Saison Data> Je ne comprend pas pourquoi cela ne m'affiche pas bien mon paramètre ? Si quelqu'un pouvait m'expliquer ce serait super . 0 Citer
devildant Posté(e) le 16 décembre 2012 Posté(e) le 16 décembre 2012 bonjour, c'est a cause du '' de 'Saison 07/'. pour corriger le problème soit : 1) vous appeler votre script avec des double quote (") comme ceci : Data> sh script.sh "/volume1/homes/admin/test/toto/Saison 07/" 2) essayer de faire un echo "$1" dans votre script (je ne suis pas sur que sa marche): #!/bin/bash #Parametrage de iconv (piconv dans le syno) FROM=iso-8859-1 TO=UTF-8 ICONV="piconv -f $FROM -t $TO" funcx () { echo "$1" } funcx "$1" cordialement 0 Citer
CoolRaoul Posté(e) le 16 décembre 2012 Posté(e) le 16 décembre 2012 (modifié) pour corriger le problème soit Attention: ce n'est pas une alternative: les items "1" et "2" doivent être *tous les deux* appliqués: 1) vous appeler votre script avec des double quote (") comme ceci : 2) essayer de faire un echo "$1" dans votre script (je ne suis pas sur que sa marche): Le "2" n'est donc pas optionnel: pour que les espaces soient préservés, toujours mettre les évaluations de variables entre doubles quotes, comme ceci: "$variable" P.S: étant donné que bash n'est pas natif sous DSM, remplacer la 1ere ligne de ton script par: #! /bin/ash ou #! /bin/sh t'évitera d'avoir à le lancer par "sh <nom script>" pour le faire directement par "./<nom script>" (ou "<nom script>" si il est dans un des répertoire du PATH) P.S. #2 merci de m'avoir fait découvrir que la commande "piconv" était native sous DSM, je n'avais jamais remarqué jusqu'ici. Comme quoi on apprend toujours! Modifié le 16 décembre 2012 par CoolRaoul 0 Citer
tocks Posté(e) le 16 décembre 2012 Auteur Posté(e) le 16 décembre 2012 merci de votre aide J'ai bien avancé sur mon script. une fois fini je le mettrai pour que tous le monde en profite. Le but du script est de scanner tous les répertoires des séries et d'intégrer les sous titres dans les mkv. Moi j'en ais besoin pour lire mes séries sur ma freebox . J'ai donc suivit ce que j'ai trouvé sur le net. 1 ) convertir le fichier srt 2) l'intégrer avec mkvmerge Mais une fois que j'ai converti le fichier mkvmerge n'en veut plus. Alors que si j'utilise le fichier srt de base cela fonctionne. C'est étape sert a quoi alors ? piconv -f iso-8859-1 -t UTF-8 base.srt >> temp.srt mkvmerge -v -o destination-STRF.mkv source.mkv --sub-charset 0:ISO-8859 --language 0:fre temp.Srt Mais si je fait l'étape piconv le fichier est refusé par mkvmerge ? Avez vous une idée du pourquoi? 0 Citer
CoolRaoul Posté(e) le 16 décembre 2012 Posté(e) le 16 décembre 2012 (modifié) Mais si je fait l'étape piconv le fichier est refusé par mkvmerge ? Avez vous une idée du pourquoi? (ne le prend pas spécifiquement pour toi mais à force .... on se lasse) Ça devient une habitude de dire "ça ne marche pas" ou comme ici "le fichier est refusé" sans prendre la peine de copier/coller le message d'erreur rencontré. Met-toi un peu la place de ceux qui cherchent a aider! Pourquoi donner aussi peu d'information? Modifié le 16 décembre 2012 par CoolRaoul 0 Citer
Sp@r0 Posté(e) le 16 décembre 2012 Posté(e) le 16 décembre 2012 Allez je joue au devinette :) en plus sans connaître du tt le sujet Mais si je comprend bien la première commande piconv converti le jeu de caractères du sous titre en UTF8 et dans la commande du dessous tu essaye d'ajouter un sous titre avec le jeu de caractère iso8859 alors que tu viens de le convertir en utff8 .... Pas très logique tt cela !!! 0 Citer
tocks Posté(e) le 16 décembre 2012 Auteur Posté(e) le 16 décembre 2012 (modifié) Je comprend ce que tu pense, mais si je viens poser une question c'est forcément que j'ai un problème.... Je te donne plus d'info alors y a pas de problème : Data> ll drwxrwxrwx 2 admin users 4096 Dec 16 22:51 . drwxrwxrwx 5 admin users 4096 Dec 16 19:30 .. -rw-rw-rw- 1 admin users 1982732255 Dec 5 18:29 S07E01-popo-epid.mkv -rw-rw-rw- 1 admin users 59579 Dec 6 02:30 S07E01-popo-epid.srt -rwxrwxrwx 1 admin users 3235 Dec 16 20:14 script.sh Data> piconv -f iso-8859-1 -t UTF-8 S07E01-popo-epid.srt >> temp.srt Data> mkvmerge -v -o destination.mkv S07E01-popo-epid.mkv --sub-charset 0:ISO-8859 --language 0:fre temp.srt mkvmerge v4.2.0 ('No Talking') built on Feb 14 2012 14:16:48 Error: The file 'temp.srt' has unknown type. Please have a look at the supported file types ('mkvmerge --list-types') and contact the author Moritz Bunkus <moritz@bunkus.org> if your file type is supported but not recognized properly. Data> mkvmerge -v -o destination.mkv S07E01-popo-epid.mkv --sub-charset 0:ISO-8859 --language 0:fre S07E01-popo-epid.srt mkvmerge v4.2.0 ('No Talking') built on Feb 14 2012 14:16:48 matroska_reader: Found the head... matroska_reader: + a segment... matroska_reader: |+ segment information... matroska_reader: | + timecode scale: 1000000 matroska_reader: | + duration: 3247.286s matroska_reader: | + writing app: mkvmerge v5.8.0 ('No Sleep / Pillow') built on Sep 2 2012 15:37:04 matroska_reader: |+ found cluster, headers are parsed completely matroska_reader: |+ segment m_tracks... matroska_reader: | + a track... matroska_reader: | + Track number: 1 matroska_reader: | + Track UID: 1 matroska_reader: | + Default duration: 41.708ms ( = 23.976 fps) matroska_reader: | + Track type: video matroska_reader: | + Pixel width: 1280 matroska_reader: | + Pixel height: 714 matroska_reader: | + Display width: 1280 matroska_reader: | + Display height: 714 matroska_reader: | + Codec ID: V_MPEG4/ISO/AVC matroska_reader: | + CodecPrivate, length 43 matroska_reader: | + MinCache: 1 matroska_reader: | + Lacing flag: 0 matroska_reader: | + a track... matroska_reader: | + Track number: 2 matroska_reader: | + Track UID: 15053433562687775111 matroska_reader: | + Default duration: 32.000ms ( = 31.250 fps) matroska_reader: | + Track type: audio matroska_reader: | + Audio track matroska_reader: | + Sampling frequency: 48000 matroska_reader: | + Channels: 6 matroska_reader: | + Codec ID: A_AC3 matroska_reader: Track 1 seems to be ok. matroska_reader: Track 2 seems to be ok. 'S07E01-popo-epid.mkv': Using the Matroska demultiplexer. 'S07E01-popo-epid.srt': Using the SRT subtitle reader. Warning: 'S07E01-popo-epid.srt' track 0: Warning in line 3488: The start timecode is smaller than that of the previous entry. All entries from this file will be sorted by their start time. 'S07E01-popo-epid.mkv' track 1: Using the MPEG-4 part 10 (AVC) video output module. 'S07E01-popo-epid.mkv' track 2: Using the AC3 output module. Warning: Could not initialize the iconv library for the conversion from ISO-8859 to UFT-8. Some strings will not be converted to UTF-8 and the resulting Matroska file might not comply with the Matroska specs (error: 22, Invalid argument). Warning: Could not initialize the iconv library for the conversion from UFT-8 to ISO-8859. Some strings cannot be converted from UTF-8 and might be displayed incorrectly (error: 22, Invalid argument). 'S07E01-popo-epid.srt' track 0: Using the text subtitle output module. The file 'destination.mkv' has been opened for writing. Voila le retour de mkvmerge ok Sp@r0, c'est les commandes que j'ai trouvé sur le net. de plus dans : piconv -f iso-8859-1 -t UTF-8 base.srt >> temp.srt f est la source du code et t la destination, donc normalement c'est bon je me contente de les appliquer... Modifié le 16 décembre 2012 par tocks 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.