Ayuda: hacer un programa que pase de MKV a MP4

Buenas,


Estoy haciendo un programa para linux que pase de archivos MKV a MP4, haciendo de interfaz de varios programas como MP4Box o mkvextract, de forma a hacerlo sencillo para novatos.

El problema que tengo es que algunos archivos consigo que se vean en la Xbox360 y otros no.

La unica diferencia que puedo ver entre los que se ven en la Xbox360 y los que no es la resolucion, los que se ven son de 1280X720 y los que no de 1280X544.

Aqui la salida de mplayer de uno y otro (solo los streams de video extraidos del mkv):

NO FUNCIONA
------------------

MPlayer 1.0rc1-4.1.1 (C) 2000-2006 MPlayer Team
CPU: Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz (Family: 6, Model: 15, Stepping: 6)
CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 3DNow 3DNowEx SSE SSE2

Playing video.h264.
libavformat file format detected.
VIDEO: [H264] 1280x544 0bpp 23.976 fps 0.0 kbps ( 0.0 kbyte/s)
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
Audio: no sound
Starting playback...
VDec: vo config request - 1280 x 544 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is undefined - no prescaling applied.
VO: [null] 1280x544 => 1280x544 Planar YV12
V: 0.0 86/ 86 9% 0% 0.0% 0 0


FUNCIONA
-------------

MPlayer 1.0rc1-4.1.1 (C) 2000-2006 MPlayer Team
CPU: Intel(R) Core(TM)2 CPU 6400 @ 2.13GHz (Family: 6, Model: 15, Stepping: 6)
CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1
Compiled for x86 CPU with extensions: MMX MMX2 3DNow 3DNowEx SSE SSE2

Playing video.h264.
H264-ES file format detected.
FPS seems to be: 29.969999
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
Audio: no sound
Starting playback...
VDec: vo config request - 1280 x 720 (preferred colorspace: Planar YV12)
VDec: using Planar YV12 as output csp (no 0)
Movie-Aspect is undefined - no prescaling applied.
VO: [null] 1280x720 => 1280x720 Planar YV12
V: 0.0 108/108 56% 0% 0.0% 0 0


Alguien sabe si es la resolucion definitivamente lo que falla? O estoy pasando algo por alto?
Txukie escribió:Playing video.h264.
libavformat file format detected.
VIDEO: [H264] 1280x544 0bpp 23.976 fps 0.0 kbps ( 0.0 kbyte/s)

Playing video.h264.
H264-ES file format detected.
FPS seems to be: 29.969999

Poca idea de conversión de vídeo tengo, y menos en Linux, pero parece que no sólo cambia la resolución, estas líneas también son diferentes, con lo que cambia el FPS y el formato... ¿qué es eso de H264-ES?

Puedes probar en Windows con GOTSent a ver qué propiedades tienen los archivos que te genera, e intentar conseguir un archivo con las mismas características.
El framerate no es un problema, he probado con archivos de ambos framerates y sin problemas, incluso poniendo framerates ridiculos.

Lo de H264-ES ni idea de que es, pero creo que es algun tipo de contenedor.

No tengo windows asi que es un problema lo de mirar las caracteristicas. Con el mkvinfo no obtengo todo eso?
Txukie escribió:No tengo windows asi que es un problema lo de mirar las caracteristicas. Con el mkvinfo no obtengo todo eso?

Si tienes un MKV pequeñito que me puedas mandar, yo te puedo enviar lo que genera el GOTSent, o la salida del mkvinfo, por si te vale de algo.
Va a estar complicao, tengo unos matroskas de gigas, malditos torrents que vienen sin samples [uzi]

En fin, me llevare el portatil del curro a ver que me dice el GotSent ese.
Te acabo de enviar un link con un sample en MKV, son 5 megas y pico. Tan pronto lo pase a MP4 te paso toda la info que pueda sacarle, o si quieres te lo subo a algún sitio.

Edito: espera, acabo de darme cuenta de que te entendí mal... lo que tú ponías arriba era la información de los streams en H264 extraídos del MKV directamente. Yo pensé que era la información de los MP4 que estabas generando. Por eso te ofrecía ponerte toda la info de un MP4 que funcionase correctamente.
es mejor pasarlo a wmv.
Gromber escribió:es mejor pasarlo a wmv.

Pero tarda mucho más y pierde (aunque sea un poquito, inapreciable) calidad, ¿no?
Dos cosas:

El GOTSent este solo pasa de MKV a MP4, no me da informacion en los archivos pasados.

Hay algun programa que me de informacion sobre un MP4? Ya sea en linux o en windows?
Txukie escribió:Dos cosas:

El GOTSent este solo pasa de MKV a MP4, no me da informacion en los archivos pasados.

Hay algun programa que me de informacion sobre un MP4? Ya sea en linux o en windows?

Quizás el GSpot... sobre el MP4 convertido de MKV con el GOTSent, el GSpot devuelve esto que adjunto.

Adjuntos

Hay un programa llamado mediainfo que hace eso, informacion de medios XD

Esto es el output de la peli que no funciona

$ mediainfo /home/txukie/Documentos/Video/movietotest.m4v
General #0
Complete name : /home/txukie/Documentos/Video/movietotest.m4v
Format : MPEG-4 Visual
Format/Family : MPEG-4
File size : 5.47 GiB
PlayTime : 1h 50mn
Bit rate : 7103 Kbps
StreamSize/String : 2.85 MiB
Encoded date : UTC 2008-04-14 13:38:40
Tagged date : UTC 2008-04-14 13:38:40

Video #0
Codec : AVC
Codec/Family : AVC
Codec/Info : Advanced Video Codec
Codec profile : High@L4.1
Codec settings, CABAC : Yes
Codec_Settings_RefFrames : 8
PlayTime : 1h 50mn
Bit rate mode : VBR
Bit rate : 6982 Kbps
Maximum bit rate : 20.8 Mbps
Width : 1280 pixels
Height : 544 pixels
Display Aspect ratio : 2.35
Frame rate mode : CFR
Frame rate : 23.976 fps
Chroma : 4:2:0
Interlacement : Progressive
Bits/(Pixel*Frame) : 0.418
StreamSize/String : 5.38 GiB
Encoded date : UTC 2008-04-14 13:38:40
Tagged date : UTC 2008-04-14 13:43:33

Audio #0
Codec : AAC LC
Codec/Family : AAC
Codec/Info : AAC Low Complexity
PlayTime : 1h 50mn
Bit rate mode : VBR
Bit rate : 117 Kbps
Maximum bit rate : 182 Kbps
Channel(s) : 2 channels
Channel positions : L R
Sampling rate : 48.0 KHz
Resolution : 16 bits
StreamSize/String : 92.6 MiB
Encoded date : UTC 2008-04-14 13:43:07
Tagged date : UTC 2008-04-14 13:43:33


Y esta es la que funciona


$ mediainfo /home/txukie/Documentos/Video/movie_working.m4v
General #0
Complete name : /home/txukie/Documentos/Video/movie_working.m4v
Format : MPEG-4 Visual
Format/Family : MPEG-4
File size : 3.32 GiB
PlayTime : 1h 45mn
Bit rate : 4511 Kbps
StreamSize/String : 2.54 MiB
Encoded date : UTC 2008-04-13 13:01:08
Tagged date : UTC 2008-04-13 13:01:08

Video #0
Codec : AVC
Codec/Family : AVC
Codec/Info : Advanced Video Codec
Codec profile : High@L4.1
Codec settings, CABAC : Yes
Codec_Settings_RefFrames : 8
PlayTime : 1h 45mn
Bit rate mode : VBR
Bit rate : 4406 Kbps
Maximum bit rate : 10.4 Mbps
Width : 1280 pixels
Height : 720 pixels
Display Aspect ratio : 16/9
Frame rate mode : CFR
Frame rate : 23.976 fps
Chroma : 4:2:0
Interlacement : Progressive
Bits/(Pixel*Frame) : 0.199
StreamSize/String : 3.24 GiB
Encoded date : UTC 2008-04-13 13:01:08
Tagged date : UTC 2008-04-13 13:04:10

Audio #0
Codec : AAC LC
Codec/Family : AAC
Codec/Info : AAC Low Complexity
PlayTime : 1h 24mn
Bit rate mode : VBR
Bit rate : 128 Kbps
Maximum bit rate : 179 Kbps
Channel(s) : 2 channels
Channel positions : L R
Sampling rate : 48.0 KHz
Resolution : 16 bits
StreamSize/String : 77.0 MiB
Encoded date : UTC 2008-04-13 13:04:01
Tagged date : UTC 2008-04-13 13:04:10
Aunque el formato sea compatible con la xbox 360, muchas pelis HD no se ven debido a que tienen un bitrate muy alto. Por lo visto, por encima de 5000 kpbs de bitrate, la consola no los reproduce. Microsoft, en su página, dice que no las bloquea, vamos, que las reproduce aunque no se hace responsable de la calidad, pero mi experiencia me dice que es mentira, vamos, que al ver que un archivo tiene un bitrate superior a 5000 kbps, directamente, aunque sea un mp4 o un wmv, te dice que no los reproduce.
mmmmm.... ¿seguro?

xD
Dr_Strange escribió:Aunque el formato sea compatible con la xbox 360, muchas pelis HD no se ven debido a que tienen un bitrate muy alto. Por lo visto, por encima de 5000 kpbs de bitrate, la consola no los reproduce. Microsoft, en su página, dice que no las bloquea, vamos, que las reproduce aunque no se hace responsable de la calidad, pero mi experiencia me dice que es mentira, vamos, que al ver que un archivo tiene un bitrate superior a 5000 kbps, directamente, aunque sea un mp4 o un wmv, te dice que no los reproduce.


Tengo archivos en wmv con bitrates de 7500 y pasan sin problemas ein?


Voy a hacer un par de tests, voy a pasar algo que funcione a una resolucion 1280x720 y aspect ratio 16:9 manteniendo el bitrate elevado y otra con la misma talla y un bitrate por debajo de 5000 a ver que pasa.
A mi me pasó una cosa curiosisima.
Con pelis convertidas con GOTsent, de más de cuatro gigas, al partirlas en varios ficheros, la xbox360 sólo me reproducia los mp4 de menos de un giga. Con la misma codificación y todo igual. Enteras tampoco.
Ultimo firmware etc.
Puede que en los wmv se trage un bitrate superior a 5000 kpbs. En 2 que yo tengo, desdel luego, con bitrate 8000 kbps aprox. no los reproduce, pero si reproduce el sonido. Lo que si es cierto es que los mp4 sufren de eso, del límite de 5000 kbps.
Debo ser el tio mas torpe del mundo, no consigo pasar un video (ya sea matroska o MP4) de un bitrate a otro o cambiarle el aspect ratio.

Uso ffmpeg o mencoder.
16 respuestas