티스토리 뷰
방명록에 지난 10년도 넘게 사용했던 플래시 질문이 올라와서 반가운 마음에 무시하지 못하고 몇가지 방법에 대해 작성해보았다
https://serpiko.tistory.com/guestbook
fla를 mp4로 일괄 변환하는 방법
방법1. 이 스크립트는 폴더 내의 모든 FLA를 열고 기본 타임라인 프레임을 기준으로 압축되지 않은 .mov로 내보낸 다음
생성된 비디오 파일을 .mp4로 변환할 수 있도록 Adobe Media Encoder를 열어 변환하는 방식이다.
- 특정 `.fla` 파일이 모여있는 경로를 선택한다
- 일괄로 압축되지 않은 `.mov` 로 먼저 변환한다
- 변환된 `.mov`를 다시 `.mp4`로 변환할 Adobe Media Encoder 를 실행시킨다
- 이렇게 mov 를 거치는 이유는 다음과 같다
mp4 라는 비디오 파일로 내보내기를 하려면 먼저 완성된 쇼크웨이브파일(swf)나 영상 원본(mov)의 소스가
우선 필요하기 때문이다.
function main()
{
var uri = fl.browseForFolderURL("select", "fla 파일이 있는 폴더 경로를 선택해주세요.");
var files = FLfile.listFolder(uri + "/*.fla", "Files.");
var total = files.length;
var dom, i, source;
try
{
for (i = 0; i < total; i++)
{
source = uri + "/" + files[i];
fl.openDocument(source);
dom = fl.getDocumentDOM();
dom.exportVideo(source.slice(0, -4) + ".mov", true, false, true, dom.timelines[0].frameCount);
dom.close(false);
}
}
catch(error)
{
fl.trace(files);
fl.trace(error);
fl.trace("___________");
}
}
main();
방법2. (주의!! 직접 플래시를 동작시켜 확인해보지 못했으므로.. 동작에 실패할 수 있습니다.)
위의 코드에서 조금 변형하였는데 내용은 다음과 같다
- 프로그램에서 열려진 `.fla`를 `.mov`로 내보내기하고
- Adobe Media Encoder 로 열어서 `.mp4`로 변환하는 방법
function flaToMp4(){
var docs = fl.documents; // an array of Document objects (see Document Object)
try{
for(var i=0; i<docs.length; i++){
var dom = docs[i];
var fullPath = dom.pathURI; // displays file:///C|/Documents%20and%20Settings/<userName>/My%20Documents/test.fla
var fileName = fullPath.slice(0, -4);
/**
* @function document.exportVideo()
* @description 문서에서 비디오를 내보내고 선택적으로 Adobe Media Encoder로 보내어 비디오를 변환한다
* @usage exportVideo( fileURI [, convertInAdobeMediaEncoder] [, transparent] [, stopAtFrame] [, stopAtFrameOrTime] )
* @params fileURI {string} - `file:///URI`로 표현된 문자열로, 비디오가 저장되는 완전한 경로를 지정
* @params convertInAdobeMediaEncoder {boolean} - 녹화된 비디오를 Adobe Media Encoder로 보낼지 여부를 지정, 기본값은 true
* @params transparent {boolean} - 배경을 비디오에 포함할지 여부를 지정, 기본값은 false
* @params stopAtFrame {boolean} - 비디오가 특정 프레임이나 특정 시간까지 녹화되어야 하는지 여부를 지정, 이는 특정 프레임에 도달하면 녹화를 중지함, 기본값 true
* @params stopAtFrameOrTime {number} - `stopAtFrame`이 true인 경우 녹화할 프레임 수를 나타내는 정수, 만약 stopAtFrame이 false인 경우 이값은 녹화할 밀리초 이다
* 기본값은 0 이며, stopAtFrame이 true인 경우 메인 타임라인의 모든 프레임을 녹화한
* @Example
* fl.getDocumentDOM().exportVideo("file:///C|/myProject/myVideo.mov");
*/
dom.exportVideo(fileName + ".mov", true, false, true, dom.timelines[0].frameCount);
dom.close(false);
}
}catch(error){
fl.trace(error);
}
}
flaToMp4();
방법3. SWF to MP$ Converter 클라우드 툴을 이용 https://cloudconvert.com/swf-to-mp4
클라우드 서버를 이용하여 swf를 mp4 로 바꿔주는 툴을 이용하는 방법
위에 소개 했듯이 mp4로 바꿀 swf는 미리 준비해야 한다.
주의할 점
- document.exportVideo() 메서드의 url 은 접두어가 `file://` 로 시작되어야 한다. 만약 상대 경로인 `C://` 로 시작한다면 ` platformPathToURI` 메서드 등을 이용하여 변환하여야 하고 document.pathURI 메서드의 경우 기본적으로 `file://` 프로토콜을 반환하므로 이 걱정에서 벗어날 수 있다
- fl.documents 메서드를 사용한 각 원소의 객체는 fl.getDocumentDOM() 을 사용한 결과와 동일하며, 열려진 fla파일이라고 간주해도 무방할 것 같다.
- 출처
* Extending ADOBE® FLASH® PROFESSIONAL
* Automatic export all fla(as3) files to mp4
'■ 플래시 ■ > Adobe Flash CS6' 카테고리의 다른 글
FLfile.remove로 파일 혹은 폴더 삭제하기 (1) | 2024.01.23 |
---|---|
Flash CS6 - GIF Animation Export (0) | 2014.11.17 |
[Drawing]_jkDrawingTools (0) | 2014.03.06 |
flash2svg (0) | 2014.03.06 |
Layer Outlines, Lock, Show, Un Outlines (0) | 2014.03.06 |