Voy a explicar un poco lo que entiendo yo, jaja...
Los videos MKV que se encuentran por ahí suelen ser H264 (avc) con audiO AC3.
El codec AVC tiene definidos varios profiles, y para cada profiles, unos niveles.
Los videos que nos encontramos son:
MKV: AVC high profile @ level 5.1 + audio AC3
MKV es simplemente un formato contenedor. No es estandar, pero es muy eficaz ya que acepta pistas de audio AC3, cosa que el contenedor estándar (el mp4) no acepta.
Lo que la ps3 reproduce es
MP4: AVC high profile @ level 4.x + audio AAC/MP3/etc
Dado que la ps3 si que acepta esa pista de video, lo que hay que hacer es poner esa pista de video en un contenedor MP4, y trascodificar el audio a AAC.
Lo primero es sacar del MKV las pistas de audio y de video con mkvextract. Esto nos dará, al menos, una pista de video .h264 y una pista de audio .ac3.
Audio
Por eso es que hay que recodificar el audio. Como el XMB no va a sacarte el audio de un mp4 en 6 canales (5.1), pos pa eso lo paso a stereo que me ahorro mas tiempo/espacio/etc.
Se puede hacer de varias formas
En linux, yo lo que hago es:
AC3(5.1)->WAV(stereo)->AAC(stereo)
Lo que pasa es que el WAV intermedio suele ser bastante grande, aunque tiene que haber algun "Pipeline" que me ahorre todo esto jeje
En windows se puede hacer de varias formas:
- Abrir el archivo con nero wave editor (solo en abrirlo tarda una eternidad) y guardarlo como "Nero Digital" (que es un AAC al fin y al cabo)
- Usar BeLight. El instalador de la ultima version viene con todo lo necesario (los encoders y eso) que se necesitan. Para pasar a AAC se pueden usar el FAAC (el mismo que en linux) o el de Nero (que me parece que hay que tenerlo instalado).
El profile del AAC tendrá que ser "LC" (low complexity) y el bitrate no debe superar los 160kbps (si se pone más, la ps3 no lo reproducirá).
Video
El nivel con el que está marcado el archivo, es sólo eso, una "etiqueta". Cada nivel debe "contener" al anterior. Por eso casi TODOS los videos que hay por ahí son nivel 5.1.. porque es el más alto! Esto no significa que la ps3 sea malísima por no soportarlo, ni que el video sea avanzadísimo por ser nivel 5.1. Lo más probable, es que el video en realidad sea compatible con algún nivel inferior.
Por algún sitio está la tabla, pero no se con que herramientas se puede determinar el "nivel mínimo permitido" para un stream de video en h264. El nivel simplemente funciona como un "límite" para que el reproductor determine si es capaz de reproducirlo o no, y depende de las opciones que se utilizaron al codificar el video. Por eso, si al cambiar el nivel a 4.1, sigue funcionando perfectamente y se ve, lo más probable es que en verdad sea nivel 4.1. También os encontraréis por ahí que un video con nivel 5.1 "pasado a 4.1" no se ve, o se ve fatal en la ps3.. esto será porque seguramente era 5.1 y nopuede ser inferior. En realidad, si el video se ve, no estamos "engañando" a la ps3... más bien estaríamos corrigiendo el nivel en el video. Si el video no se ve, a lo mejor es que sí que era 5.1 y la estamos cagando y no hay nada que hacer.
Las formas para cambiar el nivel (en el archivo .h264) son:
- usando h264info
- Usando un editor hexadecimal. El que yo uso es el "010 hex editor", porque abre los archivos directamente (viene bien para archivos enormes). Hay que buscar los bytes "64 00" (en hexadecimal). Tiene que ser la primera ocurrencia, casi al principio del archivo. Esto es, si el archivo es high profile. En caso de que fuera main profile, habrá que buscar "4D 00". El siguiente byte inmediato será el nivel. Es "33" (en hexadecimal) para el 5.1. Hay que cambiarlo por "29"(hex).
Basicamente con eso se cambia el nivel del archivo, y luego se guarda. Este método es bastante más rapido que el h264 info. En caso de que editando el archivo de esta forma no funcione, sí que usaría el h264info.
Una vez tenemos esas dos cosas, se puede hacer todo en línea de comandos fácilmente (he tenido algunos problemas con YAMB y a veces videos que si deberían funcionar no iban muy bien).
mp4box -add video.h264 -add audio.aac -fps xx.xxx salida.mp4
El fps es el framerate. En la mayoría de los casos es 23.9762 (23.98), en otros es 25 (PAL). Para buscarlo simplemente reproducid el MKV original y fijaros cual es el framerate (con el ffdshow, o vlc).
Hasta aquí no he contado nada que no supiéramos ya, jaja.
Más cosas:
- La PS3 SÍ que soporta archivos superiores a 2GB. Quien no soporta archivos superiores a 2gb (o a 4gb?) son FAT32 y el sistema de archivos de un DVD normal. Por eso, si se tiene un archivo grande, hay que grabarlo en un DVD en UDF (yo lo hago con la version 2.5 o la 2.6). Si la PS3 lo lee como "data disc" y nos deja explorarlo, todo bien. Si el archivo es válido, lo reproducirá, tenga el tamaño que tenga. Aunque la duda está en si reproduce archivos superiores a 4gb... a mí si que me funcionó con el video que probé.
De todas formas, se puede usar mp4box para dividir un archivo mp4 en varias partes.
- En realidad, para hacer esto, casi que hace falta tener un disco duro en buen estado y muy rápido (ya que lo unico que se hace al cambiar de contenedor es mover cosas de un lado a otro) que un superprocesador. Aunque un buen procesador no viene mal, sobretodo para recodificar el audio, que para eso cuanto más procesador, mejor.
- Lo malo es toparse con un MKV que tiene audio AAC (bien!) con bitrate mayor a 160kbps (mal!). Porque casi es mas facil pasar de AC3 a AAC directamente, que rebajar un AAC. Al menos con belight como lo intenté yo.
Hay un container, soportado por la ps3, que SÍ que acepta pistas de video AVC y pistas de audio AC3 (al igual que MKV, y sería la GRAN solución a todos los problemas). Es el "m2ts" de un AVCHD o Blu-Ray disc. (avchd viene siendo la estrucutra de un bluray pero en un dvd). Además con este container, la ps3 desde el principio (y no desde el 1.82) soportaba el high profile del AVC.
Para reproducir uno de estos, hay dos formas:
- grabando un avchd, que puede tener menús, varias pistas de audio, y subtítulos, y la salida será 5.1
- metiendo el archivo mts/m2ts como si fuera un archivo mas y reproducirlo directamente, que no tendrá nada de eso y la salida la "bajará" a stereo
Hay un programa "en desarrollo" (TsRemux) que es capaz de hacer estos M2TS blu-ray, y hasta te hace la estructura del disco AVCHD para grabarla directamente en un DVD (con UDF 2.5/2.6). Lo malo es que por ahora, hacerlo desde un MKV no funciona (aunque ya está puesto, hay que estar al loro a ver cuando sacan una version en la que funcione). Al parecer funciona MUY BIEN si partimos de archivos TS con mpeg-2 en alta definicion y AC3.
Lo que he probado yo con AVC y AC3 (lo que queremos), no ha funcionado mucho y la PS3 no lo reproducía. Pero es cuestión de tiempo.
Eso sí, me parece que de cambiar el nivel de 5.1 a 4.1 no se va a salvar nadie, jaja...