sábado, 13 de marzo de 2010

Mi tele lee multimedia (II)

Para las pruebas, necesito material HD, por ejemplo Big Buck Bunny

Nos lo traemos:
wget http://mirror.bigbuckbunny.de/peach/bigbuckbunny_movies/big_buck_bunny_1080p_h264.mov bbb.mov

FFmpeg nos dice:

ffmpeg -i bbb.mov

Atentos a que partimos de sonido envolvente: los 6 canales de audio.

Convertiremos un trocito, por ejemplo 3 segundos, que a 24 cuadros por segundo, son 72 cuadros.

Empezamos a probar conversiones.

a) Calidad HD.
Los codecs H.264 / AAC encajan con lo que la tele puede leer. El contenedor .mov es un dialecto de .mp4, así que basta con cambiar la extensión de fichero.

Si queremos coger un trocito:
ffmpeg -ss 13 -vframes 72 -i bbb.mov -vcodec copy -acodec copy bbb_9300.mp4

La tele muestra bbb_9300.mp4 correctamente.

Si los codecs no hubieran coincidido:
ffmpeg -ss 13 -vframes 72 -i bbb.mov -vcodec libx264 -fpre normal -crf 22 -acodec libfaac -ab 192k bbb_9300.mp4

b) Calidad DVD.
La tele es 16:9, y Big Buck Bunny también, así que mejor usar "-aspect 16:9". Dotaremos de 8000kb/s al vídeo (los DVDs comerciales suelen quedarse en 6000kb/s).

Preparamos las tres variantes de audio.

b1) MPEG layer 2 (sólo estéreo)
ffmpeg -ss 13 -vframes 72 -i bbb.mov -target pal-dvd -aspect 16:9 -b 8000k -ac 2 -acodec mp2 bbb_8000_mp2.vob

b2) LPCM, forzando audio estéreo.
ffmpeg -ss 13 -vframes 72 -i bbb.mov -target pal-dvd -aspect 16:9 -b 8000k -ac 2 -acodec pcm_s16be bbb_8000_lpcm.vob

b3) AC3, preservando los 6 canales.
ffmpeg -ss 13 -vframes 72 -i bbb.mov -target pal-dvd -aspect 16:9 -b 8000k -acodec pcm_s16be bbb_8000_lpcm.vob

La tele los muestra correctamente.

c) Calidad AVI.
Mi tele no necesita la marca "-vtag DX50" que algunos reproductores requieren en Windows.

Preparamos las tres variantes de audio.

c1) MPEG layer 2 (sólo estéreo)
ffmpeg -ss 13 -vframes 72 -i bbb.mov -vcodec mpeg4 -s 720x576 -aspect 16:9 -b 8000k -ac 2 -acodec mp2 -ab 192k bbb_8000_mp2.avi

c2) MPEG layer 3 (sólo estéreo)
ffmpeg -ss 13 -vframes 72 -i bbb.mov -vcodec mpeg4 -s 720x576 -aspect 16:9 -b 8000k -ac 2 -acodec libmp3lame -ab 128k bbb_8000_mp3.avi

c3) AC3, preservando los 6 canales.
ffmpeg -ss 13 -vframes 72 -i bbb.mov -vcodec mpeg4 -s 720x576 -aspect 16:9 -b 8000k -acodec ac3 -ab 384k bbb_8000_ac3.avi

La tele los muestra correctamente.


Conclusión:
La tele da bastante de sí: muy pocos reproductores de salón soportan 8000kb/s en MPEG4. Y menos aún, H.264/AAC.


Líneas de investigación:
El fichero de partida tiene 23.97 fps (FILM). Hay que ver si la tele soporta 29.97fps (NTSC) y 25fps (PAL).
Lo más probable es que sí, pero he notado que el movimiento con 23.97fps es a saltitos, no es suave.

Hay que probar con distintos tamaños. En AVI he visto que 720x432, 704x298, 640x272, 720x400, 640x480 van bien.

Hay que probar si traga tal cual el .mp4 de YouTube HD (1280x720, 640×360).

El fabricante dice que la tele lee particiones FAT16, FAT32 y NTFS. Leer NTFS es inusual, así que hay que refrendrarlo con una pruebecilla.