mkv2box : Lire un mkv h264/x264 sur Freebox sans ré-encoder !

mkv2box : Lire un mkv h264/x264 sur Freebox sans ré-encoder ! - Logiciels - Linux et OS Alternatifs

Marsh Posté le 18-06-2008 à 01:35:18    

Bonjour à tous,
Sachant que la Freebox HD sait décoder le h264/x264 et l'AAC des chaines HD je me suis dit qu'il devait être possible de faire la même chose avec des mkv contenant ces mêmes codecs en changeant le format d'encapsulation. Après quelques recherches j'ai découvert qu'il y avait ce qu'il faut pour cela sous Linux. J'ai donc rédigé un petit script qui rends lisible et a priori parfaitement fluide un mkv h264/x264 transformé en flux TS. La vidéo n'est pas ré-encoder, il n'y a donc aucune perte de qualité. La piste audio par contre pose des problèmes, dans mes tests elle ne passe pas sans que je puisse en déterminer la raison. Elle est donc systèmatiquement ré-encoder en AC3 dans le script que voici :

Citation :

#!/bin/bash
 
cd "$(pwd)"
 
for i in *.mkv
do
 y=$(echo "${i}" | sed 's/mkv$/ts/')
 
 #Analyse du fichier
 mkvmerge -i "${i}" > /tmp/tracks.list
 AUDIO_ID=$(grep audio < /tmp/tracks.list | awk '{print $3}' | sed 's/://')
 AUDIO_FORMAT=$(grep "${AUDIO_ID}: audio" < /tmp/tracks.list | awk '{print $5}' | sed 's/(//; s/)//; s/\// /' | cut -f 2 -d "_" )
 VIDEO_ID=$(grep video < /tmp/tracks.list | awk '{print $3}' | sed 's/://')
 FPS_ID=$(mkvinfo "${i}"  | grep -A 11 "Track type: video" | grep fps | awk '{print $6}' | sed 's/^(//')
 
 #Analyse et convertion audio
 if [[ "${AUDIO_FORMAT}" = "AAC" ]]
 then
  #Extraction audio
  mkvextract tracks "${i}" ${AUDIO_ID}:audio.aac
 else
  #Transcodage audio
  ffmpeg -i "${i}" -ab 192k audio.aac
 fi
 
 #Extraction vidéo
 mkvextract tracks "${i}" ${VIDEO_ID}:video.h264
 
 #Multiplexage des pistes au format MP4
 MP4Box -tmp /tmp -add video.h264:fps=${FPS_ID} -add audio.aac video.mp4
 
 #Transcodage audio en AC3 et encapsulation en MPEG TS
 vlc -Idummy "video.mp4" --sout '#transcode{acodec=a52,ab=192,channels=2}:std{access=file,dst='"${y}"',mux=ts}' vlc://quit
 
 #Le fichier est maintenant lisible sur Freebox
 rm -f /tmp/tracks.list audio.aac video.h264 video.mp4
done


Copiez ce script dans le répertoire où se trouve vos mkv à convertir et lancez-le. Le fichier TS en sortit sera fluide sur Freebox, le son synchro. Sur un fichier de test en 1280x720 il faut 5 à 10 secondes pour que le film s'affiche (soyez patients).
Ils vous faut :
mkvtoolnix (mkvmerge, mkvextract, mkvinfo)
ffmpeg
MP4Box (du paquet gpac : http://gpac.sourceforge.net/ )
vlc
 
J'attends avec impatience vos retours de tests !
 
P.S.: la ligne de commande de vlc étant particulièrement obscure  :whistle: y aurait-il une bonne âme  pour m'indiquer la syntaxe pour multiplexer un flux vidéo et un flux audio séparés en un fichier TS (sans les ré-encoder) ?


Message édité par twocats le 30-06-2008 à 22:33:00

---------------
La réponse est 42
Reply

Marsh Posté le 18-06-2008 à 01:35:18   

Reply

Marsh Posté le 19-06-2008 à 16:20:16    

merci pour ton script, je testerai quand j'aurai un moment :)

Reply

Marsh Posté le 19-06-2008 à 18:02:08    

pariel ca m interesse beaucoup !
(tu dois surement connaitre mais voici des exemples que la freebox sait lire)
http://alkasar.online.fr/


Message édité par tekilaz le 20-06-2008 à 19:45:42

---------------
=-Galerie Photo=- // Tekilaz :: Trop bon, Trop con... // FEEDB4CK
Reply

Marsh Posté le 20-06-2008 à 14:57:27    

Idem, belle initiative!


---------------
--
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed