... Dub
Мне как-то потребовалось извлечь аудио из *.FLV файлов. Графические видеоредакторы мне показались для этой цели слижком уж неподходящими, поэтому я решил написать свою собственную утилиту, делающую извлечение звука из любых медиафайлов, в командной строке.
Я пользовался только опенсорсными продуктами.
Итак, что нам потребуется:
- набор кодеков, такой как K-Lite Codec Pack
- видеоредактор Virtual Dub
- AVISynth
Шаг 1. Устанавливаем K-Lite Codec Pack, Virtual Dub и AVISynth.
Шаг 2. Пишем вот такой скрипт на BAT-языке командного процессора cmd.exe:
@echo off
@rem © danx
set VD=VirtualDub.audio.
echo VirtualDub.Open(VirtualDub.params[0],"",0); > 1.jobs
echo %VD%SetSource(1); >> 1.jobs
echo %VD%SetMode(1); >> 1.jobs
echo %VD%SetInterleave(1,500,1,0,0); >> 1.jobs
echo %VD%SetClipMode(1,1); >> 1.jobs
echo %VD%SetConversion(44100,0,1,0,1); >> 1.jobs
echo %VD%SetVolume(); >> 1.jobs
echo %VD%SetCompression(); >> 1.jobs
echo %VD%EnableFilterGraph(0); >> 1.jobs
echo %VD%filters.Clear(); >> 1.jobs
echo VirtualDub.SaveWAV(VirtualDub.params[1]); >> 1.jobs
echo VirtualDub.Close(); >> 1.jobs
FOR %%i IN (*.*) do (
if not exist %%~ni.wav (
echo.
echo Re-compressing %%i
echo c = DirectShowSource^("%%i"^) > 3.avs
echo AudioDub^(BlankClip^(length=c.FrameCount^), c^) >> 3.avs
"C:\Program Files\VirtulDub\vdub.exe" /i 1.jobs 3.avs %%~ni.wav >nul
)
)
del /q /s 3.avs >nul 2>&1
del /q /s 1.jobs >nul 2>&1
Читать дальше →