Metagames

Vieux 27/12/2008, 03h08   #1 (permalink)
Profil
Membre
Ancienneté  80%
Ancienneté 80%
 
Date d'inscription: mai 2006
Localisation: Rouen
Âge: 36
Pays :
Messages: 675
Téléchargements: 0
Uploads: 0
Merci: 1
Remercié 14 fois dans 7 Posts
Envoyer un message via ICQ à Wolfi Envoyer un message via AIM à Wolfi
Par défaut Réencapsuler mkv en m2ts sous linux

Salut! J'apporte ma petit contribution, car j'ai vu qu'on avait des tuto pour tsmuxergui (windows), super outil, mais pas pour tsmuxer sous linux. J'ai fait quelques scripts sh qui réencapsule n'importe quel fichier bizarre (avi[h264,dolby],mkv[h264,dts] par exemple) en m2ts lisible sur ps3, donc les voicis tels quels, j'essayerai de fournir une liste des paquets a installer.

1. mkvTOm2ts
Citation:
#!/bin/bash
#
# Utilisation: mkvtom2ts filename.mkv

AUDIO_LANGS="fre jpn eng und"


BASENAME=$(basename "$1" .mkv)
DEST_FILE=$BASENAME.m2ts

MPEG4_TRACK_NO=`mkvinfo "$1" | grep V_MPEG4/ISO/AVC -B10 | grep Track\ number\:\ | awk '{ print $5 }'`

#detection du format des pistes audio a l'aide de mkvinfo, trouvable dans mkvtoolnix
for AUDIO_LANG in $AUDIO_LANGS
do
AC3_TRACK_NO=`mkvinfo "$1" | grep A_AC3 -B10 -C3 | grep Language\:\ $AUDIO_LANG -B13 | grep Track\ number\:\ | awk '{ print $5 }'`
DTS_TRACK_NO=`mkvinfo "$1" | grep A_DTS -B10 -C3 | grep Language\:\ $AUDIO_LANG -B13 | grep Track\ number\:\ | awk '{ print $5 }'`
MP3_TRACK_NO=`mkvinfo "$1" | grep A_MPEG/L3 -B10 -C3 | grep Language\:\ $AUDIO_LANG -B13 | grep Track\ number\:\ | awk '{ print $5 }'`
if [ -n "$AC3_TRACK_NO" -o -n "$DTS_TRACK_NO" ]
then
break
fi
done

echo "Video(V_MPEG4/ISO/AVC) track no : $MPEG4_TRACK_NO"
echo "Audio(A_AC3) $AUDIO_LANG track no : $AC3_TRACK_NO"
echo "Audio(A_DTS) $AUDIO_LANG track no : $DTS_TRACK_NO"
echo "Audio(A_MPEG/L3) $AUDIO_LANG track no : $MP3_TRACK_NO"
#audio ac3->direct muxing
if [[ $AC3_TRACK_NO -gt "0" ]]
then
echo "AC3 - Dolby Digital, muxage direct"
rm -f mux.meta
echo "MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr" >>mux.meta
echo "V_MPEG4/ISO/AVC, "$1", level=4.1, insertSEI, contSPS, track=$MPEG4_TRACK_NO, lang=eng" >>mux.meta
echo "A_AC3, "$1", track=$AC3_TRACK_NO, lang=eng" >>mux.meta
tsMuxeR mux.meta $DEST_FILE
rm -f mux.meta
else
if [[ $DTS_TRACK_NO -gt "0" ]]
then
echo "DTS détecté, encodage en Dolby (AC3)"
mkvextract tracks "$1" $DTS_TRACK_NO:"$BASENAME.dts" $MPEG4_TRACK_NO:"$BASENAME.mpeg4"
dcadec -r -o wavall "$BASENAME.dts" > "$BASENAME.wav"
aften "$BASENAME.wav" "$BASENAME.ac3"
echo "Muxing..."
rm -f mux.meta
echo "MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr" >>mux.meta
echo "V_MPEG4/ISO/AVC, "$BASENAME.mpeg4", level=4.1, insertSEI, contSPS, track=1, lang=eng" >>mux.meta
echo "A_AC3, "$BASENAME.ac3", track=1, lang=eng" >>mux.meta
tsMuxeR mux.meta $DEST_FILE
rm -f mux.meta $BASENAME.dts $BASENAME.wav $BASENAME.ac3 $BASENAME.mpeg4
else
if [[ $MP3_TRACK_NO -gt "0" ]]
then
echo "MP3 détecté, qu'on encode en ac3..."
mkvextract tracks "$1" $MP3_TRACK_NO:"$BASENAME.mp3" $MPEG4_TRACK_NO:"$BASENAME.mpeg4"
echo "Converting to AC3..."
echo "Phase 1 : Wav..."
mpg123 -w $BASENAME.wav $BASENAME.mp3
echo "Phase 2 : Wav2AC3..."
aften "$BASENAME.wav" "$BASENAME.ac3"
echo "Now muxing into m2ts..."
rm -f mux.meta
echo "MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr" >>mux.meta
echo "V_MPEG4/ISO/AVC, "$BASENAME.mpeg4", level=4.1, insertSEI, contSPS, track=1, lang=eng" >>mux.meta
echo "A_AC3, "$BASENAME.ac3", track=1, lang=eng" >>mux.meta
tsMuxeR mux.meta $DEST_FILE
rm -f mux.meta $BASENAME.ac3 $BASENAME.wav $BASENAME.mpeg4 $BASENAME.mp3
else
echo "Rien de connu en audio, on arrete"
fi
fi
fi
2. mp4TOm2ts - cas ou on aurait un mp4 avec un profile louche

Citation:
#!/bin/bash
#Made by Wolfi@kyubi-wolf
#You're free to modify /copy / distribute / re-use it without any authorisation !

BASENAME=$(basename "$1" .mp4)
if [ ${BASENAME:0:1} = "[" ]
then
echo "Error, then file should not start by [ !! Rename the file!"
else

DEST_FILE=$BASENAME.m2ts
AAC=`MP4Box -info $1 | grep "AAC"`

if [[ -n $AAC ]]
then
echo "AAC detected"
ATRACKID=`MP4Box -info $1 | grep soun -C1 | grep TrackID | awk '{ print $7 }'`
AUDIO=$BASENAME.aac
ENCO="faad $AUDIO -o $AUDIO.wav"
else
ATRACKID=`MP4Box -info $1 | grep soun -C1 | grep TrackID | awk '{ print $7 }'`
AUDIO=$BASENAME.mp3
ENCO="mpg123 -w $AUDIO.wav $AUDIO"
fi
VTRACKID=`MP4Box -info $1 | grep vide -C1 | grep TrackID | awk '{ print $7 }'`
VIDEO=$BASENAME.h264

echo "Extracting video stream..."
MP4Box -raw $VTRACKID $1 -out $VIDEO
echo "Extracting audio stream..."
MP4Box -raw $ATRACKID $1 -out $AUDIO

echo "Converting to AC3..."
echo "Phase 1 : Wav..."
$ENCO
echo "Phase 2 : Wav2AC3..."
aften -b 128 "$AUDIO.wav" "$AUDIO.ac3"

echo "Now muxing into m2ts..."
rm -f mux.meta
echo "MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr" >>mux.meta
echo "V_MPEG4/ISO/AVC, "$VIDEO", level=4.1, insertSEI, contSPS, track=1, lang=eng" >>mux.meta
echo "A_AC3, "$AUDIO.ac3", track=1, lang=eng" >>mux.meta
#echo "S_PGS, fichier.pgs">>mux.meta
tsMuxeR mux.meta $DEST_FILE
echo "Cleaning temp files..."
rm -f mux.meta $AUDIO $VIDEO $AUDIO.ac3 $VIDEO $AUDIO.wav
fi
3.aviTOm2ts - au cas ou on aurait un h264+mp3 non reconnu par la ps3
Citation:
#!/bin/bash
#Made by Wolfi@kyubi-wolf
#You're free to modify /copy / distribute / re-use it without any authorisation !

BASENAME=$(basename "$1" .avi)
DEST_FILE=$BASENAME.m2ts

AUDIO=$BASENAME.mp3
ENCO="mpg123 -w $AUDIO.wav $AUDIO"

VIDEO=$BASENAME.h264

echo "Extracting video stream..."
mplayer -dumpvideo -dumpfile $VIDEO $1
echo "Extracting audio stream..."
mplayer -dumpaudio -dumpfile $AUDIO $1

echo "Converting to AC3..."
echo "Phase 1 : Wav..."
$ENCO
echo "Phase 2 : Wav2AC3..."
aften -b 128 "$AUDIO.wav" "$AUDIO.ac3"

echo "Now muxing into m2ts..."
rm -f mux.meta
echo "MUXOPT --no-pcr-on-video-pid --new-audio-pes --vbr" >>mux.meta
echo "V_MPEG4/ISO/AVC, "$VIDEO", level=4.1, insertSEI, contSPS, track=1, lang=eng" >>mux.meta
echo "A_AC3, "$AUDIO.ac3", track=1, lang=eng" >>mux.meta
#echo "S_PGS, fichier.pgs">>mux.meta
tsMuxeR mux.meta $DEST_FILE
echo "Cleaning temp files..."
rm -f mux.meta $AUDIO $VIDEO $AUDIO.ac3 $VIDEO $AUDIO.wav
Si ces scripts vous interessent, téléchargez tsmuxer sur le site officiel de l'editeur, et etudiez un peu les scripts, il vous faudra entre autre:
aften
mkvtoolnix
mplayer
mpg123
MP4Box

Surtout, si vous avez des améliorations à proposer, n'hesitez pas!!! J'ai conscience que ces scripts sont vraiment bourrins, j'ai passé pas mal de temps à les faire pour qu'ils marchent avec des vidéos que je rencontre souvent (episodes de manga surtout )
et donc ils ne marchent peut être pas avec des videos plus exotiques!
__________________
le loup est un loup pour le loup

Nintendo: N64, NGC
Sega: Dreamcast
Sony: PSP, PS3

Dernière modification par Wolfi ; 26/06/2009 à 17h08.
Wolfi est déconnecté   Réponse avec citation
Vieux 30/12/2008, 15h43   #2 (permalink)
Profil
Membre
Ancienneté  87%
Ancienneté 87%
 
Date d'inscription: mai 2006
Messages: 24
Téléchargements: 0
Uploads: 0
Merci: 0
Remercié 0 fois dans 0 Posts
Par défaut

Merci m'sieur !
Parce que pour le moment linux a l'air d'être un peu le parent pauvre des outils "all in one" de conversion... (vive la ligne de commande ;-)

Mais malheureusement je n'arrive pas à faire fonctionner correctement TsMuxer chez moi sous nux... (problème de lib...)
masterbox est déconnecté   Réponse avec citation
Réponse
Précédent   Metagames > Univers Playstation > Playstation 3 > Les Tutoriels PS3

Outils de la discussion
Modes d'affichage

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non


Discussions similaires
Discussion Auteur Forum Réponses Dernier message
Sous-titres dans fichier .m2TS lindewell Playstation 3 0 21/03/2009 11h33
Revenir sous Linux? galou94 Playstation 3 2 25/07/2007 12h02
Encodage AVC sous linux + bricolage général sous linux phentex Playstation Portable 3 22/01/2007 14h46
Xbox sous linux phoenix38 Xbox 11 06/11/2006 17h59
Linux sous Gamecube Invité Game Cube 0 29/10/2005 20h21


Fuseau horaire GMT +1. Il est actuellement 13h56.


© 2003-2018 MetaGames. Tous droits réservés.