Редактирование mp4 путем манипулирования семплами
Я хотел бы редактировать / манипулировать файлом mp4 без декодирования / кодирования кадров и хотел бы знать, возможно ли это.
Предположим, что у меня есть 2 набора аудио / видео, закодированных с одинаковыми параметрами.
Что касается видео, скажите, что у меня была последовательность кадров, например: IBPPBPPBPPB, и я хотел изменить это на (где -> это то, что я вставляю) IBPPB->IBPP
Будет ли это работать хорошо?
Я хотел бы сделать что-то подобное с аудио AAC, удалив / вставив сэмплы.
1 ответ
В некоторых случаях возможно манипулировать содержимым файла mp4 без декодирования / кодирования кадров. Например, вы можете разбить файл MP4 на отдельные файлы или объединить файлы mp4. В целом, конкатенация работает, если у вас есть совместимые конфигурации кодирования.
Для аудиопотоков AAC не существует зависимостей декодирования между аудиокадрами, поэтому, если потоки имеют одинаковую конфигурацию, вы можете без проблем редактировать на уровне mp4.
Для видеопотоков, опять-таки с той же конфигурацией, вам нужно объединить потоки, начиная с точек произвольного доступа (closed gop).
Для всех этих операций вы можете использовать MP4Box:
MP4Box -split 10:20 file.mp4 -out file-split-10-20.mp4
создаст новый файл, содержащий всего 10 секунд.
MP4Box -cat file1.mp4 -cat file2.mp4 output.mp4
объединит два файла для создания нового файла.