Войти

Показать полную графическую версию : Поиск в бинарном файле


afj
24-09-2021, 05:21
Смотрю видео с внешней аудиодорожкой ac3, и часто она с другого релиза (другие заставки вначале) и сдвинута по времени. Плееры хорошо отрабатывают сдвиг внешнего аудио назад, но плохо - вперёд.
Поэтому для сдвига вперёд делаю "наращивание" дорожек ac3 спереди пустыми фреймами.::setlocal enableextensions enabledelayedexpansion
set /a dur=%1
echo %dur%
set /a quant=dur/32
echo %quant%
set cl=1f.ac3
for /L %%i in (2,1,%quant%) do call set "cl=%%cl%% +1f.ac3"
echo %cl%
copy %cl% +%2 /B %2- /Bбатник вызывается addac3 <длительность сдвига> <аудиодрожка>
По сдвигу рассчитывается количество вставляемых фреймов-пустышек (файл 1f.ac3), и формируется команда copy.
Но файлы бывают разных битрейтов, и для каждого битрейта нужна своя "пустышка". Размеры фреймов для разных битрейтов известны, заголовок известен, и возможные его смещения известны. Хочется определять это в рантайме.
По сути поиск подстроки в строке, только обе бинарные.
Чем силами cmd/vbs "пощупать" бинарный файл по заданным смещениям, либо искать в нем нужную бинарную последовательность?

Также хотелось бы реализовать порезку дорожки (сдвиг назад). Чем силами cmd/vbs можно разрезать (достаточно большой) бинарный файл?

ЗЫ про ffmpeg знаю

Iska
24-09-2021, 06:34
Чем силами cmd/vbs "пощупать" бинарный файл по заданным смещениям, »
PowerShell. Ни пакетные файлы, ни WSH не предназначены для работы с двоичными данными.

DJ Mogarych
24-09-2021, 08:44
Может быть, поможет sfk (http://stahlworks.com/dev/swiss-file-knife.html).




© OSzone.net 2001-2012