Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Módulo Video::Info
Ir a página Anterior  1, 2, 3
 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Experto
Mensaje Mie Sep 05, 2007 7:16 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
Responder citando

En la parte de código donde hace el cálculo de la duración (Image::ExifTool::MPEG::Composite) se ve que si el dato de la duración no es numérico, no realiza el cálculo, lo cual es lógico, porque implica mirar todo el fichero.

Como mucho, podrías hacer una estimación como la que él hace: tamaño/bitrate, pero ese bitrate deberás elegirlo. Quizás si añades más -v al exiftool, te dará más información, como por ejemplo el bitrate del primer cuadro, con lo que podrás hacer una estimación.

Y en cuanto a si vale para todos los formatos de vídeo, eso estará indicado en la doc. Desde luego, está actualizado a mayo de este año...
Mensaje Mie Sep 05, 2007 7:30 am
zozo666
Perlero Frecuente
Perlero Frecuente
Registrado: 26 May 2007
Mensajes: 137
Responder citando

Osea, el tema acá sería la palabra "Variable" ¿no?, que el ExifTool::MPEG::Composite la toma como una palabra. Realicé un "exiftool -v video.mpeg" y me salió la siguiente información:

Código:
ExifToolVersion = 6.90
  FileName = video.mpeg
  Directory = .
  FileSize = 18575360
  FileModifyDate = 1188268862
  FileType = MPEG
  MIMEType = video/mpeg
  ImageWidth = 320
  ImageHeight = 240
  AspectRatio = 1
  FrameRate = 2
  VideoBitrate = 262143
  MPEGAudioVersion = 2
  AudioLayer = 2
  AudioBitrate = 12
  SampleRate = 0
  ChannelMode = 3
  MPEG_Audio_Bit26 = 0
  ModeExtension = 0
  MPEG_Audio_Bit27 = 0
  CopyrightFlag = 0
  OriginalMedia = 1
  Emphasis = 0


¿Qué es lo que tendría que hacer con VideoBitrate=262143? ¿De qué forma hago la estimación que me marcas (explorer) arriba? ¿La hago en el mismo módulo o en el script donde lo voy a usar?

Muchas gracias
Mensaje Mie Sep 05, 2007 8:25 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
Responder citando

Yo no haría ningún cambio en el módulo, que para eso tiene un dueño. Es mejor que hables con él.

La estimación de tiempo que él hace para cuando está indicado un BitRate es:

Perl:
return (8 * $val[0]) / (($prt[1]||0) + ($val[2]||0));


Es decir: 8 * <número de bytes del tamaño del fichero> / ( suma de los bitrates de audio y vídeo )

En tu ejemplo, saldría...

8 * 18575360 / (128000 + 262143) = 380,89 segundos = 00:06:21
Mensaje Mie Sep 05, 2007 8:41 am
zozo666
Perlero Frecuente
Perlero Frecuente
Registrado: 26 May 2007
Mensajes: 137
Responder citando

Muy bueno... justamente es un minuto más, o sea 00:06:21, pero en eso no hay problema ya que si en todos los casos es así, con sumarle un minuto queda perfecto.

Ahora, yo esto lo podría hacer pidiendo los correspondientes "VideoBitrate" y "AudioBitrate" en el script y haciendo esa cálculo, ¿no? Lo que no entiendo es de dónde salió "AudioBitrate = 128000", porque el que yo pasé marca 12.

Una última cosa... ¿Hay alguna función en Perl que me permita pasar de formatos de tiempo?. Yo quiero pasar 182.51 seg. al formato hora:min:seg (00:00:00)?

Muchísimas gracias.
Mensaje Mie Sep 05, 2007 9:19 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
Responder citando

El AudioBitrate lo he tomado de la primera salida.

En cuanto a lo del cálculo de tiempo, no lo hay, pero puedes copiar el que ves en el código del módulo... ¿no te has fijado, eh?
Mensaje Mie Sep 05, 2007 11:27 am
zozo666
Perlero Frecuente
Perlero Frecuente
Registrado: 26 May 2007
Mensajes: 137
Responder citando

Este código es para extraer "AudioBitrate":

Perl:

  $exifTool = new Image::ExifTool;
  $exifTool->ExtractInfo('video.mpeg', \%options);
  $value = $exifTool->GetValue('AudioBitrate');


Ahora, necesito extraer "VideoBitrate" pero veo que este comando aparecía solamente cuando ejecutaba el comando "exiftool -v video.mpeg".
¿Cómo tendría que hacer ahora para sacarlo desde ese comando el VideoBitrate??
Mensaje Mie Sep 05, 2007 12:54 pm
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
Responder citando

Está descrito en el manual...

Tienes que activar la opción Verbose, con un valor entre 0 y 5:
Perl:
$exifTool->Options(Verbose => 1);


Hay que leer un poco más...

P.D. Estamos en el foro de Experto ;^)
Mensaje Mie Sep 05, 2007 8:11 pm
zozo666
Perlero Frecuente
Perlero Frecuente
Registrado: 26 May 2007
Mensajes: 137
Responder citando

Lo había notado, pero esa instrucción me tira en pantalla toda la información... lo que necesitaría yo es algo así como usa la otra instrucción, donde yo con un GetValue extraiga la información de la etiqueta deseada. Muchas gracias, con esto solo ya termino y después haciendo la cuenta ya termino todo.

¿Cómo se podría hacer eso? Intente un montón de formas y no pude.
Mensaje Sab Sep 08, 2007 4:22 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4084
Ubicación: Valladolid, España
Responder citando

Pues... con una expresión regular, por ejemplo...
Publicar nuevo tema   Responder al tema    Foros de discusión -> Experto Todas las horas son GMT - 6 Horas
Ir a página Anterior  1, 2, 3
Página 3 de 3



Powered by phpBB © 2001, 2005 phpBB Group