Причины:
- Изменение метаданных (дата, камера, GPS) через exiftool или аналоги.
- Повторное сжатие/кодирование (следы re-encode).
- Редактирование (склейка, удаление кадров, добавление объектов).
- Генерация AI (Deepfake, Stable Video Diffusion).
- Подмена хеша или цифровой подписи.
Решение:
1. Анализ метаданных
`exiftool -a -u -ee3 -api largefilesupport=1 video.mp4`
Проверить: `CreateDate`, `TrackCreateDate`, `MediaDuration`, устройство (если мобильное — часто есть GPS). Несоответствие даты создания и дат модификации файла — red flag.
2. Хеширование и сравнение
`sha256sum video.mp4`
Сравнить с эталонным хешем (если есть). Если нет — искать оригинал по кадру (см. OSINT).
3. Статистика кодирования
`mediainfo --Details=1 video.mp4`
Искать: `Writing library` (например, `Lavf` — след пережатия), профиль `Main/High`, неконсистентность битрейта.
4. Поиск сценарных переходов
`ffmpeg -i video.mp4 -vf "select='gt(scene,0.4)',showinfo" -f null - 2>&1 | grep pts_time`
Количество резких смен сцены > логичного (например, 100 за 10 секунд) — монтаж.
5. Покадровый анализ на артефакты
`ffmpeg -i video.mp4 -vf "select=not(mod(n\,30))" -vsync vfr frames_%04d.png`
Визуально проверить: тени, границы, отражения, зубы/глаза (типичные уязвимости Deepfake). Использовать `forensic-analysis` тулы (например, Deepware Scanner — опционально, для справки).
6. Проверка стабильности кадра (статика)
`ffmpeg -i video.mp4 -vf "blend=difference,blackframe=amount=95:threshold=0.1" -f null - 2>&1 | grep blackframe`
Множество чёрных кадров — склейка или замена.
7. OSINT-сверка контекста
- Извлеките первый кадр: `ffmpeg -i video.mp4 -ss 00:00:00.000 -vframes 1 first.png`
- Google Reverse Image Search / TinEye / Yandex Images. Найдите оригинал, сравните хеш кадра, контекст даты.
8. Цифровые подписи / блокчейн
Если видео подписано сертификатом (например, от СМИ) — проверьте цепочку сертификатов `openssl verify -CAfile ca.crt signed_video.sig video.mp4`.
Пример полной проверки (bash):
bash
#!/bin/bash
echo "=== Хеш ==="
sha256sum "$1"
echo "=== Метаданные ==="
exiftool -a -G0:1 -time:all "$1"
echo "=== Кодек ==="
mediainfo --Inform="Video;%Format% %Format_Profile% %Encoded_Library%" "$1"
echo "=== Сцены >0.4 ==="
ffmpeg -i "$1" -vf "select='gt(scene,0.4)',showinfo" -f null - 2>&1 | grep -c "pts_time"
echo "=== Черные кадры ==="
ffmpeg -i "$1" -vf "blackframe=amount=95" -f null - 2>&1 | grep "frame.black"Легальность:** все инструменты — open-source, не нарушают ст. 272 УК РФ (сбор данных только из предоставленного файла, без взлома).