В очередной раз столкнувшись с необходимостью свести в контейнер
PSS большого количества файлов, решил что надо это дело как-то себе облегчить и написать для автоматизации скрипт. Под
BIK и
SFD скрипты уже давно сделал, а с
PSS была маленькая проблема, суть которой опишу ниже:
Для сведения будет использоваться
ps2str и несмотря на то, что у этой программы есть консольный режим, использовать ее в нем не получалось, т.к. в качестве одного из аргументов программе нужен mux-файл с описанием дорожек для сведения. И этот mux-файл для каждого PSS должен быть свой.
Потратив сегодня некоторое количество времени, скрипт для автоматизации был написан.
При запуске скрипта нужно будет ответить всего на 3 вопроса:
1. Указать путь, где лежат m2v и ads (должны лежать в одной папке).
2. Указать путь, куда положить итоговые PSS.
3. Указать, в каком формате сводится звук (adpcm или pcm).
Все, дальше скрипт все сделает сам.
Только одно но, аудиофайлы должны иметь определенный формат имени.
 |
Цитата: |
 |
|
|
|
|
|
|
|
video_0.m2v - пример имени видеофайла
video_0.m2v.ads - так должен называться аудиофайл
|
|
 |
|
 |
|
Впринципе ничего нового нет, все скрипты для автоматизации требуют такого варианта имен.
Сам скрипт ниже. Вдруг кому пригодится. Да и для сохранности тоже. =)
Скрипт
@echo off
SetLocal DisableDelayedExpansion
echo.
echo.
echo Which PATH to your muxing files?
echo.
set /P mux_path=Input: %=%
if not "%mux_path:~-1%"=="\" set "mux_path=%mux_path%\"
echo.
echo.
echo Where would you like to store your output PSS files?
echo.
set /P pss_path=Input: %=%
if not "%pss_path:~-1%"=="\" set "pss_path=%pss_path%\"
echo.
echo.
:sound_choose
echo What type of sound will be muxing (adpcm/pcm)?
echo.
set /P sound_type=Input: %=%
if %sound_type%==adpcm (
goto start
) else if %sound_type%==pcm (
goto start
) else (
goto sound_choose
)
:start
chcp 1251 >nul
for %%i in ("%mux_path%*.m2v") do (
echo pss>>tmp.txt
echo. >>tmp.txt
echo stream video:0>>tmp.txt
echo input "%%i">>tmp.txt
echo end>>tmp.txt
echo. >>tmp.txt
echo stream %sound_type%:0>>tmp.txt
echo input "%%i.ADS">>tmp.txt
echo end>>tmp.txt
echo end>>tmp.txt
echo.
chcp 866 >nul
move tmp.txt %%~ni.mux && start /wait ps2str m %%~ni.mux -o -v && move %%~ni.pss "%pss_path%"
del %%~ni.mux
)
EndLocal
P.S. Скрипт рассчитан на 1 видеодорожку и 1 аудиодорожку. В случае если аудиодорожек несколько, или дорожка пишется не на нулевую позицию, скрипт легко отредактировать.