Здравствуйте, andrey.desman, Вы писали:
AD>Какой-нибудь h264/avc1 имеет формат данных [nalu size][nalu data]... и все фреймы в теории можно восстановить. Особенно если каждый их них по 1 nalu занимает. Но тут надо еще pts и dts восстанавливать. Если b-frame нет, то это проще. Иначе не очень. SPS/PPS можно взять из аналогичного файла и если что подправить.
h264/avc1 — это как раз мой случай (moov целый). Читаю разную документацию и не вижу в ней упоминания терминов pts/dts/SPS/PPS. Можете ли вы сказать пару слов о них.
Я смотрю корректный mp4 файл и в нем первый Nalu имеет тип 6 "Supplemental enhancement information (SEI)", следующий имеет тип 5 "Coded slice of an IDR picture" (как я понимаю — это ключевой кадр), затем несколько имею тип 1 ("Coded slice of a non-IDR picture"), затем снова 5, затем снова несколько 1, и так до конца файла. Про тип 6 пишут, что он не обязателен. И если я все правильно понимаю, то мне нужно найти первый целый Nalu с типом 5, откинуть все Nalu до него, подправить tkhd/mdhd/stts/ctts/stsc/stsz/stco, и вроде бы должен получится корректный файла. Или я не правильно понимаю?