ffmpeg.exe nodejs 를 사용하여 MTS 파일 MP4로 변환하기

카테고리 없음 2023. 11. 22. 15:42
/*********************************************
 * MTS 파일을 MP4 파일로 변환하는 프로그램
 * 2023-11-22 slowhand
 * 
 * 필요
 * 1) node-cmd 라이브러리 설치 : npm i node-cmd
 * 2) ffmpeg.exe 파일 필요
 * 
 *********************************************/
const fs = require('fs');
const cmd = require('node-cmd');

const outputDir = './output';


class FileName{
	constructor( fileName){
		this.fileName = fileName;
	}

	get ext(){
		return this.fileName.substring( this.fileName.lastIndexOf('.') + 1);
	}

	get outputFileName(){
		return this.fileName.substring( 0, this.fileName.lastIndexOf('.')) + ".mp4";
	}
}

const files = fs.readdirSync('./');
const outputFiles = fs.readdirSync( outputDir);

files
	.map( f => new FileName(f))
	// filter MTS file
	.filter( o => {
		return o.ext.toUpperCase() === 'MTS';
	})
	// filter MP4 file
	.filter( o => {
		return outputFiles.filter( of => {
			return of === o.outputFileName;
		}).length == 0;
	})
	.forEach( o => {
		const line = `ffmpeg -i ${o.fileName} -c:v copy -c:a aac -strict experimental -b:a 128k ${outputDir}/${o.outputFileName}`;
		console.log( line);
		cmd.runSync( line);
	})
: