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 24/04/2008, à 15:21

fredthefrenchy

Réencoder du mkv en m2ts (ou mts) pour PS3

Bonjour,

J'ai des fichiers vidéos en HD en format mkv (x264, VC-1). Le problème est que la PS3 ne lit pas les mkv. Elle lit les avi, divx, mp4 et m2ts (format du bluRay).

J'aimerai bien convertir mes fichiers mkv pour qu'ils puissent être lus par la PS3 sans dégradation de qualité.

Pour les avi, quand je copie la video et l'audio dans le container avi, la PS3 ne peut pas les lire, je pense que c'est parce que le fichier est > 2Go (ils font 4,4 Go en moyenne). Idem pour les mp4. (je les mets sur un DVD UDF). Via mediatomb, c'est pareil : données incompatibles.

Y  a t-il quelqu'un qui a réussi à les lire en les transformant et comment les transformer ?
J'ai déjà lu du m2ts en mettant le fichier sur un DVD UDF (pour avoir un fichier > 1Go) et ça marche bien. Je ne sais pas comment faire un m2ts à partir d'un mkv.

NB : j'ai essayé avec mencoder et avidemux.


CM MSI 990FXA-GD80 - AMD FX8150 8 x 3.6Ghz - G.SKILL KIT EXTREME3 2 X 4 GO PC17000 ARES CAS9 8192 Mo (2133 MHz), 9-11-10-28 - GeForce GTX560 1Go GDDR5 - Ubuntu 16.04 x86-64 dual boot avec W7 64bits

Hors ligne

#2 Le 28/04/2008, à 07:13

fredthefrenchy

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

Up ! Svp, si quelqu'un a une idée


CM MSI 990FXA-GD80 - AMD FX8150 8 x 3.6Ghz - G.SKILL KIT EXTREME3 2 X 4 GO PC17000 ARES CAS9 8192 Mo (2133 MHz), 9-11-10-28 - GeForce GTX560 1Go GDDR5 - Ubuntu 16.04 x86-64 dual boot avec W7 64bits

Hors ligne

#3 Le 29/04/2008, à 16:51

fredthefrenchy

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

C'est bizarre mais j'ai l'impression qu'on ne peut pas faire de m2ts sous linux pour l'instant !

Si ?


CM MSI 990FXA-GD80 - AMD FX8150 8 x 3.6Ghz - G.SKILL KIT EXTREME3 2 X 4 GO PC17000 ARES CAS9 8192 Mo (2133 MHz), 9-11-10-28 - GeForce GTX560 1Go GDDR5 - Ubuntu 16.04 x86-64 dual boot avec W7 64bits

Hors ligne

#4 Le 11/05/2008, à 20:41

keneda

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

bonjour,

pour le moment j'ai une solution windows à te proposé, même pas eu le temps de tester sur Linux (avec wine)

j'utilise le soft 'mkv2vob v2.2.3 - PS3 Video Converter by 3r1c'

Settings:
Video Transcoding: Always
File Splitting: DVD-9
Output File Extension: mpg
Transcoding Codec: X264 (Slow)
Boost AAC Volume: ON
Boost DTS Volume: ON

ensuite je balance mes films convertis avec mon serveur Upnp et ça lit sans problème, qualité au top, aucun pb de synchro.

++

sinon avec 'transcode' ou 'mencoder' il doit y avoir moyen de faire la même chose

#5 Le 15/05/2008, à 16:22

fredthefrenchy

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

keneda a écrit :

bonjour,

pour le moment j'ai une solution windows à te proposé, même pas eu le temps de tester sur Linux (avec wine)

j'utilise le soft 'mkv2vob v2.2.3 - PS3 Video Converter by 3r1c'

Settings:
Video Transcoding: Always
File Splitting: DVD-9
Output File Extension: mpg
Transcoding Codec: X264 (Slow)
Boost AAC Volume: ON
Boost DTS Volume: ON

ensuite je balance mes films convertis avec mon serveur Upnp et ça lit sans problème, qualité au top, aucun pb de synchro.

++

sinon avec 'transcode' ou 'mencoder' il doit y avoir moyen de faire la même chose

C'est pas tout à fait ce que je voulais : convertir mkv en m2ts, pas mkv en VOB.
Pour le VOB, je fais un coup de avidemux qui me convertie le mkv en mpeg2 puis manDVD pour avoir mes VOB mais je perds en qualité (1280x720 -> 720x576) !
Je ne voudrais pas perder en qualité.


CM MSI 990FXA-GD80 - AMD FX8150 8 x 3.6Ghz - G.SKILL KIT EXTREME3 2 X 4 GO PC17000 ARES CAS9 8192 Mo (2133 MHz), 9-11-10-28 - GeForce GTX560 1Go GDDR5 - Ubuntu 16.04 x86-64 dual boot avec W7 64bits

Hors ligne

#6 Le 16/05/2008, à 15:47

cenwen

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

Salut
Transcode peut tout faire ou presque, c'est le couteau suisse du multimedia. Il existe peut-etre quelque chose sur le format mts. Je te conseille d'aller faire un tour sur le site du multimedia pour les linuxiens http://fr.lprod.org/wiki/doku.php. Tu trouveras peut-etre ton bonheur.


Le jour où j'ai découvert le libre, j'ai su que je ne reviendrais jamais en arrière.
The OpenShot Team : http://www.openshotvideo.com/
Mon blog perso sur le multimédia et OpenShot : http://linuxevolution.wordpress.com/
Google+ : https://plus.google.com/u/0/111472725110173916234/posts

Hors ligne

#7 Le 19/05/2008, à 10:32

fredthefrenchy

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

Merci Cenwen,

je connais le site, j'y suis déjà allé notamment pour avidemux.

J'ai trouvé quelque chose chez Doom9 et TSMux, mais pour l'instant, ce n'est pas concluant. Je n'arrive pas à faire un m2ts. Il faut que je réessaye (c'est long et c'est qu'à la fin qu'il dit erreur !!!).


CM MSI 990FXA-GD80 - AMD FX8150 8 x 3.6Ghz - G.SKILL KIT EXTREME3 2 X 4 GO PC17000 ARES CAS9 8192 Mo (2133 MHz), 9-11-10-28 - GeForce GTX560 1Go GDDR5 - Ubuntu 16.04 x86-64 dual boot avec W7 64bits

Hors ligne

#8 Le 21/05/2008, à 10:40

fredthefrenchy

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

keneda a écrit :

bonjour,

pour le moment j'ai une solution windows à te proposé, même pas eu le temps de tester sur Linux (avec wine)

j'utilise le soft 'mkv2vob v2.2.3 - PS3 Video Converter by 3r1c'

Settings:
Video Transcoding: Always
File Splitting: DVD-9
Output File Extension: mpg
Transcoding Codec: X264 (Slow)
Boost AAC Volume: ON
Boost DTS Volume: ON

ensuite je balance mes films convertis avec mon serveur Upnp et ça lit sans problème, qualité au top, aucun pb de synchro.

++

sinon avec 'transcode' ou 'mencoder' il doit y avoir moyen de faire la même chose

J'ai essayé avec wine sans succès ! Il ne veux pas lire les fichiers en entré, y a un problème de config dans wine, je ne suis pas assez calé (wine) pour régler ça.
A priori, cela vient du h.264 qui seraity codé en version 5.1 et la PS3 veut une version 4.1.

Pour l'instant je contourne en faisant du mpeg2 mais je perds en qualité. C'est dommage.
Pour l'uPNP, tu utilises mediatomb ?


CM MSI 990FXA-GD80 - AMD FX8150 8 x 3.6Ghz - G.SKILL KIT EXTREME3 2 X 4 GO PC17000 ARES CAS9 8192 Mo (2133 MHz), 9-11-10-28 - GeForce GTX560 1Go GDDR5 - Ubuntu 16.04 x86-64 dual boot avec W7 64bits

Hors ligne

#9 Le 21/05/2008, à 11:12

KRS

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

j'allais le dire, la psp ne sais pas lire tout les profils h264, il faut donc réencoder complètement la vidéo avec des paramètres cpmpatibel psp, et remettre tout ça dans un mp4.
Tu peux utiliser mencoder ou ffmpeg pour ça, inspire toi des profils psp que tu trouvera sur doom9 pour les paramètre d'encodage du codec x264.

Hors ligne

#10 Le 21/05/2008, à 15:46

fredthefrenchy

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

KRS a écrit :

j'allais le dire, la psp ne sais pas lire tout les profils h264, il faut donc réencoder complètement la vidéo avec des paramètres cpmpatibel psp, et remettre tout ça dans un mp4.
Tu peux utiliser mencoder ou ffmpeg pour ça, inspire toi des profils psp que tu trouvera sur doom9 pour les paramètre d'encodage du codec x264.

Pas PSP, mais PS3 pour moi.

Je tente mkv2vob sous virtualbox. A priori, ça marche .... Ne reste plus qu'à tester sur la PS3 ce soir.


CM MSI 990FXA-GD80 - AMD FX8150 8 x 3.6Ghz - G.SKILL KIT EXTREME3 2 X 4 GO PC17000 ARES CAS9 8192 Mo (2133 MHz), 9-11-10-28 - GeForce GTX560 1Go GDDR5 - Ubuntu 16.04 x86-64 dual boot avec W7 64bits

Hors ligne

#11 Le 06/06/2008, à 18:11

goldbergg

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

heu je suis pas sur a 100% mais pour les fichier .avi de plus de 2Go je croi qu'il faut les copier sur le disque dur de la play3 pour pouvoir les lirent smile

Dernière modification par goldbergg (Le 06/06/2008, à 18:12)

Hors ligne

#12 Le 25/07/2008, à 02:59

Ekinoks

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

Salut !

J'ai trouvé ca, ca peu peu être vous intéresser... (j'ai pas testé donc je sais pas si ca marche) :
http://kdl.nobugware.com/post/2008/07/05/PS3-video-playing-via-DLNA-streaming-with-firmware-240

Hors ligne

#13 Le 25/07/2008, à 04:34

Galileo

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

Salut !
Personnellement je fais exactement l'opération inverse (m2ts => mkv) avec mencoder.

Enfin il se trouve que tu veuilles seulement pouvoir lire tes fichiers sur ta PS3, alors pourquoi vouloir utiliser le format Avchd propriétaire ? Le mp4 est bien plus "standard".

Voici une ligne de commande pour convertir un fichier en mp4 (H.264/AAC) en assumant qu'il contenait déjà du H.264 (ça nous permettra de ne pas réencoder la video) :

mencoder ton_fichier.mkv -ovc copy -oac faac -faacopts br=192 -o  output.mp4

Je te laisse mettre la bonne valeur pour le bitrate audio (option "br=")


Keyboard not found,  press enter to continue :

Hors ligne

#14 Le 25/07/2008, à 16:28

Ekinoks

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

Ce qu'il y a d'intéressant dans le lien que j'ai donnée, c'est qu'il semble faire la conversion à la volé...
C'est a dire que sur le PC on garde le fichier original au format "mkv", et lorsque la PS3 demande de le lire, le PC le converti pour que la PS3 puissent le lire.

Ca évite de devoir à chaque foi faire un coup de memcoder sur les nouveau fichier au format mkv pour les convertir dans un autre format.

Hors ligne

#15 Le 30/07/2008, à 16:37

fredthefrenchy

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

Ekinoks a écrit :

Ce qu'il y a d'intéressant dans le lien que j'ai donnée, c'est qu'il semble faire la conversion à la volé...
C'est a dire que sur le PC on garde le fichier original au format "mkv", et lorsque la PS3 demande de le lire, le PC le converti pour que la PS3 puissent le lire.

Ca évite de devoir à chaque foi faire un coup de memcoder sur les nouveau fichier au format mkv pour les convertir dans un autre format.

C'est intéressant mais à creuser car :

- La conversion audio n'est pas parfaite, on va passer de l'AC3 5.1 à du 2 canaux, donc plus de home cinéma, uniquement de la stéréo.

- La qualité vidéo est figée à 4096kbs.

Si j'utilise tsMUXER (sous XP virtualbox), c'est principalement pour convertir le h.264 layer 5.1 en layer 4.1 car la PS3 ne supporte pas le 5.1.

Je teste la solution ce soir ... wink

Exemple de vidéo mkv à regarder sur PS3 :

General #0
Format                       : Matroska (.mkv)
File size                    : 4.37 GiB
PlayTime                     : 1h 40mn
Bit rate                     : 6228 Kbps

Video #0
Codec                        : AVC
Codec profile                : High@L5.1
PlayTime                     : 1h 40mn
Bit rate                     : 5524 Kbps
Nominal bit rate             : 5777 Kbps
Width                        : 1280 pixels
Height                       : 528 pixels
Frame rate                   : 23.976 fps
Title                        : VIDEO BRD FR

Audio #0
Codec                        : AC3
PlayTime                     : 1h 40mn
Bit rate mode                : CBR
Bit rate                     : 448 Kbps
Channel(s)                   : 6 channels
Channel positions            : Front: L C R, Rear: L R, LFE
Sampling rate                : 48.0 KHz
Title                        : AUDIO AC3 5.1 BRD FR
Language                     : French


CM MSI 990FXA-GD80 - AMD FX8150 8 x 3.6Ghz - G.SKILL KIT EXTREME3 2 X 4 GO PC17000 ARES CAS9 8192 Mo (2133 MHz), 9-11-10-28 - GeForce GTX560 1Go GDDR5 - Ubuntu 16.04 x86-64 dual boot avec W7 64bits

Hors ligne

#16 Le 26/09/2008, à 16:40

fredthefrenchy

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

J'ai trouvé un script h264tobox qui est pas mal :

http://forum.ubuntu-fr.org/viewtopic.ph … 3#p1964823

ca utilise TsMuxer mais sous linux, pas sous windows.

Dernière modification par fredthefrenchy (Le 26/09/2008, à 16:41)


CM MSI 990FXA-GD80 - AMD FX8150 8 x 3.6Ghz - G.SKILL KIT EXTREME3 2 X 4 GO PC17000 ARES CAS9 8192 Mo (2133 MHz), 9-11-10-28 - GeForce GTX560 1Go GDDR5 - Ubuntu 16.04 x86-64 dual boot avec W7 64bits

Hors ligne

#17 Le 11/10/2008, à 15:55

fheible

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

Hors ligne

#18 Le 31/10/2008, à 19:00

jul7

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

g essayer le script h264tobox, cela fonctionne mais il crée un fichier .ts qui n'est pas lisible sur la ps3 sad  Quelqu'un a réussi à convertir un mkv en m2ts sans utiliser xp sous virtual box ?

Hors ligne

#19 Le 04/11/2008, à 20:37

vinzdran

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

je me demandais, la PS3 ne lit pas le format mkv ou certains codecs qui se trouvent dedans ??

si par exemple on a un mkv avec du divx ou xvid dedans, ça ne peut pas marcher ??
en fait ça m'interesse pour ne pas avoir à réencoder pour incruster des sous titres

merci


Ibex 32 bits - Portable HP dv5000 - AMD Turion 64 à 1,8 GHz - ATI X200M - Wifi broadcom 4318 - RAM 1G
Ibex 32 bits - Desktop AMD 64 X2 4600+ à 2,4 Ghz - wifi atheros - ATI X1200 - RAM 1G
Ibex-server - eee box - Atom 1,6 - 160Go - 1G

Hors ligne

#20 Le 04/11/2008, à 22:53

fheible

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

Non, la PS3 ne lit pas le mkv. En revanche, elle lit le mpeg4, divx, xvid, h264, vc-1...

Il faut un conteneur avi ou mp4.

Hors ligne

#21 Le 13/11/2008, à 19:59

fredthefrenchy

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

jul7 a écrit :

g essayer le script h264tobox, cela fonctionne mais il crée un fichier .ts qui n'est pas lisible sur la ps3 sad  Quelqu'un a réussi à convertir un mkv en m2ts sans utiliser xp sous virtual box ?

Celui ci marche chez moi, je ne pense pas que cela vienne du .ts, mais du level 4.1 qui est à forcer.

Voici le script :

#!/bin/bash

#Ce programme est distribué dans l'espoir qu'il puisse
#vous être utile, mais SANS AUCUNE GARANTIE ! ; sans même
#la garantie implicite de MARCHANDABILITÉ ou d'ADÉQUATION
#À UN BESOIN PARTICULIER. Voyez la Licence Publique Générale
#GNU pour plus de détails.

# COULEURS
COLOROFF="\033[1;0m"    # standart color
GREENCOLOR="\033[1;32m"  # green
WHITECOLOR="\033[1;37m"  # white
BLUECOLOR="\033[1;36m"   # blue
DARKBLUECOLOR="\033[1;34m"   # darkblue
REDCOLOR="\033[1;31m" # red
LILACOLOR="\033[1;35m" # lilac
YELLOWCOLOR="\033[1;33m" # yellow

cd "$(pwd)"

# Variables

VERSION="0.3.12"

#Fonctions

GreenLINE()
{
echo -e "${GREENCOLOR}--------------------------------------------------------------${COLOROFF}"
}

AfficherAide()
{
echo "h264tobox ${VERSION} - (c) 2008 Dominique Biendiné."
echo "Téléchargement : http://twocats.free.fr/pub/h264tobox/"
echo
echo "Lancer le script dans le répertoire où se trouvent les fichiers a traiter."
echo
echo "Syntaxe :"
echo
echo -e "\th264tobox -e [OPTION]"
echo
echo "Liste des options utilisables :"
echo -e "\t-e : Permet de choisir l'extension des fichiers a traiter (défaut : mkv, autres : avi, mp4)."
echo -e "\t-h -help --help : Affichage de cette aide."
echo
exit 0
}

Audio4TS()
{
ATSDIALOG_01="La piste audio est au format "${AUDIO_FORMAT}", elle ne sera pas convertie."
ATSDIALOG_02="Convertion de la piste audio "${AUDIO_FORMAT}" vers le format AC3."

#Analyse et conversion audio
case "${AUDIO_FORMAT}" in
	"AAC" | "faad" )
		echo -e "${WHITECOLOR}${ATSDIALOG_01}${COLOROFF}"
		echo
		AUDIO_FORMAT="A_AAC"
		A_EXT="aac"
		;;
	"AC3" | "a52" )
		echo -e "${WHITECOLOR}${ATSDIALOG_01}${COLOROFF}"
		echo
		AUDIO_FORMAT="A_AC3"
		A_EXT="ac3"
		;;
	"MPEG L3" | "mad" )
		echo -e "${WHITECOLOR}${ATSDIALOG_01}${COLOROFF}"
		echo
		AUDIO_FORMAT="A_MP3"
		A_EXT="mp3"
		;;
	"DTS" )
		echo -e "${WHITECOLOR}La piste audio est au format "${AUDIO_FORMAT}".${COLOROFF}"
		echo -e "${WHITECOLOR}Elle peut ne pas être supportée par vôtre lecteur multimédia.${COLOROFF}"
		echo -e "${REDCOLOR}> ${WHITECOLOR}Voulez-vous ${YELLOWCOLOR}:${COLOROFF}"
		echo
		echo -e "${REDCOLOR}*${WHITECOLOR} Garder la piste telle quelle\t\t ${GREENCOLOR}[ ${YELLOWCOLOR}1 ${GREENCOLOR}]"
		echo -e "${REDCOLOR}*${WHITECOLOR} La convertir au format AC3\t\t ${GREENCOLOR}[ ${YELLOWCOLOR}2 ${GREENCOLOR}]"
		echo -e "${REDCOLOR}*${WHITECOLOR} Quitter\t\t\t\t\t\t ${GREENCOLOR}[ ${REDCOLOR}Q ${GREENCOLOR}]"
		read "DTS_ID"
		echo
		case "${DTS_ID}" in
			0 | q* | Q*) echo -e "${WHITECOLOR}Quitte sans erreur.${COLOROFF}"; exit 0 ;;
			1 ) AUDIO_FORMAT="A_DTS"; A_EXT="dta" ;;
			2 ) 	echo -e "${WHITECOLOR}Veuillez patienter...${COLOROFF}"
				echo
				MAP_ID=$(( AUDIO_ID - 1 ))
				ffmpeg -i "${i}" -map 0.${ATRACK_ID} -ab ${ABITRATE_ID}k AUDIO_TRACK.ac3 2>/dev/null
				AUDIO_FORMAT="A_AC3"
				A_EXT="ac3"
				ControlAUD
				;;
		esac
		;;
	* )
		#Transcodage audio
		echo -e "${WHITECOLOR}${ATSDIALOG_02}${COLOROFF}"
		echo -e "${WHITECOLOR}Veuillez patienter...${COLOROFF}"
		echo
		MAP_ID=$(( AUDIO_ID - 1 ))
		ffmpeg -i "${i}" -map 0.${ATRACK_ID} -ab ${ABITRATE_ID}k AUDIO_TRACK.ac3 2>/dev/null
		AUDIO_FORMAT="A_AC3"
		A_EXT="ac3"
		ControlAUD
		;;
esac

}

BuildTS()
{
GreenLINE
echo -e "${REDCOLOR}> ${WHITECOLOR}Génération du fichier META ${YELLOWCOLOR}:${COLOROFF}"
echo -e "${WHITECOLOR}"
cat stream.meta
echo -e "${COLOROFF}"

#Multiplexage au format MPEG TS
GreenLINE
echo -e "${REDCOLOR}> ${WHITECOLOR}Multiplexage des pistes au format MPEG TS.${COLOROFF}"
echo -e "${WHITECOLOR}Veuillez patienter...${COLOROFF}"
echo
tsMuxeR stream.meta videofolder/"${y}" > /tmp/tsMuxerR.log
}

ControlAUD()
{
if [[ ! -f "AUDIO_TRACK.${A_EXT}" ]]
then
	mv /tmp/tracks.list /tmp/tracks.list.log
	echo -e "${WHITECOLOR}Une erreur est survenue lors de l'extraction de la piste audio du fichier ${YELLOWCOLOR}"${i}"${WHITECOLOR}.${COLOROFF}"
	echo -e "${WHITECOLOR}Vous pouvez consulter le fichier de log /tmp/tracks.list.log pour plus d'information.${COLOROFF}"
	echo -e "${WHITECOLOR}Arrêt du programme.${COLOROFF}"
	exit 1
elif [[ ! -s "AUDIO_TRACK.${A_EXT}" ]]
then
	mv /tmp/tracks.list /tmp/tracks.list.log
	echo -e "${WHITECOLOR}La piste audio du fichier ${YELLOWCOLOR}"${i}"${WHITECOLOR} a été créée mais son poids est nul.${COLOROFF}"
	echo -e "${WHITECOLOR}Arrêt du programme.${COLOROFF}"
	exit 1
fi
}

ControlVID()
{
if [[ ! -f "VIDEO_TRACK.h264" ]]
then
	mv /tmp/tracks.list /tmp/tracks.list.log
	echo -e "${WHITECOLOR}Une erreur est survenue lors de l'extraction de la piste vidéo du fichier ${YELLOWCOLOR}"${i}"${WHITECOLOR}.${COLOROFF}"
	echo -e "${WHITECOLOR}Vous pouvez consulter le fichier de log /tmp/tracks.list.log pour plus d'information.${COLOROFF}"
	echo -e "${WHITECOLOR}Arrêt du programme.${COLOROFF}"
	exit 1
elif [[ ! -s "VIDEO_TRACK.h264" ]]
then
	mv /tmp/tracks.list /tmp/tracks.list.log
	echo -e "${WHITECOLOR}La piste vidéo du fichier ${YELLOWCOLOR}"${i}"${WHITECOLOR} a été créée mais son poids est nul.${COLOROFF}"
	echo -e "${WHITECOLOR}Arrêt du programme.${COLOROFF}"
	exit 1
fi
}

ControlSUB()
{
if [[ ! -f "videofolder/"${y}"-${SUB_ID}.srt" ]]
then
	cp /tmp/sub.list /tmp/sub.list.log
	echo -e "${WHITECOLOR}Une erreur est survenue lors de la création du fichier ${YELLOWCOLOR}""${y}"-${SUB_ID}.srt"${WHITECOLOR}.${COLOROFF}"
	echo -e "${WHITECOLOR}Vous pouvez consulter le fichier de log /tmp/sub.list.log pour plus d'information.${COLOROFF}"
	echo -e "${WHITECOLOR}Le programme continue.${COLOROFF}"
elif [[ ! -s "videofolder/"${y}"-${SUB_ID}.srt" ]]
then
	cp /tmp/sub.list /tmp/sub.list.log
	echo -e "${WHITECOLOR}Le fichier ${YELLOWCOLOR}""${y}"-${SUB_ID}.srt"${WHITECOLOR} a été créé mais son poids est nul.${COLOROFF}"
	echo -e "${WHITECOLOR}Le programme continue.${COLOROFF}"
fi
}

MkvtoTS()
{
#Nom en sortie
y=$(echo "${i}" | sed 's/mkv$/ts/; s/MKV$/ts/')

#Analyse du fichier
GreenLINE
echo -e "${REDCOLOR}> ${WHITECOLOR}Traitement du fichier ${YELLOWCOLOR}"${i}"${WHITECOLOR}.${COLOROFF}"
echo
mkvmerge -i "${i}" > /tmp/tracks.list

#Vérification du codec vidéo
if [[ "$(egrep video < /tmp/tracks.list | egrep AVC)" ]]
then
	echo -e "${WHITECOLOR}La piste vidéo est au format H264.${COLOROFF}"
else
	echo -e "${WHITECOLOR}La piste vidéo n'est PAS au format H264 !${COLOROFF}"
	echo -e "${WHITECOLOR}Arrêt du programme.${COLOROFF}"
	exit 1
fi

#Recherche pistes audio
if [[ ! "${SELECT_ATRACK}" ]]
then
	AUDIO_SEARCH=$(egrep ": audio" < /tmp/tracks.list | nl | awk '{print $1}' | tail -n 1)
	if [[ "${AUDIO_SEARCH}" = "1" ]]
	then
		ATRACK_ID="1"
		SELECT_ATRACK="off"
	else
		echo -e "${WHITECOLOR}Il y a ${AUDIO_SEARCH} pistes audio dans "${i}" ${YELLOWCOLOR}:${COLOROFF}"

		echo "$(mkvinfo "${i}" | egrep -B 2 "Audio track" | egrep "Language" | cut -d " " -f 4-5 | nl)"

		echo -ne "${REDCOLOR}> ${WHITECOLOR}Entrez le numéro de la piste audio à extraire ${GREENCOLOR}[ ${WHITECOLOR}ou |Q|uitter ${GREENCOLOR}] ${YELLOWCOLOR}:${COLOROFF}"
		read ATRACK_ID
		echo
		case ${ATRACK_ID} in
			q* | Q*) echo -e "${WHITECOLOR}Quitte sans erreur.${COLOROFF}"; exit 0 ;;
		esac
		echo -e "${REDCOLOR}> ${WHITECOLOR}Voulez-vous rendre ce choix |c|onstant (pour tous les fichiers du répertoire) ou |u|nique (pour ce seul fichier) ? ${GREENCOLOR}[ ${WHITECOLOR}c/U ${GREENCOLOR}] ${YELLOWCOLOR}:${COLOROFF}"
		read "PARAM_ID"
		echo
		case "${PARAM_ID}" in
			c* | C*) SELECT_ATRACK="off" ;;
		esac
	fi
fi

AUDIO_ID=$(egrep "audio" < /tmp/tracks.list | egrep -n audio | egrep ^${ATRACK_ID} | awk '{print $3}' | sed 's/://')
AUDIO_FORMAT=$(egrep "${AUDIO_ID}: audio" < /tmp/tracks.list | awk '{print $5}' | sed 's/(//; s/)//; s/\// /' | cut -f 2 -d "_")
VIDEO_ID=$(egrep video < /tmp/tracks.list | awk '{print $3}' | sed 's/://')
FPS_ID=$(mkvinfo "${i}"  | egrep -A 11 "Track type: video" | egrep fps | awk '{print $6}' | sed 's/^(//')

Audio4TS

#Recherche sous-titres
SUB_SEARCH=$(egrep ": subtitles" < /tmp/tracks.list | egrep S_TEXT | nl | awk '{print $1}' | tail -n 1)

if [[ "${SUB_SEARCH}" ]]
then
	GreenLINE
	echo -e "${REDCOLOR}> ${WHITECOLOR}Détection des sous-titres.${COLOROFF}"
	echo -e "${WHITECOLOR}\tLes sous-titres au format VOBSUB sont ignorés.${COLOROFF}"
	echo -e "${WHITECOLOR}\tLes autres formats sont convertis si besoin est.${COLOROFF}"
	echo
	echo -e "${WHITECOLOR}Il y a ${SUB_SEARCH} fichier(s) de sous-titres dans ${YELLOWCOLOR}"${i}"${WHITECOLOR}.${COLOROFF}"
	echo
fi

GreenLINE
echo -e "${REDCOLOR}> ${WHITECOLOR}Extraction des pistes.${COLOROFF}"
echo -e "${WHITECOLOR}Veuillez patienter...${COLOROFF}"

#Extraction audio
if [[ ! -f "AUDIO_TRACK.ac3" ]]
then
	echo -e "${WHITECOLOR}"
	mkvextract tracks "${i}" ${AUDIO_ID}:AUDIO_TRACK.${A_EXT}
	echo -e "${COLOROFF}"
	#Contrôle de l'extraction audio
	ControlAUD
fi

#Extraction vidéo
echo -e "${WHITECOLOR}"
mkvextract tracks "${i}" ${VIDEO_ID}:VIDEO_TRACK.h264
echo -e "${COLOROFF}"

#Contrôle de l'extraction vidéo
ControlVID

#Extraction des sous-titres
if [[ "${SUB_SEARCH}" ]]
then
	egrep S_TEXT < /tmp/tracks.list | egrep -n ": subtitles" > /tmp/sub.list
	while [[ "${SUB_SEARCH}" -gt "0" ]]
	do
		SUB_ID=$(egrep ^${SUB_SEARCH} < /tmp/sub.list | cut -f 3 -d " " | sed 's/://')
		echo -e "${WHITECOLOR}"
		mkvextract tracks "${i}" ${SUB_ID}:SUB${SUB_ID}.DUMP
		echo -e "${COLOROFF}"
		SUB_FORMAT=$(egrep ^${SUB_SEARCH} < /tmp/sub.list | cut -f 5 -d " " | sed 's/(//; s/\///; s/)//; s/S_TEXT//')
		if [[ "${SUB_FORMAT}" = "ASS" ]]
		then
			GreenLINE
			echo -e "${REDCOLOR}> ${WHITECOLOR}Convertion des sous-titres au format SRT.${COLOROFF}"
			echo -e "${WHITECOLOR}Veuillez patienter...${COLOROFF}"
			echo
			mplayer -ao null -vo null -frames 0 -nolirc -stop-xscreensaver -nocache "${i}" -sub SUB${SUB_ID}.DUMP -dumpsrtsub > /dev/null 2>&1
			mv dumpsub.srt videofolder/"${y}"-${SUB_ID}.srt
			rm -f SUB${SUB_ID}.DUMP
		else
			mv SUB${SUB_ID}.DUMP videofolder/"${y}"-${SUB_ID}.srt
		fi
		SUB_SEARCH=$(( SUB_SEARCH - 1 ))
		rm -f SUB${SUB_ID}.DUMP
		ControlSUB
	done
rm -f /tmp/sub.list
fi
}

Mp4toTS()
{
#Nom en sortie
y=$(echo "${i}" | sed 's/mp4$/ts/; s/MP4$/ts/')

#Analyse du fichier
GreenLINE
echo -e "${REDCOLOR}> ${WHITECOLOR}Traitement du fichier ${YELLOWCOLOR}"${i}"${WHITECOLOR}.${COLOROFF}"
echo
mplayer -ao null -vo null -frames 0 -nolirc -stop-xscreensaver -nocache -identify "${i}" 2>/dev/null > /tmp/tracks.list

#Vérification du codec vidéo
if [[ "$(egrep ID_VIDEO_CODEC < /tmp/tracks.list | cut -d "=" -f 2)" = "ffh264" ]]
then
	echo -e "${WHITECOLOR}La piste vidéo est au format H264.${COLOROFF}"
else
	echo -e "${WHITECOLOR}La piste vidéo n'est PAS au format H264 !${COLOROFF}"
	echo -e "${WHITECOLOR}Arrêt du programme.${COLOROFF}"
	exit 1
fi

AUDIO_ID=$(egrep ID_AUDIO_ID < /tmp/tracks.list | cut -d "=" -f 2 | awk '{A_ID=$1+1; print A_ID}')
AUDIO_FORMAT=$(egrep ID_AUDIO_CODEC < /tmp/tracks.list | cut -d "=" -f 2)
VIDEO_ID=$(egrep ID_VIDEO_ID < /tmp/tracks.list | cut -d "=" -f 2 | awk '{V_ID=$1+1; print V_ID}')
FPS_ID=$(egrep ID_VIDEO_FPS < /tmp/tracks.list | cut -d "=" -f 2)

Audio4TS

GreenLINE
echo -e "${REDCOLOR}> ${WHITECOLOR}Extraction des pistes.${COLOROFF}"
echo -e "${WHITECOLOR}Veuillez patienter...${COLOROFF}"
echo

#Extraction audio
AUDIO_SEARCH=$(egrep "audio" < /tmp/tracks.list | nl | awk '{print $1}' | tail -n 1)
if [[ ! -f "AUDIO_TRACK.ac3" ]]
then
	mp4creator "${i}" -extract=${AUDIO_ID}

	#Contrôle de l'extraction audio
	mv "${i}".t${AUDIO_ID} AUDIO_TRACK.${A_EXT}
	ControlAUD
fi

#Extraction vidéo
mp4creator "${i}" -extract=${VIDEO_ID}

#Contrôle de l'extraction vidéo
mv "${i}".t${VIDEO_ID} VIDEO_TRACK.h264
ControlVID
}

AvitoTS()
{
#Nom en sortie
y=$(echo "${i}" | sed 's/avi$/ts/; s/AVI$/ts/')

#Analyse du fichier
GreenLINE
echo -e "${REDCOLOR}> ${WHITECOLOR}Traitement du fichier ${YELLOWCOLOR}"${i}"${WHITECOLOR}.${COLOROFF}"
echo
mplayer -ao null -vo null -frames 0 -nolirc -stop-xscreensaver -nocache -identify "${i}" 2>/dev/null > /tmp/tracks.list

#Vérification du codec vidéo
if [[ "$(egrep ID_VIDEO_CODEC < /tmp/tracks.list | cut -d "=" -f 2)" = "ffh264" ]]
then
	echo -e "${WHITECOLOR}La piste vidéo est au format H264.${COLOROFF}"
else
	echo -e "${WHITECOLOR}La piste vidéo n'est PAS au format H264 !${COLOROFF}"
	echo -e "${WHITECOLOR}Arrêt du programme.${COLOROFF}"
	exit 1
fi

AUDIO_FORMAT=$(egrep ID_AUDIO_CODEC < /tmp/tracks.list | cut -d "=" -f 2)
FPS_ID=$(egrep ID_VIDEO_FPS < /tmp/tracks.list | cut -d "=" -f 2)

Audio4TS

GreenLINE
echo -e "${REDCOLOR}> ${WHITECOLOR}Extraction des pistes.${COLOROFF}"
echo -e "${WHITECOLOR}Veuillez patienter...${COLOROFF}"
echo

#Extraction vidéo
ffmpeg -i "${i}" -an -vcodec copy VIDEO_TRACK.h264 2>/dev/null

#Contrôle de l'extraction vidéo
ControlVID

#Extraction audio
ffmpeg -i "${i}" -vn -acodec copy AUDIO_TRACK.${A_EXT} 2>/dev/null

#Contrôle de l'extraction audio
ControlAUD
}

clear

case "$1" in
	"-h" | "-help" | "--help" ) AfficherAide; exit 0 ;;
esac

while getopts a:e: option
do
	case $option in
		"a" ) ABITRATE_ID="$OPTARG" ;;
		"e" ) EXT_ID="$OPTARG" ;;
	esac
done

GreenLINE
echo -e "${WHITECOLOR}h264tobox ${YELLOWCOLOR}${VERSION} ${WHITECOLOR}- (c) 2008 Dominique Biendiné.${COLOROFF}"
echo

#Tests des dépendances
for prog in tsMuxeR ffmpeg mkvmerge mkvinfo mkvextract mplayer
do
	if [[ ! -x "$(which ${prog} 2>/dev/null)" ]]
	then
		echo -e "${REDCOLOR}-> ${WHITECOLOR}Le programme ${YELLOWCOLOR}${prog} ${WHITECOLOR}n'a pas été trouvé. Veuillez vérifier qu'il est bien installé.${COLOROFF}"
		echo -e "${WHITECOLOR}Arrêt du programme.${COLOROFF}"
		exit 1
	fi
done

if [[ ! -x "$(which mp4creator 2>/dev/null)" ]]
then
	echo -e "${REDCOLOR}-> ${WHITECOLOR}Le programme ${YELLOWCOLOR}mp4creator ${WHITECOLOR}n'a pas été trouvé.${COLOROFF}"
	echo -e "${WHITECOLOR}Vous ne pourrez pas utiliser les fonctions liées au MP4.${COLOROFF}"
fi

#Création du répertoire de destination
[[ ! -d "videofolder" ]] && mkdir videofolder

[[ ! "${ABITRATE_ID}" ]] && ABITRATE_ID="192"

[[ ! "${EXT_ID}" ]] && EXT_ID="mkv"

for i in *."${EXT_ID}"
do
	#Vérification de la présence des fichiers au format voulu
	if [[ ! -f "${i}" ]]
	then
		echo -e "${WHITECOLOR}Il n'y a aucun fichier ${YELLOWCOLOR}"${EXT_ID}" ${WHITECOLOR}dans le répertoire courant.${COLOROFF}"
		echo -e "${WHITECOLOR}Arrêt du programme.${COLOROFF}"
		exit 1
	fi
	case "${EXT_ID}" in
		avi | AVI ) AvitoTS ;;
		mkv | MKV ) MkvtoTS ;;
		mp4 | MP4 ) Mp4toTS ;;
		* ) echo -e "${WHITECOLOR}Format non géré.${COLOROFF}"; AfficherAide; exit 1 ;;
	esac

	#Génération du fichier META (safe mode ;-) )
	echo "MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr --split-size=4.4GB --vbv-len=500" > stream.meta
	echo "V_MPEG4/ISO/AVC, "VIDEO_TRACK.h264", fps=${FPS_ID}, level=4.1, insertSEI, contSPS, track=1" >> stream.meta
	echo "${AUDIO_FORMAT}, "AUDIO_TRACK.${A_EXT}", track=2" >> stream.meta

	BuildTS

	#Contrôle du multiplexage
	if [[ ! "$(egrep "Mux successful complete" < /tmp/tsMuxerR.log)" ]]
	then
		echo -e "${WHITECOLOR}Le multiplexage a échoué. On force le ré-encodage audio au format AC3.${COLOROFF}"
		echo -e "${WHITECOLOR}Veuillez patienter...${COLOROFF}"
		rm -f stream.meta videofolder/"${y}"
		ffmpeg -i "AUDIO_TRACK.${A_EXT}" -ab ${ABITRATE_ID}k AUDIO_TRACKDEBUG.ac3 2>/dev/null

		# Contrôle Debug
		if [[ ! -s "AUDIO_TRACKDEBUG.ac3" ]]
		then
			mv /tmp/tracks.list /tmp/tracks.list.log
			echo -e "${WHITECOLOR}La piste audio du fichier ${YELLOWCOLOR}"${i}"${WHITECOLOR} a été créée mais son poids est nul.${COLOROFF}"
			echo -e "${WHITECOLOR}Arrêt du programme.${COLOROFF}"
			exit 1
		fi
		echo "MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr --split-size=4.4GB --vbv-len=500" > stream.meta
		echo "V_MPEG4/ISO/AVC, "VIDEO_TRACK.h264", fps=${FPS_ID}, level=4.1, insertSEI, contSPS, track=1" >> stream.meta
		echo "A_AC3, "AUDIO_TRACKDEBUG.ac3", track=2" >> stream.meta
		BuildTS
		rm -f AUDIO_TRACKDEBUG.ac3 /tmp/tsMuxerR.log
	fi

	#Contrôle du fichier TS final
	if [[ -s "videofolder/"${y}"" ]]
	then
		echo -e "${WHITECOLOR}Création du fichier ${YELLOWCOLOR}"${y}" ${WHITECOLOR}terminée ${GREENCOLOR}:-)${COLOROFF}"
		echo
		if [[ -f "videofolder/"${y}"-${SUB_ID}.srt" ]]
		then
			GreenLINE
			echo -e "${REDCOLOR}> ${WHITECOLOR}Ajout de l'extension AVI pour la lecture des sous-titres.${COLOROFF}"
			echo -e "${WHITECOLOR}\tLes sous-titres portent le numéro de leurs TRACK ID.${COLOROFF}"
			echo -e "${WHITECOLOR}\tVeuillez les renommer si besoin est.${COLOROFF}"
			mv videofolder/"${y}" videofolder/"${y}".avi
		fi
	else
		echo -e "${WHITECOLOR}Une erreur est survenue !${COLOROFF}"
		echo -e "${WHITECOLOR}Arrêt du programme.${COLOROFF}"
		exit 1
	fi
	rm -f /tmp/tracks.list AUDIO_TRACK.${A_EXT} VIDEO_TRACK.h264 stream.meta /tmp/tsMuxerR.log
done

h264tobox est fait pour la Xbox. Pour la PS3, il faut absolument avoir du level 4.1 donc j'ai rajouté level=4.1 dans la génération des fichiers meta.

J'utilise Nero burning pour créer des DVD UDF 2.6 afin de mettre les fichiers .ts qui peuvent aller jusqu'à 7Go.

Dernière modification par fredthefrenchy (Le 14/11/2008, à 10:11)


CM MSI 990FXA-GD80 - AMD FX8150 8 x 3.6Ghz - G.SKILL KIT EXTREME3 2 X 4 GO PC17000 ARES CAS9 8192 Mo (2133 MHz), 9-11-10-28 - GeForce GTX560 1Go GDDR5 - Ubuntu 16.04 x86-64 dual boot avec W7 64bits

Hors ligne

#22 Le 26/11/2008, à 23:59

twocats

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

Bonjour fredthefrenchy,

Je suis l'auteur de h264tobox et je te remercie de l'intérêt que tu porte à mon script.
Je ne possède pas de PS3 pour faire des tests et j'aimerais savoir si tes modifications sont efficaces afin de les intégrer au script. J'aimerais également savoir quel est le bitrate audio maximum supporté par une PS3 (192 kb ?).

Merci d'avance.

http://twocats.free.fr/pub/h264tobox/


La réponse est 42

Hors ligne

#23 Le 01/12/2008, à 12:46

fredthefrenchy

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

Twocats, milles mercis pour ton script, mes adaptations sont mineures : forçage du level 4.1

Je pense que la PS3 supporte en audio au moins le 192 kb puisse que Mediatomb utilise ce bitrate pour le transcodage sur PS3.

En tout cas, je n'ai jamais eu de problème pour lire les films sur la PS3 avec ce script.


CM MSI 990FXA-GD80 - AMD FX8150 8 x 3.6Ghz - G.SKILL KIT EXTREME3 2 X 4 GO PC17000 ARES CAS9 8192 Mo (2133 MHz), 9-11-10-28 - GeForce GTX560 1Go GDDR5 - Ubuntu 16.04 x86-64 dual boot avec W7 64bits

Hors ligne

#24 Le 08/12/2008, à 18:59

jul7

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

fredthefrenchy, j'utilise ton script modifié mais j'ai un message d'erreur qui me dit :

"Can't determine size for file videofolder/movie.split.1.ts
Une erreur est survenue !
Arrêt du programme."

le fichier .ts obtenu est lisible avec vlc mais impossible de le voir sur la ps3 avec mediatomb sad
j'ai rater qq chose hmm
@+

Hors ligne

#25 Le 09/12/2008, à 12:41

fredthefrenchy

Re : Réencoder du mkv en m2ts (ou mts) pour PS3

On ne peut as lire les .ts avec mediatomb, il faut les graver sur des DVD R/W ou ROM avec UDF 2.5 ou 2.6 .

Pour le "can't dtermine size, j'en sais rien, je n'ai pas ce genre d'erreur.


CM MSI 990FXA-GD80 - AMD FX8150 8 x 3.6Ghz - G.SKILL KIT EXTREME3 2 X 4 GO PC17000 ARES CAS9 8192 Mo (2133 MHz), 9-11-10-28 - GeForce GTX560 1Go GDDR5 - Ubuntu 16.04 x86-64 dual boot avec W7 64bits

Hors ligne