Как проверить, защищен ли файл DRM?

Как проверить, защищен ли данный файл, например, аудиофайл, DRM?

5
задан 27 February 2012 в 19:31

2 ответа

Аудио DRM в основном зависит от формата, поскольку большинство форматов с поддержкой DRM легко идентифицируются по их контейнеру, что обычно отражается в их расширении. Это должно дать игроку знать, с чем он имеет дело, без необходимости анализировать файл. Типичным примером является файл AAC, который вы можете купить в iTunes. Если он защищен с помощью FairPlay DRM, файл называется .m3p (против незащищенного .m4a).

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

Для видео все может быть немного сложнее. Некоторые форматы контейнеров видео поддерживают DRM, поэтому их расширение не обязательно изменяется. Я бы посоветовал попытаться получить ffmpeg или themonospot для анализа каждого файла.

Вот небольшая bash-функция, которую я только что написал, которая может получить кодеки из файла:

function codec() {
    ffmpeg -i "$1" 2>&1 | grep Stream | grep -Eo '(Audio|Video)\: [^ ,]+'
}

В действии:

oli@bert:~/Desktop$ codec "The Beatles - 01 - Back In The U.S.S.R.mp3"
Audio: mp3

Вы можете сократить это еще больше но сделайте снимок на некоторых известных DRM-носителях и посмотрите, что произойдет. Он либо взорвется, либо расскажет вам о DRM.

В любом случае, когда вы знаете, чего ожидать, вы можете пакетировать это или что-то в этом роде, чтобы быстро сказать вам, какие файлы имеют DRM.

0
ответ дан 27 February 2012 в 19:31

Чтобы определить DRM на видео, вы можете использовать ffmpeg -i <filename>

Например. Для фильма, приобретенного у Apple, это можно увидеть в выходных данных:

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc22d005600] ignoring 'frma' atom of 'mp4a', stream format is 'drms'
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc22d005600] ignoring 'frma' atom of 'avc1', stream format is 'drmi'
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc22d005600] ignoring 'frma' atom of 'ac-3', stream format is 'drms'
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc22d005600] stream 0, timescale not set
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc22d005600] Could not find codec parameters for stream 1 (Video: none (drmi / 0x696D7264), none, 1920x1032, 5234 kb/s): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc22d005600] Could not find codec parameters for stream 2 (Audio: none (drms / 0x736D7264), 48000 Hz, 5.1(side), 384 kb/s): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7fc22d005600] Could not find codec parameters for stream 4 (Subtitle: none (p608 / 0x38303670), 1920x1032, 0 kb/s): unknown codec
Consider increasing the value for the 'analyzeduration' and 'probesize' options
0
ответ дан 27 February 2012 в 19:31

Другие вопросы по тегам:

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