 |
Цитата: |
 |
|
|
|
|
|
|
Возможно там нужно тайминг сделать одинаковый, но учитывая сколько там файлов, в ручную сделать не реально.
|
|
 |
|
 |
|
Тайминг одинаковый сделать не реально, да, это поседеть можно за это время. А автоматом количество семплов все равно будет отличаться от таблицы.
 |
Цитата: |
 |
|
|
|
|
|
|
А ffmpeg может просчитать тайминг в afs (звуках) и потом просто создать таблицу для wav
|
|
 |
|
 |
|
В семплах? Это я могу сделать, но не через ffmpeg, а test.exe
Могу заняться, если есть идея. Только скажи какую информацию дампить и какого вида таблица должна быть.
И замена одного звука ничего не даст, он будет работать, надо менять именно все, тогда игру начинает коробить.
 |
Цитата: |
 |
|
|
|
|
|
|
А битрейт в sx.exe выставить можно?
|
|
 |
|
 |
|
Можно, ключ -cbr вроде, если ты про этот. Полный help по кодировке: sx.exe e -h
Но у них он одинаковый, вот смотри, это я через test.exe вывел
Оригинальный ASF
c:\tmp\RUS_SOUND_3_progs>test 00000525_00001_ENG.asf
decoding 00000525_00001_ENG.asf
sample rate: 22050 Hz
channels: 1
stream total samples: 434403 (0:19.701 seconds)
encoding: Electronic Arts MicroTalk
layout: blocked (EA SCHl)
metadata from: Electronic Arts SCHl header (variable)
bitrate: 38 kbps
play duration: 434403 samples (0:19.701 seconds)
Русский ASF
c:\tmp\RUS_SOUND_3_progs>test 00000525_00001_RUS.asf
decoding 00000525_00001_RUS.asf
sample rate: 22050 Hz
channels: 1
stream total samples: 425804 (0:19.311 seconds)
encoding: Electronic Arts MicroTalk
layout: blocked (EA SCHl)
metadata from: Electronic Arts SCHl header (variable)
bitrate: 38 kbps
play duration: 425804 samples (0:19.311 seconds)
 |
Цитата: |
 |
|
|
|
|
|
|
Заметил что структура у asf файлов разная, в конце 16 байт должно быть
|
|
 |
|
 |
|
И это я делал, даже батник сохранился по переделке файлов, не помогло.
Делаем кратно 16
SetLocal EnableExtensions EnableDelayedExpansion
for %%i in ("*.asf") do call :calc %%~zi %%~nxi
goto EXIT
:calc
for /f "delims=" %%i in ('"calc.exe %1 / 16"') do set "div=%%i"
for /f "tokens=1,2 delims=." %%a in ("%div%") do (set drob=%%b)
if not exist ReSIZED md ReSIZED
if "%drob%"=="000000000" copy /b "%2" ReSIZED
if "%drob%"=="250000000" dd.exe if="/dev/zero" of="~tmp.bin" bs=12 count=1 && copy /b "%2" + "~tmp.bin" ReSIZED
if "%drob%"=="500000000" dd.exe if="/dev/zero" of="~tmp.bin" bs=8 count=1 && copy /b "%2" + "~tmp.bin" ReSIZED
if "%drob%"=="750000000" dd.exe if="/dev/zero" of="~tmp.bin" bs=4 count=1 && copy /b "%2" + "~tmp.bin" ReSIZED
del "~tmp.bin"
Exit /b
:EXIT