지정된 폴더에서 파일을 검색 후 특정 단어가 포함된 비디오(.mp4) 파일을 찾고 프로그램(ffmpeg.exe)을 다중 실행하여 스트림을 재 조립하는 샘플 코드입니다.
* V0.7.0 이상 지원
*실행하는 프로그램의 최대 개수 제한 필요
var message = "";
var succeeded = 0, failed = 0;
var processes = {};
var files = getFiles("e:\\temp\\테스트");
var paths = JSON.parse(files);
for (index = 0; index < paths.length; ++index)
{
var path = paths[index];
// 전체 경로에서 디렉터리 경로를 찾는다.
var slash = path.lastIndexOf("\\");
// 파일명을 얻는다.
var fileName = path.substring(1 + slash);
// 파일명에서 확장명을 찾는다.
var dot = fileName.lastIndexOf(".");
if (-1 == dot) {
continue;
}
// 파일명에서 이름과 확장명을 얻는다.
var extension = fileName.substring(dot);
fileName = fileName.substring(0, dot);
if (-1 != fileName.indexOf("다시보기") && ".mp4" == extension)
{
// ffmpeg.exe를 실행하여 스트림을 다시 조립한다.
var processId = createProcess("e:\\temp\\movies\\ffmpeg.exe", "-i \"" + path + "\" -vcodec copy -acodec copy \"" + path.substring(0, 1 + slash) + fileName.replace("다시보기", "").trim() + extension + "\"");
if (-1/*실행*/ == processId) {
++failed;
message += getLastError() + "\n";
}
else {
processes[processId] = path;
}
}
}
for (var processId in processes)
{
var result = waitForExit(processId, 0/*무한대기*/);
if (0/*성공*/ == result)
{
++succeeded;
// 원본 파일을 삭제한다.
deleteFile(processes[processId]);
}
else
{
++failed;
message += "[0x" + result.toString(16) + "] " + processes[processId] + "\n";
}
}
if (0 == failed) {
message = "모든 작업이 완료됐습니다.";
} else if (0 < succeeded) {
message = "일부 작업이 실패했습니다.\n\n" + message;
} else {
message = "모든 작업이 실패했습니다.\n\n" + message;
}
alert(message);
'EasyRenamer > 샘플 스크립트' 카테고리의 다른 글
[샘플] 텍스트 Editor에 파일 추가 (0) | 2022.12.16 |
---|---|
[샘플] 비디오 검색 후 ffmpeg 으로 스트림 재 조립(단일 실행) (0) | 2022.12.16 |
[샘플] 모든 파일명 100개씩 읽고 수정 후 기록 (0) | 2022.11.26 |
[샘플] 모든 파일명 1개씩 읽고 콘솔에 속성 출력 (0) | 2022.11.26 |
[샘플] 로그 1만건 파일 기록 (0) | 2022.11.26 |