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 320×240 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

Archivado en:Sin categoría

8 comentarios en “Procesado de video [I]”

  • vengador dijo:

    Ostia este tema me interesa mucho! Tengo algunas nociones del tema pero un proyecto de la empresa me obliga a meterme más a fondo. A ver si adelantas entregas.

  • nauj27 dijo:

    @zeta, en la tercera parte de la serie contaré por qué con mencoder no pudo ser. Espolieándo un poco diré que el problema está en el contenedor…

    @franc-tireur, pues la verdad es que no conocía el media-convert ese. De todos modos subir videos de 200 o 350 megas, que es lo que duran las series que tengo, debe dejar un poco petada la adsl… :P

  • Skaidan dijo:

    Jajajaja… Diox… cuanta influencia tengo contigo…

    Pues yo me encuentro intentando meter los subtítulos a la vez que recodifico, pues la temporada 6ª de Scrubs no me atrevo a verla sin ellos…

    P.D: a ver si de una puñetera vez acabo con el software que tú y yo sabemos y me pongo con el Bodorrio2008 para que puedas publicitármelo jejeje

    Enga tío cuídate, que esta seman voy a estar perdidillo….

  • zeta dijo:

    Aún a riesgo de destripar el final de la serie, tuve el mismo problema hace unos días y mencoder fue la salvación (www.zugaldia.net/blog/?p=92). Es impresionante la lista de formatos que hay ahí fuera.

  • franc-tireur dijo:

    Cucha que bien lo has explicado que me he enterado hasta yo. :-P
    ¿Pero estas cosas no las hace media-convert.com ? ¿ o es solo por aprender ?

  • La fatiga del Geek » Análisis del iPhone y puntos de vista dijo:

    […] del plugin para Safari Mobile, aunque están teniendo algunos problemas. Se trataría de una explicación muy extensa, pero básicamente a partir de la versión 9 del reproductor de Flash, los videos en contenedor FLV […]

  • vircof dijo:

    Si no mal recuerdo Bajo el encapsulado «flv» tambien se podia aplicar el codec H264 y mpeg4

    Lo dejo como curiosidad, un saludo

  • nauj27 dijo:

    Así es vircof, desde la versión 9 del plugin de flash se puede reproducir video H.264 y MPEG4 en los contenedores FLV. Gracias por el apunte.