Создание «дыр» в двоичном потоке битов H.264 - PullRequest
1 голос
/ 23 февраля 2012

Я пытаюсь смоделировать потерю данных в видео, выборочно удаляя данные битового потока H.264. Данные представляют собой просто необработанный файл H.264, который по сути является двоичным файлом. Мой план состоит в том, чтобы удалить 2 байта на каждые 100 байтов, чтобы достичь потери 2%. Со временем я буду проверять эффективность некоторых алгоритмов маскирования ошибок вектора движения.

Было бы неплохо сделать это в среде Unix. До сих пор я немного изучил команду xxd и смог сохранить определенную часть шестнадцатеричного дампа из двоичного файла. Например, чтобы пропустить первые 50 байтов двоичного потока битов и сохранить последующие 100 байтов, я бы сделал следующее:

xxd -s 50 -l 100 inputBinaryFile | xxd -r > outputBinaryFile

Я надеюсь включить нечто подобное в скрипт bash, который автоматически удалит последние 2 байта на 100 байтов. Кроме того, я хотел бы, чтобы скрипт пропускал все до второго появления последовательности 00 00 01 06 05 (стартовый код первого P-кадра SEI).

Я не знаю, насколько проще это может быть на языке Си, но мои навыки программирования весьма ограничены, и я предпочел бы сейчас заниматься только программированием на Linux, если это возможно.

Спасибо.

...