top of page
Foto del escritorFernando Ferro

Archivos .i y .d, MCDPlayer ... ¡y un montón de otras cosas!

Traducción del inglés desde Spreadys.blog aquí:

Publicado originalmente por David Spreadborough el 3 de Junio de 2014


Usted necesita mucha paciencia y tiempo para superar el desafío de los archivos de video problemáticos o tener el software adecuado a mano ... y estar consciente de las limitaciones del software en todo momento.

En este artículo, estoy mostrando:

  • Archivos propietarios .d y .i y archivos indexados

  • MCDPlayer

  • HXD y HexChomper

  • FFmpeg

  • Virtualdub

  • Avisynth

y luego Amped FIVE


El archivo .d contiene los datos de video y el .i contiene el índice que incluye la información de fecha y hora. Aunque tenía una versión del reproductor en mis archivos, ¡no lo sabía! Lo había enumerado por error en MCD en lugar de en la extensión de archivo .d. Un recordatorio oportuno para mantener mi software de reproducción de propietario bien administrado e indexado.

Hay actualmente algunas piezas de software para ayudar con la gestión de reproductores.

Echa un vistazo a Player Manager de Kinesense o QuickDME de Ocean Systems. También podrías manejarlos por ti mismo, ¡pero esa es una historia para otro día!

De todos modos, después de apuntar en la dirección correcta para el reproductor, busqué en Google sus nombres. Está listado por varios instaladores de seguridad y había varios números de versión diferentes. También me señalaron un programa convertidor.

Al ejecutar el programa, te saluda este cuadro de diálogo:

Me pregunto por qué simplemente no cambiaron el nombre de los botones NTSC y PAL. ¡Probablemente demasiado fácil! ... (Probé lo que sucedería si seleccionaba PAL con metraje NTSC. El video se reproduce pero aparece un mensaje de texto que indica que el metraje es NTSC).

El reproductor acepta varios archivos contenedores de copia de seguridad diferentes.

En lugar de buscar el archivo de video (el .d), el reproductor busca el índice (el .i). Luego, este identifica el archivo de datos con el mismo nombre y luego muestra el video. El video se reproduce como una superposición y la información de fecha / hora se ejecuta en la parte superior.

Fue bastante difícil controlar el video y navegar de un lado a otro con los controles. Al moverme por el video, a veces no lo captaba correctamente y, a menudo, mostraba una vista muy distorsionada.

Otras veces, descubrí que el tiempo de índice superpuesto en el video no coincidía con el tiempo que se imprime sobre las exportaciones de imágenes. En el siguiente ejemplo, observe los segundos en la superposición de tiempo. El video dice: 47 pero la marca de tiempo dice: 46

Por último, identifiqué que al moverse por el video, esto haría que el índice mostrara un tiempo diferente en la misma imagen. Como resultado, llegué a la conclusión de que, aunque el tiempo de inicio y finalización son verificables, usar los segundos para identificar una imagen no es adecuado. Sería mucho mejor y más confiable usar el número de cuadro. Tampoco tenía idea de qué tipo o tamaño era el video, o cualquier metadato que me permitiera interpretar la imagen correctamente.

Antes de que intentemos lidiar con el video, y así evitar este reproductor altamente problemático, ¿es posible verificar la información de fecha / hora? Para esto necesitamos un Editor Hex ( HXD ) y HexChomper de Mikes Forensic Tools.

Al abrir el archivo .i dentro de HXD y copiar todos los datos hexadecimales, podemos pegar esto en HexChomper.







An example screenshot from Hex Chomper – Not the i File!


From the results, all the dates and times were identified within the .i file. These can be exported as a spreadsheet for reference.

Primeras 14 marcas de tiempo encontradas en el archivo .i


De esto pude ver que tenía 29 entradas para el primer segundo y 22 entradas para el último segundo.

Utilizando el tiempo de duración, podría calcular cuántos fotogramas habría en un video de 30 FPS, ya que eso es lo que me decía la superposición del reproductor en la esquina inferior derecha de la ventana.

Calculadora de fecha / hora disponible desde mi casilla compartida en el lado derecho.


Entonces, las matemáticas me decían que debería tener 10,670 entradas de tiempo individuales; sin embargo, el problema es que el archivo .i contenía 10,665. ¿El archivo realmente tenía 30FPS?

Al revisar la hoja de cálculo producida por Hex Chomper, no tardé mucho en encontrar la primera discrepancia.

Para este segundo período, solo 29 entradas


Por lo tanto, no es exactamente un 30FPS constante como sugiere la superposición. Voy a dejar el problema del tiempo allí. Al menos sé cómo profundizar en el índice y relacionarlo con los fotogramas si los milisegundos son importantes. Luego podría capturar una pequeña pieza del reproductor propietario usando Omnivore para evaluar aún más lo que estaba sucediendo. Volveremos a estos números después de familiarizarnos con el video ...

¿Recuerdas el programa convertidor? ... Este produjo un video comprimido (Xvid). El archivo resultante se produjo a 100FPS pero mantuvo la misma velocidad. Como resultado, había incluido una gran cantidad de fotogramas duplicados. Después de descartar todos los fotogramas duplicados, me quedó un archivo de video de 10659 fotogramas. Pongamos ese número a un lado y veamos cuál es el original ...

El archivo .d se leyó inmediatamente como una transmisión 352 × 240 H264 / AVC sin procesar, como se ve aquí después de lanzarlo en MediaInfo ...

Como la mayoría de la gente sabe, mi próximo puerto de escala después de establecer la presencia de una transmisión de video reconocida es intentar la reproducción en FFplay.

Aunque funcionó, hubo muchos mensajes de error en ROJO y al principio sufría por algunas imágenes dañadas.

Obviamente, con la expresión 'descartar uno' necesitamos echar un vistazo de más cerca ...

Después de que un resultado de FFprobe produjo un recuento de cuadros de 10659, yo metí el flujo sin procesar en un AVI.

Sin embargo, esta vez, después de muchas pruebas con diferentes sintaxis y contenedores, descubrí que era necesario usar -fflags genpts como una opción de entrada en lugar de una de salida.


ffmpeg -fflags genpts -i yourfile.d -c: v copy -vsync drop -r 30 -f avi yourfile.avi


La marca de tiempo (timestamp) de presentación de generación fue colocada antes de mi archivo de entrada.

Debería tener un archivo de video H264 a 30fps limpio e indexado que pueda utilizar ... También creé un archivo con el contenedor y extensión M4V.

Dije "debería", ya que mi archivo resultante produjo algunos resultados extraños.

Todo el software de análisis leyó 10659 cuadros y cuando utilicé Windows Media Player a través de Directshow, se reprodujo sin fallas. Sin embargo, algún otro software de reproducción lo lee de manera diferente, con distorsión en las imágenes y mostrando diferentes recuentos de cuadros.

Adobe Premiere Pro se ocupó del M4V sin problemas ...

Frame Accurate scrubbing on the Timeline within Premiere Pro


See the below link for help if you have issues importing video into Premiere Pro.



Even after using FFmpeg to convert the file to an uncompressed format, there was distortion in a few of the frames similar to that seen in the FFplay window displayed above.

So, although I could probe the file to see the frame breakdown, and I could visually see the GOP structure in Virtualdub etc, I couldn’t reprocess it with FFmpeg without it being distorted. Even using the Directshow input driver or the FFmpeg input driver in Virtualdub produced bad image results! Having to go into an NLE every time could be time consuming so how could I simply process the file?

After another cup of coffee I remembered Avisynth. This piece of very powerful software is a ‘Frameserver’, an application that feeds video directly to another application. I don’t use this very often now. In the early days of DV AVI files I used to use it a lot.

I decided to try this as Directshow was dealing with the file very well. The filter chain being used on my test system can be seen in the Graph Edit below.

Mi proceso de pensamiento fue que si pudiera 'enmarcar' esto dentro de otra cosa, entonces podría lidiar con el video.

Avisynth requiere de una instalación en el sistema. Si tienes la opción de integrarse en el explorador de Windows, selecciona Sí: esto te brinda la posibilidad de crear un nuevo archivo .avs directamente desde el menú contextual > menú desplegable 'Nuevo'.

Para que pueda utilizar la función directshow, necesita DirectShowSource.dll , que se descarga del sitio de descargas.

Haga clic en la imagen para ir directamente a la página de descargas.


El archivo .dll para directshow está en el archivo zip. Extrae el contenido en la carpeta 'Complementos' para Avisynth.

La tarea ahora es crear un archivo .avs que sirva para enmarcar el archivo avi de forma directa en mi software de elección. He utilizado Virtualdub.

La única línea que necesito en mi archivo .avs es:


DirectShowSource ("C: \ Temp \ Analysis \ D \ 16_05_54_0001_0000_0000_0000.avi")


Entre "" está la dirección del archivo y el nombre del archivo que quiero servir. (Publicación en el foro de un tutorial simple)

Después de guardar, puedo ir a Virtualdub y abrir el archivo .avs. Esto leerá el archivo avi ... ¡y lo hizo, perfectamente, SIN ERRORES!

En este punto, puedo enviar una secuencia de video o imagen sin comprimir, y se leyeron todos los 10659 cuadros.

Al establecer que el archivo .d sin formato tiene 10659 fotogramas, y el convertidor avi específicamente para este tipo produjo un archivo con 10659 fotogramas, y el archivo recontenido y transcodificado tiene 10659 fotogramas, puedo confiar en este recuento de fotogramas. No puedo confiar totalmente en el FPS y el tiempo debido a las anomalías observadas en el reproductor y el índice. Sé que algunos de los segundos solo contenían 29 fotogramas, así que creo que está usando el código de tiempo de fotograma de caída. Como resultado, seleccioné el estándar NTSC de 29.97FPS para mi video sin comprimir.

Al revisar los segundos y los fotogramas (usando el filtro de hora / fecha / fotograma) en Virtualdub, descubrí que tengo una variación del original de un máximo de 3 fotogramas en comparación con el este.

En resumen entonces:

  • El reproductor es bastante limitado y no muestra el video del todo bien

  • Es posible comprender y validar la información de fecha / hora en el .i

  • Los datos de video se pueden leer en el formato examinado aquí

  • El archivo puede ser contenido usando FFmpeg

  • Muchos NLE pueden leer la transmisión sin procesar contenida en .m4v o .avi

  • Es posible manejar el archivo para su uso posterior utilizando herramientas como Avisynth

Si los eventos capturados son críticos en cuadros / milisegundos, entonces un sistema como este requerirá mucho análisis y pruebas, no solo en el laboratorio, sino también en el sitio, realizando grabaciones de prueba. Si se va a incluir como parte de una compilación, al comprender algunos de los problemas presentados aquí, su vida será un poco más fácil.

Obviamente, mucho de esto ha llevado un tiempo considerable y una resolución de conflictos. Es posible que no dispongas de ese tiempo, y aquí es donde entra el software escrito específicamente para la comunidad de FVA Análisis Forense de Videos o Forensic Analysis Video..

Amped FIVE o Forensic Image and Video Enhancement (Mejora de imagen y video forense) puede ahorrar mucho de este tiempo, ya que todo esto se ha hecho durante el desarrollo del software. Además, en lugar de tener que utilizar una serie de programas y soluciones alternativas, puedes hacerlo todo bajo un mismo techo.

El archivo .d fue reconocido inmediatamente como una transmisión de video NTSC. Todavía tenía problemas para leer el archivo correctamente y no se podía navegar. Como consecuencia, simplemente cambié el contenedor haciendo clic en el botón correspondiente en el lado derecho y se indexó y creó un nuevo video.

Ahora tengo una nueva cadena de video, que contiene mi nuevo archivo que se está leyendo correctamente y se navega perfectamente. Esta indexación se realiza a través del software y su integración con otros marcos. Desde aquí puedo hacer lo que necesite. Incluso podría agregar código de tiempo nuevamente. Cualquier aclaración se puede completar y luego exportar el archivo en mi formato de elección.

Se ha escrito mucho en las últimas semanas expresando precaución al usar herramientas como FFmpeg.


Larry de DMEresources


Jim de Photoshop forense


Martino de Amped


El video discutido aquí es un gran ejemplo donde FFmpeg solo hace la mitad del trabajo. Tanto en mi método manual como cuando uso FIVE, FFmpeg se utiliza para leer inicialmente los datos, pero se cae al hacer algo con ellos. En el método manual, me hice a un lado y usé algo más, ya que no confiaba en los resultados que se estaban produciendo. Luego verifiqué mis resultados con el reproductor propietario original y el programa convertidor.

Depende de usted, el analista, validar sus hallazgos contra otro software, y si algo no parece correcto, depende de usted volver y verificarlo. Puedo explicar por qué he concluido el recuento total de cuadros y puedo justificar por qué no puedo confiar en la superposición de tiempo presentando ejemplos de cuándo se muestran horarios diferentes.

Un analista siempre debe validar sus resultados, sea cual sea el software que esté utilizando, ya sea Open Source, Freeware, NLE o aplicaciones FV dedicadas altamente desarrolladas y pagas. Si hubiera elegido el método FIVE primero, definitivamente habría echado un vistazo en otro lugar para validar lo que este me decía.

Ha sido un gran archivo para trabajar y ver todas las diferencias. Comprender las discrepancias y descubrir formas de superar las limitaciones de cada software es lo que hace que el trabajo de Análisis de Video Forense sea todo un desafío. También ha mostrado realmente la velocidad del flujo de trabajo de Amped FIVE.

52 visualizaciones0 comentarios

Comments


bottom of page