Как я могу создать стабильную контрольную сумму медиа-файла?

как я могу создать контрольную сумму только данных медиа без метаданных для получения стабильной идентификации для медиа-файла. предпочтительно кросс-платформенный подход с библиотекой, которая имеет поддержку многих форматов. например, vlc, ffmpeg или mplayer.

(медиа-файлы должны быть аудио и видео в распространенных форматах, изображения были бы хороши иметь также),

6
задан yawniek 2 May 2010 в 19:05
поделиться

2 ответа

Я не знаю ни одного существующего платформенно-независимого программного обеспечения, которое могло бы это сделать, но я знаю способ, которым это могло бы быть выполнено в интерпретируемом ( платформенно-независимый) язык, такой как Java.

По сути, нам просто нужно удалить все метаданные (теги) из файла, предварительно демультиплексируя видеофайлы. Теоретически после демультиплексирования и удаления метаданных можно было бы хешировать файл и сравнивать его с другим файлом, который прошел тот же процесс, чтобы сопоставить идентичные файлы, несмотря на наличие разных тегов. В отличие от отпечатка пальца, это не идентифицирует похожие песни / фильмы, а идентичные файлы (представьте, что вам могут понадобиться 10 разных версий или битрейтов данной песни, которую вы заархивировали, но не хотите, чтобы две одинаковые копии любой из них плавали вокруг) .

Самая неприятная часть этого - удаление тегов, поскольку существует множество различных спецификаций для форматов тегов, которые не обязательно реализуются одинаково в разных приложениях, то есть один и тот же точный аудиофайл, заданный одинаковыми тегами отдельно через два разных приложения, может не привести к идентичные выходные файлы. Единственный способ, которым это может создать проблему, фатальную для концепции контрольной суммы только для аудио, - это если популярное программное обеспечение для тегов вносит какие-либо изменения в двоичную аудио часть файла или дополняет аудио нестандартным способом.

Взятие контрольной суммы тривиально, но я не в курсе, чтобы какие-либо независимые от платформы библиотеки для демультиплексирования и детагирования файлов mpeg.Я знаю, что в средах nix mpgtx - отличный инструмент командной строки, который может выполнять демультиплексирование и удаление тегов, но, очевидно, это не платформенно-независимое решение.

Может быть, кто-то там чувствует себя амбициозным?

3
ответ дан 17 December 2019 в 18:14
поделиться

Одно из возможных решений, которое я нашел, похоже, связано с vlc:

./VLC -I rc snd.mp3 :sout='#std{mux=raw,access=file,dst=-}' vlc://quit | sha1sum
0
ответ дан 17 December 2019 в 18:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: