Я пытаюсь найти чистый способ получения «просто необработанных данных» из различных медиа-файлов.Под этим я подразумеваю взять файл test.mp4
и убрать из него все метаданные / заголовки, чтобы я мог затем создать хеш фактических видеоданных.
После долгих поисков по этому вопросуПохоже, что ffmpeg - мой лучший шанс на это, но команда, которую я обнаружил для разбора метаданных, похоже, что дает разные результаты в зависимости от версии ffmpeg , что заставляет меня думать, что либо (a)У меня неверное заклинание, или (b) ffmpeg на самом деле не возвращает только необработанные данные.
Чтобы проверить это, я использовал контейнеры Docker ffmpeg jrottenberg для создания хэшаодного и того же файла в нескольких версиях ffmpeg:
for tag in 4.0-centos 4.0-alpine 3.4-alpine 3.4-centos 3.0-alpine 3.0-centos; do
docker pull jrottenberg/ffmpeg:${tag}
docker run --rm \
-v /data/:/data/ \
-it jrottenberg/ffmpeg:${tag} \
-i /data/test.mp3 \
-map_metadata -1 -c:v copy -c:a copy \
-f mp4 - | md5sum
done
В результате у каждого из этих экземпляров был разный хэш-вывод (для ясности вывод Docker урезан):
d7e3577ffe65d73240f48842e8d42207 -
da2bda81911d758c877aace6ed3c0025 -
ed24948c1dedf5d53870dfcfe24c7c70 -
3dbb89d812c26711a33ca670403ccc20 -
a4533446d3225e755eb041167e32b279 -
69a51d82acc9987eed8b517a748435eb -
Итакмой вопрос: есть ли более надежный способ сделать это?Я только что пропустил опцию для ffmpeg?Я что-то здесь упускаю, или ffpeg просто не хороший инструмент для этой работы?Если не это, то что является хорошим выбором?