LINUX.ORG.RU

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

 ,


0

1

имеется арч, поврежденный видео файл (при видеосъемке телефон упал и батарейка вывалилася).
пробывал восстановление Video Repair Tool через вайн — восстанавливает, но не все, что было до момента отвала АКБ телефона.
пробывал так же untrunc, создает копеешные файлы, в которых ессесна нет видео.
так же пробывал вот енто, но он не хочет почему то нормально определять содержимое m4v, хатя в описании написано, что вроде должен, в общем он пишет все в файл выхода звука.

не могу больше найти ничего подобного.

после «аварии» скопил на комп под виндой сам файл, после чего на флешке он стал 0 байт почемуто.
придя домой задедешил всю флешку.
флешка c FAT

вот чо думает qmplay2 о файле, который был записан не за долго до испорченного, настройки записи никак не менял.

чо кто посоветует?

★★

Попробовать скормит dd-шный образ photorec-у — может найти потерянные фрагменты. Но есть опасность, что Windows «вылечила» файл до невосстановимости.

Попробовать проиграть файл (скопированный или найденный photorec-ом) при помощи mplayer с ключами -idx или -force_idx. Если покажет искомое, его можно выдернуть при помощи mencoder-а или ffmpeg-а.

question4 ★★★★★
()
Ответ на: комментарий от question4
`--> mplayer -forceidx ~/Videos/Phone/VID_20180201_160152_back.3gp 
MPlayer SVN-r38017 (C) 2000-2018 MPlayer Team
225 audio & 464 video codecs
do_connect: could not connect to socket
connect: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing /home/safff/Videos/Phone/VID_20180201_160152_back.3gp.
libavformat version 57.83.100 (external)
libavformat file format detected.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7ff3f77a9420]moov atom not found
LAVF_header: av_open_input_stream() failed
ISO: File Type Major Brand: 3GPP Profile 4
MOV: missing header (moov/cmov) chunk! Maybe broken file...
libavformat file format detected.
[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7ff3f77a9420]moov atom not found
LAVF_header: av_open_input_stream() failed


Exiting... (End of file)
safocl ★★
() автор топика

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

Как ты к нам с нулевых пишешь?

anonymous
()
Ответ на: комментарий от anonymous

Как ты к нам с нулевых пишешь?

В нулевых контейнеры в контейнер засовывали?

[mov,mp4,m4a,3gp,3g2,mj2 @ 0x7ff3f77a9420]moov atom not found

Смотри, что вообще в файле есть:

$ AtomicParsley /path/to/file.3gp -T 1

nvl ★★★
()
Ответ на: комментарий от safocl

MOV: missing header (moov/cmov) chunk! Maybe broken file...

Если поискать по этой ошибке, можно найти, что этот чанк записывается только по окончании кодирования файла. А без него mplayer с данным контейнером работать не может. Вывод — Mencoder 1-й версии не поможет.

question4 ★★★★★
()

пробывал
пробывал
пробывал

Даже боюсь представить, какое проверочное слово вы использовали.

andreyu ★★★★★
()
Ответ на: комментарий от nvl
`--> AtomicParsley ~/Videos/Phone/VID_20180201_160152_back.3gp -T 1
Atom ftyp @ 0 of size: 24, ends @ 24
Atom mdat @ 24 of size: 21385216, ends @ 21385240
------------------------------------------------------
Total size: 21385240 bytes; 1 atoms total. AtomicParsley version: 0.9.0 (utf8)
Media data: 21385216 bytes; 24 bytes all other atoms (0.000% atom overhead).
Total free atom space: 0 bytes; 0.000% waste.
------------------------------------------------------
Low-level details. Total tracks: 0 
Trk  Type  Handler                    Kind  Lang  Bytes



а у нормального файла с той же камеры
вот так

safocl ★★
() автор топика
Ответ на: комментарий от anonymous

«проблевал»

Некто, Артемий Лебедев, предположил иной вариант проверочного слова.

andreyu ★★★★★
()
Ответ на: комментарий от safocl

атом mdat должен быть, в нем все данные. Теоретически можно взять аналогичный более длинный файл и в нем подменить mdat дополненный до размера mdat оригинала.

nvl ★★★
()
Ответ на: комментарий от andreyu

Проверочные слова «вообщем» и «в крации».

anonymous
()
Ответ на: комментарий от nvl

буду благадарен если подскажешь сразу как енто сделать... имеешь ввиду в хекс редакторе? или задедешить лучше? или мб какой прогой?

safocl ★★
() автор топика
Ответ на: комментарий от safocl

У меня также видео полетело. Снимал как балон газовый загорелся, а домой пришел файл не читается((

tyamur ★★
()
Ответ на: комментарий от safocl

Я не уверен за результат, но я бы сделал так:

Скопируй первые 32 байта большого нормального файла. На примере того файла, ссылку на вывод которого ты приводил
В него попадет размер и название атома mdat:

$ dd if=/path/to/bigger_good_file.3gp of=dump.3gp bs=32 count=1
Далее добавляешь данные из твоего восстанавливаемого файла, пропуская первые 32 байта:

$ dd if=/path/to/broken_file.3gp of=dump.3gp bs=1 skip=32 oflag=append conv=notrunc

Заполняешь нулями разницу (хороший mdat ends @ 22415571 - плохой ends @ 21385240 = 1030331)

$ dd if=/dev/zero of=dump.3gp bs=1 skip=21385240 count=1030331 oflag=append conv=notrunc
Ну и добавляешь moov и з большого нормального файла
$ dd if=/path/to/bigger_good_file.3gp of=dump.3gp bs=1 skip=22415571 oflag=append conv=notrunc

nvl ★★★
()
Ответ на: комментарий от nvl

оу... спс, сча попробую, единственна не понял почему надо пропускать 32 байта, если мдат начинается с 24ого? и еще, при заполнении мдатой от испорченного файла не надо ли seek делать на 32 байта?

safocl ★★
() автор топика
Последнее исправление: safocl (всего исправлений: 1)
Ответ на: комментарий от safocl

Первые 24 байта - атом ftyp. Следующие 4 байта размер, потом название mdat, потом данные атома mdat. 32 - чтоб захватить 4 байта размера. Они же эти 4 байта являются смещением на атом moov, которой в конце копируется.

nvl ★★★
()
Ответ на: комментарий от safocl

связка oflag=append conv=notrunc добавляет в конец

при заполнении мдатой от испорченного файла не надо ли seek делать на 32 байта?

Там уже есть skip=32

nvl ★★★
()
Последнее исправление: nvl (всего исправлений: 1)
Ответ на: комментарий от nvl

да, спс, такой метод действует, буду пробывать с ним...
малость криво тока получилось, но все равно, методика понятна.

safocl ★★
() автор топика
Ответ на: комментарий от safocl

Ну значит чуда не произошло. Даже и не знаю, возможно ли в принципе восстановление файла без оригинального moov... В moov содержатся таблицы с информацией о смещениях и размерах блоков данных в mdat. Т.е. без этих таблиц нет информации где начинаются и заканчиваются блоки с видео и т.п.

nvl ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.