Archivos: Febrero 2008
Wed Feb 27, 2008
Participa gratis en los sorteos de SOLRED
A veces cuando uno va a la gasolinera, con el ticket de haber pagado aparece un código y un sorteo. En el último que me dieron se puede leer:
CONSIGUE 2.000€ SOLO 1 SMS Entra desde el móvil en download.movilisto.com/solred o envía SOLRED al 5155, seguido del Cod. Oper de este ticket. Ejemplo: SOLRED 006527 ¡PARTICIPA YA EN EL SORTEO! Coste sms 1,20€+IVA [...]
Total, que por cincuenta duros (~1,50€) participas en el sorteo de los 2.000 euros. También está la primera opción, la de entrar en la web desde el móvil, pero dependiendo del tipo de contrato o prepago que tengas, te puede costar incluso más dinero.
Cómo participar gratis en el sorteo
Para participar gratis en el sorteo podemos entrar en la web usando Firefox. Lo primero que hay que hacer es instalar una extensión que sea capaz de interpretar las webs en WML preparadas para móviles, nos vale con wmlbrowser de mozdev.org. Una vez instalada tan solo hay que ir a la web del sorteo y seguir las instrucciones. Si se quiere ser un poco más disimulado, también se puede instalar previamente una extensión llamada "User Agent Switcher" que, configurada correctamente, dirá al servidor web que estamos accediendo desde el teléfono móvil de marca y modelo que hayamos especificado.
Sed buenos y compartid el premio si os toca ;P
[3] comments (421 views) | [1] Trackbacks [0] Pingbacks
Tue Feb 19, 2008
Procesado de video [II]
La primera opción que pensé fue usar MEncoder, como cuenta Z. en su blog. Al abrir la página de manual de MPlayer en busca de las opciones a usar, encontré casi por casualidad la sección profiles. En lugar de usar un montón de parámetros para `mencoder' se pueden crear perfiles en un archivo de configuración. En estos perfiles se especifican todas las opciones y así no hay que volver a acordarse ni preocuparse de cuáles son.
Para usar esta característica de mencoder creé el archivo ~/.mplayer/mencoder.conf con la siguiente configuración:
[w880] profile-desc="MP4 encoding for SonyEricsson w880i" # Encode with the given video codec and options ovc=lavc=yes lavcopts=vcodec=mpeg4:autoaspect=yes:vbitrate=256:acodec=libfaac:abitrate=96 vf=scale=320:240 o=output.mp4 aspect=4:3 sws=0 # Specify a frames per second value for the output file ofps=15 # Output audio codec oac=faac=yes faacopts=br=96 af=volnorm=1 # Encode to the specified container format of=lavf=yes lavfopts=format=mp4:i_certify_that_my_video_stream_does_not_use_b_frames=yes [w880-hq] profile-desc="HQ MP4 encoding for SonyEricsson w880i" profile=w880 lavcopts=mbd=2:trell=yes:v4mv=yes sws=2
Si preguntamos a mencoder nos desvolverá una lista de los perfiles definidos:
nauj27@arriba:~$ mencoder -profile help
MEncoder 2:1.0~rc1-0ubuntu13.1 (C) 2000-2006 MPlayer Team
CPU: AMD Athlon(tm) XP 1600+ (Family: 6, Model: 6, Stepping: 2)
CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 0
Compiled with runtime CPU detection.
Available profiles:
w880-hq HQ MP4 encoding for SonyEricsson w880i
w880 MP4 encoding for SonyEricsson w880i
Y si preguntamos acerca de un perfil nos dará una información más detallada:
nauj27@arriba:~$ mencoder -show-profile w880 MEncoder 2:1.0~rc1-0ubuntu13.1 (C) 2000-2006 MPlayer Team CPU: AMD Athlon(tm) XP 1600+ (Family: 6, Model: 6, Stepping: 2) CPUflags: Type: 6 MMX: 1 MMX2: 1 3DNow: 1 3DNow2: 1 SSE: 1 SSE2: 0 Compiled with runtime CPU detection. Profile w880: MP4 encoding for SonyEricsson w880i ovc=lavc=yes lavcopts=vcodec=mpeg4:autoaspect=yes:vbitrate=256:acodec=libfaac:abitrate=96 vf=scale=320:240 o=output.mp4 aspect=4:3 sws=0 ofps=15 oac=faac=yes faacopts=br=96 af=volnorm=1 of=lavf=yes lavfopts=format=mp4:i_certify_that_my_video_stream_does_not_use_b_frames=yes
Ahora veamos qué significa cada uno de los parámetros definidos. El primero indica el códec de video que vamos a emplear, lavc, y la línea siguiente indica las opciones que se emplearán en dicho códec. En éste caso he especificado video en mpeg4, razón de aspecto automática, 256kbps para el video y 96kbps para el audio codificado usando la librería libfaac que comprime en formato AAC.
Las siguientes tres líneas escalan el video a 320x240px que es la resolución de la pantalla del teléfono, indican la razón de aspecto que se incluirá dentro de la información del contenedor y se indica un fichero de salida por defecto por si no es especificado posteriormente, output.mp4.
sws=0 indica que durante el escalado de la imagen se use un filtro bilineal rápido para obtener una calidad aceptable pero rápida de calcular.
ofps=15 indica que queremos 15 imágenes por segundo. Hay a quien le pueden parecer insuficientes pero la mayoría de la gente no apreciaremos realmente la diferencia.
oac=faac=yes, faacopts=br=96 y af=volnorm=1 son todos referidos al audio. El primero indica el formato, el segundo la tasa de bits por segundo y el tercero hace un procesado del audio para normalizar el volumen. La normalización consigue la máxima amplificación sin distorsión.
Por último, of=lavf=yes y la línea de lavfopts indican que el audio y el video se quieren multiplexar en un contenedor MP4.
Hay una opción adicional que es la que fastidió que pudiese usar éste método para transformar las pelíclas, y es lo siguiente:
lavfopts=format=mp4:i_certify_that_my_video_stream_does_not_use_b_frames=yes
En realidad yo no puedo certificar que eso sea cierto. Ahora contaré por qué. En la compresión de video los tipos de imágenes que podemos encontrar son Intra coded frames, Predicted frames, y Bi-directional predictive pictures, también conocidos como I-Frames, P-Frames y B-Frames.
En los formatos definidos en el estandar MPEG, a menudo solo se almacenan diferencias entre imágenes en lugar de imágenes completas. Sin meterme en profundidad en el tema, diré grosso modo que:
- Los I-Frames son imágenes completas o imágenes clave (key frames) que son codificadas sin hacer referencia al resto de las imágenes del video.
- Los P-Frames requieren información de imágenes anteriores para ser decodificados, pueden contener información nueva así como vectores de desplazamiento de bloques de imágenes o combinaciones de ambos.
- Los B-Frames requieren la decodificación de imágenes anteriores para la representación completa de la imagen. Incluyen modos de predicción de regiones de movimiento, sacando un movimiento medio con predicciones basadas en el movimiento de objetos en imágenes del video anteriores.
Lo que se le está diciendo a mencoder con el parámetro mp4:i_certify_that_my_video_stream_does_not_use_b_frames=yes es que aseguro que mi video no contiene B-Frames, lo cual no es cierto en la gran mayoría de los casos. Resulta que mencoder usa algo llamado lavf para crear un contenedor de tipo MP4 y actualmente tiene un bug que hace que si el video contiene B-Frames el resultado sea un archivo corrupto que no sirve para mucho. Y efectivamente, el archivo resultante no lo reconoce ni Perry Mason.
[4] comments (466 views) | [0] Trackbacks [0] Pingbacks
Sun Feb 17, 2008
Procesado de video [I]
La otra noche pensé en procesar un video para poderlo ver en el teléfono móvil, de modo que lo primero que hice fue analizar el formato que es capaz de reproducir así como el contenedor y los codecs tanto de audio como de video. Después de muchas pruebas al final conseguí que se vea correctamente pero es un mundo tan grande el de los formatos de video que me da para varias entregas. Por ese motivo en esta primera parte hablaré sobre contenedores y codecs a modo de introducción. Está claro que esto puede ser un poco tostón si no te interesa, así que ahora estás a tiempo de cambiar de página o seguir leyendo :P
Cuando uno reproduce un video digital, lo normal es que el reproductor analize el contenedor, siendo el más extendido hoy en día el AVI (las siglas AVI significan Audio y Video intercalado o entrelazado). En este contenedor, entre otras cosas, se encuentra información referente al códec con el que ha sido codificado el audio y el video dentro del archivo. De este modo un archivo con una misma extensión (.avi) puede contener video de muy diversa naturaleza: DivX, XviD, MP4, WMV, ASF, etc.
El formato que reproduce mi móvil es un contenedor MP4 con video en MPEG-4 Parte 2 y audio en AAC. La pantalla es de 320x240 puntos y la cantidad de datos por imagen dependerá de los resultados que obtenga después de hacer unas cuantas pruebas. En principio 15 imágenes por segundo, 256kbps para el video y 96kbps para el audio deberían de ser suficientes para ver pequeños capítulos de series sin importarme demasiado la ligera pérdida de calidad que pueda tener.
Otra opción sería pasar el video a un contenedor 3GP con el video en MPEG-4 Parte 2 y el audio en AMR-NB, pero es que el AMR no me cae especialmente bien, además de que es un poco más coñazo de utilizar desde GNU/Linux (esto ya no es tan cierto desde que sacaron unas bibliotecas de uso de amr para Linux).
En cualquier caso la opción elegida es la primera de las dos. En las siguientes entregas veremos cómo convertir un video desde cualquier fuente, ya sea un divx, un DVD, o una grabación con una videocámara, al contenedor MP4 listo para ser reproducido en el móvil.
Como ejemplo, para dar una idea general del galimatías que puede llegar a ser el tema del procesado de video, éstos son unos cuantos formatos de contenedor y codecs tomados del proyecto FFMPEG:
File formats: E 3g2 3gp2 format E 3gp 3gp format D 4xm 4X Technologies format D MTV MTV format D RoQ Id RoQ format D aac ADTS AAC DE ac3 raw ac3 E adts ADTS AAC DE aiff Audio IFF DE alaw pcm A law format DE amr 3gpp amr file format DE asf asf format E asf_stream asf format DE au SUN AU Format DE audio_device audio grab and output DE avi avi format D avs avs format E crc crc testing format D daud D-Cinema audio format D dc1394 dc1394 A/V grab D dsicin Delphine Software International CIN format D dts raw dts DE dv DV video format D dv1394 dv1394 A/V grab E dvd MPEG2 PS format (DVD VOB) D ea Electronic Arts Multimedia Format DE ffm ffm format D film_cpk Sega FILM/CPK format DE flac raw flac D flic FLI/FLC/FLX animation format DE flv flv format E framecrc framecrc testing format DE gif GIF Animation DE gxf GXF format DE h261 raw h261 DE h263 raw h263 DE h264 raw H264 video format D idcin Id CIN format DE image2 image2 sequence DE image2pipe piped image2 sequence D ingenient Ingenient MJPEG D ipmovie Interplay MVE format DE m4v raw MPEG4 video format D matroska Matroska file format DE mjpeg MJPEG video D mm American Laser Games MM format DE mmf mmf format E mov mov format D mov,mp4,m4a,3gp,3g2,mj2 QuickTime/MPEG4/Motion JPEG 2000 format E mp2 MPEG audio layer 2 DE mp3 MPEG audio layer 3 E mp4 mp4 format D mpc musepack DE mpeg MPEG1 System format E mpeg1video MPEG video E mpeg2video MPEG2 video DE mpegts MPEG2 transport stream format D mpegvideo MPEG video E mpjpeg Mime multipart JPEG format DE mulaw pcm mu law format D mxf MXF format D nsv NullSoft Video format E null null video format D nut nut format D nuv NuppelVideo format DE ogg Ogg format E psp psp mp4 format D psxstr Sony Playstation STR format DE rawvideo raw video format D redir Redirector format DE rm rm format E rtp RTP output format D rtsp RTSP input format DE s16be pcm signed 16 bit big endian format DE s16le pcm signed 16 bit little endian format DE s8 pcm signed 8 bit format D sdp SDP D shn raw shorten D smk Smacker Video D sol Sierra SOL Format E svcd MPEG2 PS format (VOB) DE swf Flash format D tiertexseq Tiertex Limited SEQ format D tta true-audio DE u16be pcm unsigned 16 bit big endian format DE u16le pcm unsigned 16 bit little endian format DE u8 pcm unsigned 8 bit format D vc1 raw vc1 E vcd MPEG1 System format (VCD) D video4linux video grab D video4linux2 video grab D vmd Sierra VMD format E vob MPEG2 PS format (VOB) DE voc Creative Voice File format DE wav wav format D wc3movie Wing Commander III movie format D wsaud Westwood Studios audio format D wsvqa Westwood Studios VQA format D wv WavPack DE yuv4mpegpipe YUV4MPEG pipe format Codecs: D V 4xm D V D 8bps D V VMware video D V D aasc EA ac3 DEA adpcm_4xm DEA adpcm_adx DEA adpcm_ct DEA adpcm_ea DEA adpcm_ima_dk3 DEA adpcm_ima_dk4 DEA adpcm_ima_qt DEA adpcm_ima_smjpeg DEA adpcm_ima_wav DEA adpcm_ima_ws DEA adpcm_ms DEA adpcm_sbpro_2 DEA adpcm_sbpro_3 DEA adpcm_sbpro_4 DEA adpcm_swf DEA adpcm_xa DEA adpcm_yamaha D A alac DEV D asv1 DEV D asv2 D V D avs DEV bmp D V D camstudio D V D camtasia D V D cavs D V D cinepak D V D cljr D A cook D V D cyuv D A dca D A dsicinaudio D V D dsicinvideo DES dvbsub DES dvdsub DEV D dvvideo DEV D ffv1 DEVSD ffvhuff DEA flac DEV D flashsv D V D flic DEVSD flv D V D fraps DEA g726 DEV gif DEA gsm D A gsm_ms DEV D h261 DEVSDT h263 D VSD h263i EV h263p D V DT h264 DEVSD huffyuv D V D idcinvideo D A imc D V D indeo2 D V indeo3 D A interplay_dpcm D V D interplayvideo EV jpegls D V kmvc EV libtheora EV ljpeg D V D loco D A mace3 D A mace6 D V D mdec DEV D mjpeg D V D mjpegb D V D mmvideo DEA mp2 D A mp3 D A mp3adu D A mp3on4 D A mpc sv7 DEVSDT mpeg1video DEVSDT mpeg2video DEVSDT mpeg4 D VSDT mpegvideo DEVSD msmpeg4 DEVSD msmpeg4v1 DEVSD msmpeg4v2 D V D msrle D V D msvideo1 D V D mszh D V D nuv DEV pam DEV pbm DEA pcm_alaw DEA pcm_mulaw DEA pcm_s16be DEA pcm_s16le DEA pcm_s24be DEA pcm_s24daud DEA pcm_s24le DEA pcm_s32be DEA pcm_s32le DEA pcm_s8 DEA pcm_u16be DEA pcm_u16le DEA pcm_u24be DEA pcm_u24le DEA pcm_u32be DEA pcm_u32le DEA pcm_u8 DEV pgm DEV pgmyuv DEV png DEV ppm D A qdm2 D V D qdraw D V D qpeg D V D qtrle DEV rawvideo D A real_144 D A real_288 D A roq_dpcm D V D roqvideo D V D rpza DEV D rv10 DEV D rv20 D A shorten D A smackaud D V smackvid D V D smc DEV snow D A sol_dpcm DEA sonic EA sonicls D V D sp5x DEV D svq1 D VSD svq3 D V targa D V theora D V D tiertexseqvideo D V tiff D V D truemotion1 D V D truemotion2 D A truespeech D A tta D V D ultimotion D V vc1 D V D vcr1 D A vmdaudio D V D vmdvideo DEA vorbis D V vp3 D V vp5 D V vp6 D V vp6f D V D vqavideo D A wavpack DEA wmav1 DEA wmav2 DEVSD wmv1 DEVSD wmv2 D V wmv3 D V D wnv1 D A ws_snd1 D A xan_dpcm D V D xan_wc3 D V D xl DEV D zlib DEV zmbv
[6] comments (573 views) | [1] Trackbacks [0] Pingbacks
Tue Feb 12, 2008
Relájate y disfruta
A veces al apuntarnos a algún sitio en Internet, se nos olvida marcar aquella casilla donde dice que no se permita dar nuestros datos a más empresas. Esto hace que de vez en cuando recibamos un tipo de correo basura que no es el habitual, que no es el que gmail va a filtrar cuando llegue a la bandeja de entrada.
Hoy me ha llegado con motivo de San Valentín un correo con ofertas de viajes que incluye la siguiente descripción en una de ellas:
- Alojamiento en Habitación Doble
- Desayuno Diario en la Habitación
- Kit de Juguetes Eróticos de "Toys & Love" preparado en la Habitación
- 1 Entrada Gratuita a nuestro "Aloe Spa"
Con razón en el asunto del mensaje aparecían las palabras relájate y disfruta. Lo que me preocupa realmente es si "preparado" significa que cuando llegas ya está allí el botones calentando motores.
Escuchando: Village People - Sex Over The Phone
[8] comments (447 views) | [208] Trackbacks [0] Pingbacks