Как открыть первые n байтов файла в шестнадцатеричном формате и отредактировать его?

2980
Larssend

Я хочу отредактировать некоторые видео .avi (вырезать их, если быть точным) в VirtualDub, но он не смог открыть файлы. Они закодированы в xvid, который я установил, и играют в KMPlayer без проблем. Кроме того, все другие видео xvid могут быть легко открыты и вырезаны VirtualDub.

Я подозреваю, что что-то не так в первых нескольких байтах этих видео (магическое число?). Это означает, что я должен открыть файлы, нарушающие работу, в шестнадцатеричном редакторе и внести некоторые необходимые изменения в заголовок. Проблема в том, что они очень большие (> 3 ГБ каждая) и открываются в UltraEdit очень долго.

Может ли UltraEdit открыть только первые несколько байтов файла? Если нет, знаете ли вы о приложении, которое может это сделать?

Изменить: я использую Windows XP.

1
Я подозреваю, что вы пытаетесь поставить телегу перед лошадью. Может быть, вы могли бы попытаться исправить видео (например, позволив `ffmpeg` сначала поместить его в другой контейнер)? slhck 12 лет назад 0
Это действительно займет много времени. После выбора «Отключить временные файлы при открытии больших файлов (более 47 МБ) только для этого раздела редактирования» потребовалось 22 секунды для файла объемом 1,0 ГБ и 243 секунды (4 минуты) для файла объемом 3,3 ГБ. Протестировано на 64-битной Windows XP с 8 ГБ оперативной памяти и UltraEdit v. 16.2. Peter Mortensen 12 лет назад 0
Larssend, это 32-битная или 64-битная Windows XP? Peter Mortensen 12 лет назад 0

2 ответа на вопрос

3
Peter Mortensen

Нет, насколько мне известно (пользователь UltraEdit с 1998 года) UltraEdit считывает весь файл в память, а также есть некоторые недостатки, которые описаны в комментариях к этому вопросу (и дальнейшие недостатки при открытии больших файлов HTML).

Однако, если ваша система работает (64-битная Windows и достаточно оперативной памяти) и временные файлы отключены для больших файлов (меню «Дополнительно» / «Конфигурация» / «Обработка файлов» / «Временные файлы» / «Отключить временные файлы при открытии больших файлов (больше 2) Мб) ") тогда должно получиться немного терпения.

Шестнадцатеричные редакторы для больших файлов

  1. HxD . Из функций : «Мгновенное открытие независимо от размера файла. Открытие и редактирование очень быстро»

  2. Из списка шестнадцатеричных редакторов я нашел wxHexEditor, который выглядит многообещающе:

    • Он не копирует весь файл в вашу оперативную память.
    • Использование памяти: в настоящее время ~ 25 МБ при открытых нескольких файлах> ~ 8 ГБ.
    • Вы можете работать с байтами удаления / вставки в файл более одного раза, не создавая временный файл!
    • Он поддерживает файлы размером до 2 ^ 64 байт. Помимо Linux его можно использовать с другими операционными системами, такими как Windows и Mac OS.

Я не проверял их, хотя.

0
pi3

Недавно я опубликовал Hexinator - бесплатный шестнадцатеричный редактор для Windows и Linux, который позволяет мгновенно открывать файлы неограниченного размера - в память загружается только видимая часть.

Несвободная часть позволяет вам применять «грамматику» к двоичным файлам, которая позволяет автоматически декодировать файлы. Уже есть (бесплатная) грамматика для файлов WAV, которая основана на RIFF, как AVI. Вы можете попробовать применить эту грамматику и посмотреть, где она плохо разбирается.

Похожие вопросы