Análisis masivo de metadatos
En una oportunidad me fue asignada la tarea de realizar un peritaje sobre archivos de audio, video, fotografías y capturas de pantalla obrantes en un CD supuestamente extraídos de un celular. La particularidad de esta tarea radicaba en la cantidad de ficheros a analizar. Cuando habitualmente se trata de dos o tres videos y algunas pocas capturas de pantalla, este peritaje poseía más de 150 elementos a estudiar. Con lo cual la metodología tradicional no era aplicable para este caso, salvo claro está que fuera posible disponer de varias semanas para desentrañar esa cantidad de archivos.
Para ello se partió de las herramientas tradicionales de extracción de metadatos (ffmpeg y exiftool). Siendo exiftool un poco más versatil por tratarse de una herramienta específica para la tarea a realizar. En primer lugar se procedió a realizar una extracción de metadatos archivo por archivo implementando un bucle for en un archivo de procesamiento por lotes.
Se abre una ventana de comandos.
D:> for %%f in (.CD*) do exiftool "%%f" >> "%%f.txt"
En este caso los archivos multimedia se encontraban en la subcarpeta denominada CD, es decir archivos copiados de un CD ofrecido como prueba por la parte requirente.
Esto generó una lista de archivos de extensión txt conteniendo cada uno de ellos el listado total de metadatos EXIF ordenados por campo.
ExifTool Version Number : 10.28
File Name : 19 de agosto.jpg
Directory : ./CD
File Size : 1218 kB
File Modification Date/Time : 2017:10:04 18:43:59-03:00
File Access Date/Time : 2019:02:05 10:59:41-03:00
File Creation Date/Time : 2019:02:05 10:59:41-03:00
File Permissions : rw-rw-rw-
File Type : JPEG
File Type Extension : jpg
MIME Type : image/jpeg
Exif Byte Order : Big-endian (Motorola, MM)
Make : Motorola
...
Esta información tal cual es presentada por la herramienta es trabajable de manera individual pero no permite realizar las comparaciones entre los metadatos de los archivos que permitan identificar diferencias apreciables.
Por fortuna el comando exiftool brinda facilidades para quienes desean tabular toda la información. Leyendo la documentación de aplicación de dicho comando fue posible generar la presente sentencia
D:> exiftool -T -All CD > out.txt
Los parámetros significan lo siguiente:
-T Generar una salida en formato de tabla, es decir una línea de registro por cada archivo analizado.
-All Exportar todos los campos de metadatos Exif.
CD Subcarpeta a analizar. En este caso la subcarpeta poseía el nombre CD.
out.txt Archivo sobre el cual se grabará el resultado que devuelve el comando.
Una vez ejecutado este segundo comando, es posible abrir el archivo out.txt, copiar su contenido y pegarlo en una planilla de cálculos Excel para su procesamiento a fines de realizar las comparaciones entre metadatos de archivos similares.
La primera cuestión que se puede evaluar rápidamente a primera vista es la comparación de registros de archivos que poseen la misma extensión y formato de nombre de archivo. Así por ejemplo el siguiente listado de archivos debería poseer similares registros de metadatos.
VID-20171002-WA0000.mp4 : isom, mp42 : 2017:02:24 11:36:23
VID-20171002-WA0001.mp4 : isom, mp42 : 2017:02:24 11:41:21
VID-20171004-WA0111 (1).mp4 : isom, mp42 : 2016:10:05 17:47:51
VID-20171004-WA0111.mp4 : isom, mp42 : 2016:10:05 17:47:51
VID-20171004-WA0112.mp4 : mp42, isom : 0000:00:00 00:00:00
VID-20171004-WA0113.mp4 : isom, mp42 : 2016:12:28 16:15:11
VID-20171004-WA0115.mp4 : isom, mp42 : 2017:02:24 11:41:21
Si se observa, el quinto registro presenta un patrón singular, razón por la cual este archivo, no obstante presentar características similares a simple vista, evidencia a partir del presente método diferencias respecto del resto. Y es posible colocar la lupa sobre dicho archivo para procurar identificar lo que ha ocurrido con él.
Para ello una alternativa es utilizar el comando ffmpeg en su variante ffprobe, el cual permite obtener un listado de metadatos detallados cuadro por cuadro para cada video.
ffprobe -i "..CDVID-20171004-WA0112.mp4" -show_frames -select_streams v -print_format xml > "..VID-20171004-WA0112.mp4.xml"
El archivo xml puede ser abierto con Excel y es posible verificar que en este caso particular no ha sido editado el video. Simplemente no posee algunos metadatos, lo cual puede ocurrir por razones involuntarias (ej. envío del mismo por whatsapp).
Aquí la salida que devuelve el comando ffprobe:
coded_picture_number
pkt_size
width
height
pix_fmt
sample_aspect_ratio
pict_type
0 10728 960 540 yuv420p 1:1 I
1 8275 960 540 yuv420p 1:1 P
2 7972 960 540 yuv420p 1:1 P
3 8011 960 540 yuv420p 1:1 P
4 11722 960 540 yuv420p 1:1 P
5 13016 960 540 yuv420p 1:1 P
6 11867 960 540 yuv420p 1:1 P
7 12979 960 540 yuv420p 1:1 P
8 11165 960 540 yuv420p 1:1 P
9 12547 960 540 yuv420p 1:1 P
10 12130 960 540 yuv420p 1:1 P