Я как-то купил карту памяти 32 ГБ для читалки на андроиде, накидал на неё до половины файлов (книги + видео) на компе через картридер, вставил в читалку - нормально, потом снова вставил в комп, что-то сбойнуло, слетела адресация, комп показал, что на карте остался только один файл что-то типа USBC...(дальше какая-то крякозябра), размером порядка 3,8 Гб, и ни папок, ничего. Я снова вставил карту в читалку, и её система как-то сама сразу хитро восстановила все книги а папках, а видеофайлы восстановила со сброшенными датами, названиями и без каталогов. Мне не хотелось ни восстанавливать видео, ни снова перезаписывать на карту, я просто переназначил всем видео расширение mp4, и все файлы оказались рабочими, хотя и без нормальных имён и дат.
Но. Это присказка. Вопрос вот в чём. Самое интересное, что все файлы видео (не книги, книги андроид восстановил в первозданном виде) оказались чуть больше. Какие-то на 3 КБ, какие-то на 20 КБ. Я выборочно проверил их побитовым сравнением - единственно, чем они отличались от оригиналов - в конце каждого файла были дописаны нули вот на эти самые килобайты довеска. Вопрос в том - почему андроид восстановил их именно так, с лишними хвостами из нулей в конце? Непохоже, что как-то связано с размером кластера карты памяти, потому что довески великоваты. Дополнительный вопрос: вроде бы плеерам не мешают вот эти дописанные нулевые хвосты в конце, хотя я вроде смутно помню, что служебная информация видео пишется и в конец файла, не? Если так, что получается, что плеер шарит по концу файла, пока не найдёт нужную инфу, или нет?
Во время восстановления устройство чтения Android могло столкнуться с неполными файлами из-за повреждения. Чтобы файлы казались полными (т. е. имели определенный размер), он мог заполнить их концы нулями. Это обычная техника, используемая при восстановлении данных, чтобы обеспечить определенный размер и структуру файлов.
Обычно видеоплееры полагаются на заголовки в начале файла для определения формата видео (MP4, AVI и т. д.) и другой информации о воспроизведении. Эти заголовки обычно располагаются в самом начале файла, и на них не влияет нулевая прокладка в конце. Поэтому большинство проигрывателей смогут воспроизводить видео, несмотря на лишние нули, если исходные видеоданные и заголовки останутся нетронутыми.
Служебная информация в видеофайле может присутствовать по всему файлу, но чаще всего она сосредоточена в начале (заголовки) и иногда в конце (трейлеры). Нулевая подложка в самом конце не должна влиять на то, как плеер находит эту информацию.
Первый абзац вашего ответа непонятен, возможно, потому что я невнятно объяснил. Уточню, что файлы восстановленные и файлы исходные полностью(!) совпадали, только к восстановленным (всем) были дописаны "хвосты" нулей.
То есть, например, исходный файл равен 120 000 кб, восстановленный - 120 015 кб. Эти файлы абсолютно идентичны, пока сравнение не достигает точки, где заканчивается исходный. Я всё равно не могу понять, зачем приписывать нули, удлиняя файл? Вот если бы восстановленный был короче, например, 119 085 кб и андроид дополнял его нулями до размера исходного, тогда да. А так - непонятно.
Но. Это присказка. Вопрос вот в чём. Самое интересное, что все файлы видео (не книги, книги андроид восстановил в первозданном виде) оказались чуть больше. Какие-то на 3 КБ, какие-то на 20 КБ. Я выборочно проверил их побитовым сравнением - единственно, чем они отличались от оригиналов - в конце каждого файла были дописаны нули вот на эти самые килобайты довеска. Вопрос в том - почему андроид восстановил их именно так, с лишними хвостами из нулей в конце? Непохоже, что как-то связано с размером кластера карты памяти, потому что довески великоваты. Дополнительный вопрос: вроде бы плеерам не мешают вот эти дописанные нулевые хвосты в конце, хотя я вроде смутно помню, что служебная информация видео пишется и в конец файла, не? Если так, что получается, что плеер шарит по концу файла, пока не найдёт нужную инфу, или нет?
Reply
Обычно видеоплееры полагаются на заголовки в начале файла для определения формата видео (MP4, AVI и т. д.) и другой информации о воспроизведении. Эти заголовки обычно располагаются в самом начале файла, и на них не влияет нулевая прокладка в конце.
Поэтому большинство проигрывателей смогут воспроизводить видео, несмотря на лишние нули, если исходные видеоданные и заголовки останутся нетронутыми.
Служебная информация в видеофайле может присутствовать по всему файлу, но чаще всего она сосредоточена в начале (заголовки) и иногда в конце (трейлеры). Нулевая подложка в самом конце не должна влиять на то, как плеер находит эту информацию.
Reply
То есть, например, исходный файл равен 120 000 кб, восстановленный - 120 015 кб. Эти файлы абсолютно идентичны, пока сравнение не достигает точки, где заканчивается исходный. Я всё равно не могу понять, зачем приписывать нули, удлиняя файл? Вот если бы восстановленный был короче, например, 119 085 кб и андроид дополнял его нулями до размера исходного, тогда да. А так - непонятно.
Reply
Leave a comment