최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday

티스토리 뷰

■ 플래시 ■/Adobe Flash CS6

fla to mp4

serpiko 2023. 11. 28. 16:57

 

방명록에 지난 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

flash_cs5_extending.pdf
10.58MB

 

* Automatic export all fla(as3) files to mp4

* fl.document.pathURI

 

JSFL fl.saveDocumentAs();

I am writing a JSFL script that resizes flas and saves various versions, with appened names. I can get a "Save As" prompt to pop up using fl.saveDocumentAs(); But I can't seem to get flash to ge...

stackoverflow.com

 

 

'■ 플래시 ■ > 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
댓글