Как проверить целостность загруженных больших файлов MKV

Только что скачал большой файл MKV, который составляет более 20 ГБ. Мне потребовалось несколько дней, чтобы закончить загрузку. Но как проверить, была ли загрузка завершена или она была просто прервана на полпути? У меня есть этот вопрос, потому что для mkv-файла mplayer все еще может воспроизводить его, пока он не сломается.

Любая утилита в Ubuntu для такого рода проверок?

3 ответа

Решение

Поскольку у вас нет информации о контрольной сумме для файла (CRC32, MD5, SHA-1, SHA-256 и т. Д.), Вы можете попытаться проверить сам формат Mastroska.

mkvalidator - простой инструмент командной строки для проверки соответствия файлов Matroska и WebM спецификациям. Он проверяет различные фиктивные или отсутствующие ключевые элементы в версии файла EBML DocType и сообщает об ошибках / предупреждениях в командной строке.

Использовать:

mkvalidator --details your-big-mkv-file.mkv

Тем не мение, mkvalidator мог только проверить структуру контейнера Mastroska, а не "полезную нагрузку" (т.е. данные A/V) в нем. Чтобы проверить часть данных, вам все еще нужен декодер, чтобы увидеть, правильно ли он декодируется. С /questions/200149/kak-ispolzovat-openopenvt-s-argumentami-komandnoj-stroki/200154#200154:

ffmpeg -v error -i file.avi -f null - 2>error.log

Эта команда использует ffmpeg читать в файле MKV и пытается декодировать его кадр за кадром. Любые ошибки, найденные в процессе декодирования, будут записаны в error.log файл.

Инструмент проверки Matroska отлично подходит для проверки целостности контейнера. Вот рекурсивный скрипт-обертка, который я написал на python и использую для больших библиотек. https://github.com/1010dvpt/mkv-validator

Есть MKVToolNix, упомянутый на официальном сайте Matroska, который представляет собой пакет инструментов, один из них mkinfoкоторый можно использовать для получения некоторой информации о файлах Matroska и WebM.

Есть также mkvalidatorкак упоминалось в других ответах, но я не смог найти последние сборки для Linux.

Если вы проверите их страницу загрузки, вы найдете репозитории Ubuntu deb. И как только вы добавите репозиторий deb в свой список источников, вы также сможете установить инструменты командной строки и/или инструмент с графическим интерфейсом.

Вот пример вывода, который вы получаете, когда используете mkvinfoв файле:

      $ mkvinfo 1fbf4140-3807-49f7-9f78-91bdada71a6e 
+ EBML head
|+ EBML version: 1
|+ EBML read version: 1
|+ Maximum EBML ID length: 4
|+ Maximum EBML size length: 8
|+ Document type: webm
|+ Document type version: 4
|+ Document type read version: 2
+ Segment: size unknown
|+ Segment information
| + Timestamp scale: 1000000
| + Multiplexing application: Chrome
| + Writing application: Chrome
|+ Tracks
| + Track
|  + Track number: 1 (track ID for mkvmerge & mkvextract: 0)
|  + Track UID: 16615739537438539
|  + Track type: audio
|  + Codec ID: A_OPUS
|  + Codec's private data: size 19
|  + Audio track
|   + Sampling frequency: 48000
|   + Channels: 1
|   + Bit depth: 32
|+ Cluster

Страница Matroska с упоминанием инструмента: https://www.matroska.org/downloads/mkvtoolnix.html

Страница MKVToolNix: https://mkvtoolnix.download/

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