49 lines
1.0 KiB
JavaScript
49 lines
1.0 KiB
JavaScript
const { mkdirSync } = require('node:fs')
|
|
const { spawnSync } = require('node:child_process')
|
|
mkdirSync('fixtures', { recursive: true })
|
|
const jobs = [
|
|
[
|
|
'-f',
|
|
'lavfi',
|
|
'-i',
|
|
'sine=frequency=1000:sample_rate=48000:duration=60',
|
|
'-af',
|
|
'volume=0.1',
|
|
'-c:a',
|
|
'pcm_s16le',
|
|
'fixtures/audio.wav',
|
|
],
|
|
[
|
|
'-f',
|
|
'lavfi',
|
|
'-i',
|
|
'testsrc2=size=1280x720:rate=30:duration=60',
|
|
'-f',
|
|
'lavfi',
|
|
'-i',
|
|
'sine=frequency=1000:sample_rate=48000:duration=60',
|
|
'-af',
|
|
'volume=0.1',
|
|
'-c:v',
|
|
'libx264',
|
|
'-preset',
|
|
'fast',
|
|
'-pix_fmt',
|
|
'yuv420p',
|
|
'-c:a',
|
|
'aac',
|
|
'-movflags',
|
|
'+faststart',
|
|
'-shortest',
|
|
'fixtures/video.mp4',
|
|
],
|
|
]
|
|
for (const args of jobs) {
|
|
const result = spawnSync('ffmpeg', ['-hide_banner', '-loglevel', 'error', '-y', ...args], {
|
|
stdio: 'inherit',
|
|
})
|
|
if (result.error)
|
|
console.error('Установите ffmpeg с libx264 и добавьте в PATH:', result.error.message)
|
|
if (result.error || result.status !== 0) process.exit(1)
|
|
}
|