Fit Studio 2 inputs and report live generation progress
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
import { mkdtempSync, writeFileSync, readFileSync, rmSync } from 'node:fs'
|
||||
import { join } from 'node:path'
|
||||
import { tmpdir } from 'node:os'
|
||||
import { runFfmpeg } from '../ffmpeg'
|
||||
export async function fitStill(data: Buffer, width: number, height: number) {
|
||||
const dir=mkdtempSync(join(tmpdir(),'studio2-fit-'))
|
||||
try {
|
||||
const input=join(dir,'source'),output=join(dir,'fitted.png')
|
||||
writeFileSync(input,data)
|
||||
await runFfmpeg(['-y','-i',input,'-vf',`scale=${width}:${height}:force_original_aspect_ratio=decrease,pad=${width}:${height}:(ow-iw)/2:(oh-ih)/2:color=black,setsar=1`,'-frames:v','1',output])
|
||||
return readFileSync(output)
|
||||
} finally { rmSync(dir,{recursive:true,force:true}) }
|
||||
}
|
||||
Reference in New Issue
Block a user