Как восстановить 3gp файл, в котором m4v+m4a содержимое?

хронология:
- скопил файл на винде не дома.
- пришел домой, хател скопить файл дома, обнаружил, чо он почему то стал 0 байт.
- отдедешил флешку.
- проверил совпадение из сохраненного на винде файла в хекс редакторе на отдедешенном образе флешки -- не нашлось совпадений, хотя заголовок файла есть.
- пробывал восстановить видео из файла, который копил на винде. файл является не полным.
- пробывал найти остатки файла на отдедешеной флешке -- не нашел.
vasek
EDIT 1 - а покажи-ка вывод hexdump -C -n 32 name_file
`--> hexdump -C -n 32 Videos/phone/VID_20180201_160152.3gp.back
00000000  00 00 00 18 66 74 79 70  33 67 70 34 00 00 00 00  |....ftyp3gp4....|
00000010  69 73 6f 6d 33 67 70 34  3f 3f 3f 3f 6d 64 61 74  |isom3gp4????mdat|
00000020
safocl, е мое !!!! - ты когда научишься работать на байтном уровне. .... 0 байт .... е мое!!! Но посмотреть можно было.
ftyp - самый 1-ый атом (box) - длина атома 24 байта (0x18), далее начинается атом mdat, длина которого, если верить написанному составляет 1061109567 байт (0x3f3f3f3f) - но верится с трудом (это около 1G), т.е. нужно проверять, правда ли это - смотреть где заканчивается атом ........ и так далее, проверять каждый атом.
Ликбез делать не буду - есть гугл, есть спецификации MPEG4, читай - но работа очень не благодарная, а, главное, время уйдет до хрена, а выход может быть нулевой.

EDIT 1 - для контроля/проверки можно применить AtomicParsley, но он все может не распарсить (в случае порчи файла), а потому смотреть или hexeditor, но лучше hexdump, например, для начала грубая проверка - смотрим конец атома mdat - hexdump -C -s 1061109591-n 32 name_file - и должны увидеть следующий атом
Ошибки не исчезают с опытом - они просто умнеют
vasek
safocl, е мое !!!! - ты когда научишься работать на байтном уровне. …. 0 байт …. е мое!!! Но посмотреть можно было.
немного не понял сути негодования...
данный выхлоп со скачанного на винде файла.
safocl
немного не понял сути негодования…
данный выхлоп со скачанного на винде файла.
Значит я совсем запутался в твоих файлах и что то не допонял. Если у тебя есть нормальный файл, с которым можно работать, то какой смысл описывать про файлы нулевого размера. Этим только вводишь в заблуждение.
По сути - если есть рабочий/нормальный файл, с ним и работай.
В этой ситуации могу посоветовать только одно - для начала оценить состояние файла - пройтись по файлу от одного атома к другому - определяешь длину атома и идешь в конец, если все нормально, то в конце должен быть следующий атом. Если по указанным байтам вышел в конец и там не оказалось следующего атома, то очевидно, что или нарушена целостность файла (что то пропало) или не верно указана длина, что маловероятно и нужно разбираться с этим капитально. Не забывай, что структура древовидная, то есть атомы могут содержать другие атомы и есть атомы обязательные и не обязательные, которые можно и выкинуть.
Структура всех атомов одинакова
байты 0 - 3 - длинна атома (включая эти 4 байта)
байты 4 - 7 - имя атома (4 символа)
байты 8 - и далее - данные атома
UPD - но лучше забыть об этом и ничего не делать, так как вряд ли что то можно исправить. Хотя для общего развития это полезно.

EDIT 1 - для сравнивания можешь использовать аналогичный, такого же типа файл, близкого размера.
Ошибки не исчезают с опытом - они просто умнеют
vasek
Значит я совсем запутался в твоих файлах и что то не допонял. Если у тебя есть нормальный файл, с которым можно работать, то какой смысл описывать про файлы нулевого размера. Этим только вводишь в заблуждение.
смсл есть, потому чо полурабочий файл не полный, где то на образе флешки есть его данные, тока я хз где...
vasek
но лучше забыть об этом и ничего не делать, так как вряд ли что то можно исправить. Хотя для общего развития это полезно.
поч... я же восстановил ентот файл, тока там как я описал ввыше не хватает примерно 20-30 секунд, они где то на флешке, я вот и хател узнать где...
safocl
полурабочий файл не полный, где то на образе флешки есть его данные, тока я хз где…
Что значит не полный. Если файловая система видит этот файл, то можно узнать сколько блоков и какие блоки занимает данный файл и даже прочитать данные в этих блоках. А если система не видит этот файл, значит он потерян/удален, но зная его имя можно попытаться поискать его в в удаленных. То есть, если какой то файл был прописан в файловой системе, а потом он был удален (пропал), его следы всегда остаются в системе определенное время (пока блоки, занимаемые этим файлом не перезапишутся полностью новыми данными).
Ошибки не исчезают с опытом - они просто умнеют
vasek
safocl
полурабочий файл не полный, где то на образе флешки есть его данные, тока я хз где…
Что значит не полный. Если файловая система видит этот файл, то можно узнать сколько блоков и какие блоки занимает данный файл и даже прочитать данные в этих блоках. А если система не видит этот файл, значит он потерян/удален, но зная его имя можно попытаться поискать его в в удаленных. То есть, если какой то файл был прописан в файловой системе, а потом он был удален (пропал), его следы всегда остаются в системе определенное время (пока блоки, занимаемые этим файлом не перезапишутся полностью новыми данными).
пачитай первый пост, я там все нормальна подробна описал чо и как произашло... уже при чем повторял. хз как еще объяснить.
неполный -- значит в нем отсутствуют данные о видео которое еще должно было быть но его нету в ентом файле...
safocl
ентот файл, тока там как я описал ввыше не хватает примерно 20-30 секунд
Насколько я понимаю, отсутствие части файла (20-30 с) не должно сказываться на качестве, а у тебя, судя по описанию, еще страдает и качество, а это значит, что не все в порядке с этим файлом - есть или битые байты или отсутствующие.
Ошибки не исчезают с опытом - они просто умнеют
 
Зарегистрироваться или войдите чтобы оставить сообщение.