Как проверить целостность загруженных больших файлов 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/