Aller au contenu

Mkv Merge - How To?


Hayholten

Messages recommandés

Re!

Désolé pour la redite bud mais il est vrai qu'étant novice, je pensais à un problème de script. Car avec celui-ci (une ancienne version de travail évoquée plus tôt dans ce thread):

#!/bin/ash
SHARE=video

if [ -z "$1" ] 
	then
		echo "Il faut preciser le repertoire a scanner"
		exit
	else
		CHECK_USER=$(whoami)
		if [ "$CHECK_USER" == "root" ]
		then 
				eval find "$*" -name *.fr.srt |while read SRTNAME
				do
					echo "Fichier SRT trouve :" "$SRTNAME"
					VIDNAME=$(ls "${SRTNAME%.fr.*}"*|grep -E '.avi|.mp4|.mkv')
					if [ -f "$VIDNAME" ]
						then
							echo "Video trouve" "$VIDNAME"
							OUTNAME="${SRTNAME%.fr.*}".mkv
							if [ "$VIDNAME" == "$OUTNAME" ]
								then 
									echo ""$VIDNAME" existe deja. Renommage avec .subbed"
									OUTNAME="${SRTNAME%.fr.*}".subbed.mkv
							fi
							echo "fichier de sortie" "$OUTNAME"
							# read -p 'Merge des fichiers ? (o/n)' MAJ </dev/tty
							# if [ "$MAJ" == "o" ]
								# then
									/opt/bin/mkvmerge -o "$OUTNAME" "$VIDNAME" --language 0:fre "$SRTNAME"
									echo "Ajout a l index"
									/usr/syno/bin/synoindex -a "$OUTNAME"
									/bin/chmod 777 "$OUTNAME"
									/bin/chown admin:users "$OUTNAME"
									echo "Suppression de l index" 
									/usr/syno/bin/synoindex -d "$VIDNAME"
									if [ -f "$OUTNAME" ]
										then
											echo Suppression de "$VIDNAME" "$SRTNAME"
											mv "$VIDNAME" /volume1/$SHARE/#recycle
											mv "$SRTNAME" /volume1/$SHARE/#recycle
									fi
								else
									echo "Pas de merge"
							fi
						# else
							# echo "Pas de fichier "$VIDNAME" trouve en .avi ou .mkv"
					# fi
				done 
		else
			echo "Ce script doit etre lance avec le user root"
			exit
		fi
fi

... les merges de fichier avec accent ne fonctionnaient pas (certes) mais mkvmerge me laissait quand même les fichiers en place.

Alors qu’avec ma VDef:

#!/bin/ash
SHARE=video

if [ -z "$1" ] 
	then
		echo "Il faut preciser le repertoire a scanner"
		exit
	else
		CHECK_USER=$(whoami)
		if [ "$CHECK_USER" == "root" ]
		then 
				eval find "$*" -name *.fr.srt |while read SRTNAME
				do
					echo "Fichier SRT trouve :" "$SRTNAME"
					VIDNAME=$(ls "${SRTNAME%.fr.*}"*|grep -E '.avi|.mp4|.mkv')
					if [ -f "$VIDNAME" ]
						then
							echo "Video trouve" "$VIDNAME"
							OUTNAME="${SRTNAME%.fr.*}".mkv
							if [ "$VIDNAME" == "$OUTNAME" ]
								then 
									echo ""$VIDNAME" existe deja. Renommage avec .subbed"
									OUTNAME="${SRTNAME%.fr.*}".subbed.mkv
							fi
							echo "fichier de sortie" "$OUTNAME"
							# read -p 'Merge des fichiers ? (o/n)' MAJ </dev/tty
							# if [ "$MAJ" == "o" ]
								# then
									ANSI_SUB=$(/opt/bin/isutf8 "$SRTNAME" |wc -l)
									if [ $ANSI_SUB != "0" ]
									then
									/opt/bin/mkvmerge -o "$OUTNAME" -S "$VIDNAME" --sub-charset 0:iso-8859-1 --language 0:fre "$SRTNAME"
									else
									/opt/bin/mkvmerge -o "$OUTNAME" -S "$VIDNAME" --language 0:fre "$SRTNAME"
									fi
                                                                        if [ -f "$OUTNAME" ]
									echo "Ajout a l index"
									/usr/syno/bin/synoindex -a "$OUTNAME"
									/bin/chmod 777 "$OUTNAME"
									/bin/chown admin:users "$OUTNAME"
									echo "Suppression de l index" 
									/usr/syno/bin/synoindex -d "$VIDNAME"
										then
											echo Suppression de "$VIDNAME" "$SRTNAME"
											mv "$VIDNAME" /volume1/$SHARE/#recycle
											mv "$SRTNAME" /volume1/$SHARE/#recycle
									fi
								else
									echo "Pas de merge et/ou pas de fichier cree"
							fi
						# else
							# echo "Pas de fichier "$VIDNAME" trouve en .avi ou .mkv"
					# fi
				done 
		else
			echo "Ce script doit etre lance avec le user root"
			exit
		fi
fi

... ben non là les fichiers sont mis à la corbeille ;-)

Ce qui est perturbant c'est juste de ne pas comprendre la différence entre les deux (liée à ce problème bien sûr).

Quoi qu'il en soit, ce script ajouté à ton aide me permettent de gagner un temps fou!

Encore mille mercis pour ta patience!!!!! B)

Lien vers le commentaire
Partager sur d’autres sites

  • Réponses 87
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

Au tout début, tu n'avais pas renseigner la valeur de SHARE en 2e ligne

En fait je faisais référence au script de mon précédent commentaire juste au-dessus...

Mais ce que je peux faire est déjà énorme. En plus, j'ai constaté des temps de process quasiment identique (à 10-20 sec près) qu'avec un PC.

Donc cela reste une belle vistoire! ;-)

J'oubliais: qu'est-ce qui nous empêche d'avoir une version plus récente, le développeur?

Lien vers le commentaire
Partager sur d’autres sites

Sans les logs d'exécution, je pourrais pas deviner la différence :)

Ahem, pardon... J'ai pas été très clair en effet.

Pour résumer, je disais qu’avec ce script:

#!/bin/ash
SHARE=video

if [ -z "$1" ] 
	then
		echo "Il faut preciser le repertoire a scanner"
		exit
	else
		CHECK_USER=$(whoami)
		if [ "$CHECK_USER" == "root" ]
		then 
				eval find "$*" -name *.fr.srt |while read SRTNAME
				do
					echo "Fichier SRT trouve :" "$SRTNAME"
					VIDNAME=$(ls "${SRTNAME%.fr.*}"*|grep -E '.avi|.mp4|.mkv')
					if [ -f "$VIDNAME" ]
						then
							echo "Video trouve" "$VIDNAME"
							OUTNAME="${SRTNAME%.fr.*}".mkv
							if [ "$VIDNAME" == "$OUTNAME" ]
								then 
									echo ""$VIDNAME" existe deja. Renommage avec .subbed"
									OUTNAME="${SRTNAME%.fr.*}".subbed.mkv
							fi
							echo "fichier de sortie" "$OUTNAME"
							# read -p 'Merge des fichiers ? (o/n)' MAJ </dev/tty
							# if [ "$MAJ" == "o" ]
								# then
									/opt/bin/mkvmerge -o "$OUTNAME" "$VIDNAME" --language 0:fre "$SRTNAME"
									echo "Ajout a l index"
									/usr/syno/bin/synoindex -a "$OUTNAME"
									/bin/chmod 777 "$OUTNAME"
									/bin/chown admin:users "$OUTNAME"
									echo "Suppression de l index" 
									/usr/syno/bin/synoindex -d "$VIDNAME"
									if [ -f "$OUTNAME" ]
										then
											echo Suppression de "$VIDNAME" "$SRTNAME"
											mv "$VIDNAME" /volume1/$SHARE/#recycle
											mv "$SRTNAME" /volume1/$SHARE/#recycle
									fi
								else
									echo "Pas de merge"
							fi
						# else
							# echo "Pas de fichier "$VIDNAME" trouve en .avi ou .mkv"
					# fi
				done 
		else
			echo "Ce script doit etre lance avec le user root"
			exit
		fi
fi

... je n'ai pas de merge (of course puisque fichier avec accent) mais les fichiers sont conservés.

Côté log:

DiskStation> /scripts/fortoolnix.sh /volume1/video/test

Fichier SRT trouve : "/volume1/video/test/Show - S02.E08 - Épisode.fr.srt"

Video trouve "/volume1/video/test/Show - S02.E08 - Épisode.mkv"

"/volume1/video/test/Show - S02.E08 - Épisode.mkv" existe deja. Renommage avec .subbed

fichier de sortie "/volume1/video/test/Show - S02.E08 - Épisode.subbed.mkv"

mkvmerge v4.2.0 ('No Talking') built on Feb 16 2012 18:15:17

Error: The name of the output file '/volume1/video/test/Show - S02.E08 - Bon' and of one of the input files is the same. This would cause mkvmerge to overwrite one of your input files. This is most likely not what you want.

Ajout a l index

chmod: /volume1/video/test/Show - S02.E08 - Épisode.subbed.mkv: No such file or directory

chown: /volume1/video/test/Show - S02.E08 - Épisode.subbed.mkv: No such file or directory

Suppression de l index

Mais évidement, là je n'ai pas la correction de l'encodage des sous-titres ;-)

Alors qu'avec ma VDef:

#!/bin/ash
SHARE=video

if [ -z "$1" ] 
	then
		echo "Il faut preciser le repertoire a scanner"
		exit
	else
		CHECK_USER=$(whoami)
		if [ "$CHECK_USER" == "root" ]
		then 
				eval find "$*" -name *.fr.srt |while read SRTNAME
				do
					echo "Fichier SRT trouve :" "$SRTNAME"
					VIDNAME=$(ls "${SRTNAME%.fr.*}"*|grep -E '.avi|.mp4|.mkv')
					if [ -f "$VIDNAME" ]
						then
							echo "Video trouve" "$VIDNAME"
							OUTNAME="${SRTNAME%.fr.*}".mkv
							if [ "$VIDNAME" == "$OUTNAME" ]
								then 
									echo ""$VIDNAME" existe deja. Renommage avec .subbed"
									OUTNAME="${SRTNAME%.fr.*}".subbed.mkv
							fi
							echo "fichier de sortie" "$OUTNAME"
							# read -p 'Merge des fichiers ? (o/n)' MAJ </dev/tty
							# if [ "$MAJ" == "o" ]
								# then
									ANSI_SUB=$(/opt/bin/isutf8 "$SRTNAME" |wc -l)
									if [ $ANSI_SUB != "0" ]
									then
									/opt/bin/mkvmerge -o "$OUTNAME" -S "$VIDNAME" --sub-charset 0:iso-8859-1 --language 0:fre "$SRTNAME"
									else
									/opt/bin/mkvmerge -o "$OUTNAME" -S "$VIDNAME" --language 0:fre "$SRTNAME"
									fi
                                                                        if [ -f "$OUTNAME" ]
									echo "Ajout a l index"
									/usr/syno/bin/synoindex -a "$OUTNAME"
									/bin/chmod 777 "$OUTNAME"
									/bin/chown admin:users "$OUTNAME"
									echo "Suppression de l index" 
									/usr/syno/bin/synoindex -d "$VIDNAME"
										then
											echo Suppression de "$VIDNAME" "$SRTNAME"
											mv "$VIDNAME" /volume1/$SHARE/#recycle
											mv "$SRTNAME" /volume1/$SHARE/#recycle
									fi
								else
									echo "Pas de merge et/ou pas de fichier cree"
							fi
						# else
							# echo "Pas de fichier "$VIDNAME" trouve en .avi ou .mkv"
					# fi
				done 
		else
			echo "Ce script doit etre lance avec le user root"
			exit
		fi
fi

... le log est le suivant:

DiskStation> /scripts/fortoolnix.sh /volume1/video/test
Fichier SRT trouve : "/volume1/video/test/Show - S02.E08 - Épisode.fr.srt"
Video trouve "/volume1/video/test/Show - S02.E08 - Épisode.mkv"
"/volume1/video/test/Show - S02.E08 - Épisode.mkv" existe deja. Renommage avec .subbed
fichier de sortie "/volume1/video/test/Show - S02.E08 - Épisode.subbed.mkv"
mkvmerge v4.2.0 ('No Talking') built on Feb 16 2012 18:15:17
Error: The name of the output file '/volume1/video/test/Show - S02.E08 - Bon' and of one of the input files is the same. This would cause mkvmerge to overwrite one of your input files. This is most likely not what you want.
Ajout a l index
chmod: /volume1/video/test/Show - S02.E08 - Épisode.subbed.mkv: No such file or directory
chown: /volume1/video/test/Show - S02.E08 - Épisode.subbed.mkv: No such file or directory
Suppression de l index
Suppression de "/volume1/video/test/Show - S02.E08 - Épisode.mkv" "/volume1/video/test/Show - S02.E08 - Épisode.fr.srt"

Toujours pas de merge, mais les fichiers sont effacés...

J'espère avoir été plus limpide ;-) Ça vient peut-être du déplacement du "bloc if", je vais faire de nouveaux tests (même si évidement là on dans le peaufinage cosmétique)...

Sinon:

Et pour une version plus récente, il faut que le repo IPKG soit à jour

Sinon il faut compiler toi même le programme, ainsi que toutes les dépendences

... ce qui est clairement hors de ma portée! Un jour peut-être... :D

Lien vers le commentaire
Partager sur d’autres sites

Ah !

Le "then" est mal placé. Il doit être juste après la ligne du IF

Yes yes yeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeees! Ça marche! Le merge ne se fait pas MAIS les fichiers sont pas envoyés dans la corbeille!

C'était aussi simple que ça? (J'ai vraiment des choses à apprendre moi)....

Pour info, le bon script est donc:

#!/bin/ash
SHARE=video

if [ -z "$1" ] 
	then
		echo "Il faut preciser le repertoire a scanner"
		exit
	else
		CHECK_USER=$(whoami)
		if [ "$CHECK_USER" == "root" ]
		then 
				eval find "$*" -name *.fr.srt |while read SRTNAME
				do
					echo "Fichier SRT trouve :" "$SRTNAME"
					VIDNAME=$(ls "${SRTNAME%.fr.*}"*|grep -E '.avi|.mp4|.mkv')
					if [ -f "$VIDNAME" ]
						then
							echo "Video trouve" "$VIDNAME"
							OUTNAME="${SRTNAME%.fr.*}".mkv
							if [ "$VIDNAME" == "$OUTNAME" ]
								then 
									echo ""$VIDNAME" existe deja. Renommage avec .subbed"
									OUTNAME="${SRTNAME%.fr.*}".subbed.mkv
							fi
							echo "fichier de sortie" "$OUTNAME"
							# read -p 'Merge des fichiers ? (o/n)' MAJ </dev/tty
							# if [ "$MAJ" == "o" ]
								# then
									ANSI_SUB=$(/opt/bin/isutf8 "$SRTNAME" |wc -l)
									if [ $ANSI_SUB != "0" ]
									then
									/opt/bin/mkvmerge -o "$OUTNAME" -S "$VIDNAME" --sub-charset 0:iso-8859-1 --language 0:fre "$SRTNAME"
									else
									/opt/bin/mkvmerge -o "$OUTNAME" -S "$VIDNAME" --language 0:fre "$SRTNAME"
									fi
                                                                        if [ -f "$OUTNAME" ]
                                                                        then
				 					echo "Ajout a l index"
									/usr/syno/bin/synoindex -a "$OUTNAME"
									/bin/chmod 777 "$OUTNAME"
									/bin/chown admin:users "$OUTNAME"
									echo "Suppression de l index" 
									/usr/syno/bin/synoindex -d "$VIDNAME"
											echo Suppression de "$VIDNAME" "$SRTNAME"
											mv "$VIDNAME" /volume1/$SHARE/#recycle
											mv "$SRTNAME" /volume1/$SHARE/#recycle
									fi
								else
									echo "Pas de merge et/ou pas de fichier cree"
							fi
						# else
							# echo "Pas de fichier "$VIDNAME" trouve en .avi ou .mkv"
					# fi
				done 
		else
			echo "Ce script doit etre lance avec le user root"
			exit
		fi
fi

Et le log:

DiskStation> /scripts/fortoolnix.sh /volume1/video/test

Fichier SRT trouve : "/volume1/video/test/Show - S02.E08 - superépisode.fr.srt"

Video trouve "/volume1/video/test/Show - S02.E08 - superépisode.mkv"

"/volume1/video/test/Show - S02.E08 - superépisode.mkv" existe deja. Renommage avec .subbed

fichier de sortie "/volume1/video/test/Show - S02.E08 - superépisode.subbed.mkv"

mkvmerge v4.2.0 ('No Talking') built on Feb 16 2012 18:15:17

Error: The name of the output file '/volume1/video/test/Show - S02.E08 - super' and of one of the input files is the same. This would cause mkvmerge to overwrite one of your input files. This is most likely not what you want

Je crois avoir fais le tour de la question. Je reviendrais par ici si nécessaire mais je crois franchement qu'on est pas mal. Encore merci bud!!!!!!!! Pas d'autres questions (for now) votre honneur ;)

Lien vers le commentaire
Partager sur d’autres sites

Comme dirais Lucienne : Ben j'f'rai pas çà tout les jours ! ^_^

Rah, je m'en doute ^_^

Mais je me dis qu'avec ce topic la plupart des problème a été abordée et qu'ainsi d'autres pourront se lancer dans l'installation avec un max d'info...

Thanks again bud!!! B)

Lien vers le commentaire
Partager sur d’autres sites

  • 6 mois après...

Coucou!!!

I'm back again ;-)

Je voulais juste partager mon expérience de MKV Merge avec mon Syno.

Grâce aux explications de ce topic tout fonctionne.

À noter toutefois:

1. 1 seul caractère (j'ai testé tout les autres ou presque) produit un mauvais résultat: c'est le "œ" (cœur, sœur, etc.). Le résultat est un carré avec 1 neuf et 4 zéros.

2. La procédure d'installation est à reproduire à chaque MAJ importante du DSM (même mon script est supprimé). Notamment le coup de la LOCALE.

Enfin, j'ai une petite interrogation: le paquet SPK Repository est proposé depuis quelque temps. Ça change quelque chose pour nous?

Merci pour les retours!!

Lien vers le commentaire
Partager sur d’autres sites

Et je me réponds! J'ai contacté le gars et il m'a répondu:

Hey,

thanks for your kind words, and you're welcome.

I'm not the one who provided binaries for NAS devices. I don't have such

devices, therefore I cannot provide them either.


However, there's a more important problem: newer versions of MKVToolNix

require newer versions of gcc (at least v4.6.3), and the last time users

asked about Synology support they said that the only gcc versions

available were older. Meaning: until Synology provides newer compilers

MKVToolNix cannot be compiled on their OS.


Kind regards,

mosu


J'ai pas tout compris mais j'ai l'impression qu'il ne soit pas affaire d'une simple update...
Modifié par Hayholten
Lien vers le commentaire
Partager sur d’autres sites

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.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.


×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.