반응형


iDevice용 동영상 변환기를 10.0으로 업데이트했다.

9.x대의 마지막 버전인 9.1a 이후 두달 반만의 업데이트이다.

(2014/11/16에 10.7a로 업데이트)


이번 업데이트에는 단순한 기능 업데이트 외에도, 내부적으로 아주 많은 변화가 있었다.

사용하는 프리웨어의 개수를 4개로 줄였으며, 생성하는 임시파일의 개수도 최소화했다.

지원되는 미디어 형식도 늘렸고, 자막을 영상에 직접 굽는 기능도 추가했다.

이름도 아예 새로 지었다.

※ 상세한 내용은 별도 포스팅 참조


그럼에도 불구하고, 인터페이스는 거의 변화가 없다!!


이전과 마찬가지로 변환기는 아래 링크에서 다운받을 수 있며, 여전히 별도의 설치 프로그램따위는 없다.


iTrans_v10_7a.7z


관심 있는 분들의 수많은 지적과 질타 부탁드립니다. 이 프로그램은 여러분 덕에 완성되어 갑니다.




▲ iTrans의 상세한 기능 및 특징


#일반


1. 대상 비디오 파일을 목록에 드롭한 뒤 변환 버튼을 클릭하면 알아서 변환함

  지원 포맷:AVI, MKV, MP4(mov), MOV(qt), MPG(mpeg/dat/vob/m2ts/ts/tp),

                Real Media, OGM, FLV, WMV(asf), SWF, WebM


2. 저장 위치는 기본적으로 원본 폴더이며, 저장할 폴더를 지정 가능함


3. 결과 파일은 기본적으로 원본 파일명 앞에 prefix로 i)를 붙임

  단, 옵션에서 반드시 필요한 경우에만 이 prefix를 붙이도록 지정할 수 있음


4. 파일 변환시 바탕화면에 마크다운 형식의 로그 파일(iTrans_Log.md)을 기록할 수 있음


5. 변환 종료시 XP 이하에서는 전원 종료, Vista 이상에서는 최대 절전 모드로 전환할 수 있음


#비디오


6. raw 비디오가 mpeg4/H.264인 경우는 상세한 압축 옵션 확인후, 재생 가능하면 추출하고,

  재생 불가능한 옵션이거나, 그 이외의 포맷인 경우는 H.264로 재인코딩함

  재생 가능 여부는 iOS 5.x에서 수정된 규칙[각주:1]에 따라 확인함

  또한, 사용자 선택시 H.264로 재인코딩할 수 있음


7. 비디오 재인코딩은 FFMpeg을 사용하며, thread 개수를 사용자가 지정할 수 있고,
  재인코딩시 디인터레이스 및 영상을 회전시킬 수 있음


8. 아이폰3/4/4s/5에서 재생 가능 비디오 확인 여부를 선택하는 드롭다운리스트가 있음

  - H.264/MPEG4 강제 변환: MPEG4/H.264는 무조건 추출. 그 외는 무시함 (재인코딩 없음)

  - 재생 가능 비디오만 변환: iOS 5.x에서 수정된 규칙에 맞는 비디오만 추출 (재인코딩 없음)

  - 필요시 비디오 재인코딩: iOS 5.x 이상에서 재생가능한 비디오는 추출, 그 외는 H.264로 재인코딩

    (지원 프로파일은 very slow, slow, default, very fast 의 4종류임)

  - 비디오 강제 재인코딩: 무조건 H.264로 재인코딩


9. 플래쉬 비디오(FLV, SWF)도 일반적인 포맷과 같이 처리함

  MKV, AVI 등과 같은 과정으로 처리하며, 필요시 재인코딩도 실시함

  (즉, SWF 비디오를 MP4로 변환할 수 있음)


10. PAR/SAR를 확인하고 수정할 수 있음

  - PAR 유지: PAR를 그대로 사용함

  - PAR=1:1 : PAR를 강제로 1:1로 수정함

  - PAR<1.5(2.0): PAR이 일정 범위 이내면 그대로 사용, 범위를 벗어나면 1:1로 수정 (추천)

  - SAR=3:2 : SAR를 3:2로 강제 설정. 아이폰3~4에서 무조건 꽉찬 화면으로 재생됨 (화면비 왜곡)

  - SAR=16:9 : SAR를 16:9로 강제 설정. 아이폰5 이상에서 무조건 꽉찬 화면으로 재생됨 (화면비 왜곡)

  - SAR=4:3 : SAR를 4:3으로 강제 설정. 아이패드에서 무조건 꽉찬 화면으로 재생됨 (화면비 왜곡)


#오디오


11. 원본 파일과 같은 이름의 오디오 파일이 같은 폴더에 있으면 내부 오디오 대신 그 파일을 사용함.

  단, 옵션에서 지정시 내부 오디오와 외부 오디오를 동시에 적용할 수 있음.


12. 오디오 스트림은 가능한 AAC-LC로 변환후 합침

  원본의 오디오가 AAC-LC일 경우 재인코딩은 옵션 선택에 따라 안할 수도 있음


13. 오디오 인코딩시 2 채널 downmix를 하지 않을 수 있음
  이 경우는 iDevice에선 재생이 되지 않지만, 보존용으로는 사용이 가능한 수준의 음질이 나옴

14. 외부 오디오 파일명이 비디오와 같고 뒤에 DELAY 000ms의 문자열이 있으면 delay 적용함

  ex) 비디오: TEST.avi, 오디오: TEST T80 2_0ch 48KHz DELAY 125ms.ac3


15. 외부 오디오/자막 파일명이 비디오와 같고 뒤에 언어ID[각주:2]가 있으면 그 언어로 인식함

  ex) 비디오: TEST.avi, 오디오: TEST ko.ac3, 자막: TEST en.srt


16. 내부 오디오가 여러개일 때는 사용할 오디오의 우선순위를 국가코드 및 내부 순서로 지정가능

  - 언어는 한국어, 영어, 일본어, 독일어, 프랑스어, 러시아어 를 1순위로 선택 가능

  - 순서는 #1 ~ #9 중 하나를 1순위로 선택 가능

  - 원본 비디오의 모든 오디오를 변환할 수 있음

    (옵션에서 선택 가능, MKV/MP4/OGG 비디오에 한함)


17. 내부/외부 오디오가 여러 개이며, 우선순위를 미지정시 다음 순서로 하나를 선택함

  AAC → WAV → FLAC → DTS → AC3 → MP3 → MP2 → OGG → WMA

  (합치기만 하면 되는 오디오 → raw 오디오 → 음질 순)


18. 오디오/자막의 언어는 최대한 인식하며, 인식이 안된 경우 적용할 수 있는 기본언어 지정 가능함


19. 변환 대상 오디오가 AC3인 경우, 사용자 선택 시 이 AC3도 파일에 포함시킬 수 있음


#자막


20. 원본 파일과 같은 이름의 자막 파일이 같은 폴더에 있으면 내부 자막 대신 그 파일을 사용함.

  단, 옵션에서 지정시 내부 자막과 외부 자막을 동시에 적용할 수 있음.


21. 내부 자막은 SRT, ASS/SSA를 인식, 외부 자막은 SRT→SMI→ASS→SSA 순으로 인식

  다중 언어 SMI는 모든 자막을 변환후 사용하며, KRCC/ENCC/EGCC/JNCC를 각국어로 인식

  원본 자막 형식은 ANSI, 유니코드-BOM, 유니코드 UTF-8를 지원, 알아서 인식해 완벽히 변환

  ※ 내부적으로 유니코드만 사용하기 때문에 모든 글자를 변환하며, 최대한 오류를 보정함


22. 외부 자막이 ANSI 형식의 SRT인 경우 언어를 지정 가능: 한글/중국간체/일본어/서유럽/중앙유럽


23. 원본의 내부 자막이 여러 개이거나 SMI가 다중언어인 경우는 모든 국가의 자막을 변환

  외부자막이 SRT, ASS/SSA인 경우는 16번의 규칙에 따라 다중언어 지원함


오디오/자막을 언어 기준으로 선택 가능


24. 출력되는 자막의 크기는 18/24/36/48포인트를 사용가능한데, 이는 아이패드를 위한 것임

  하지만, 아이폰/아이패드의 퀵타임이 자막의 크기를 인식하지 않기 때문에 사실상 의미 없음


#챕터


25. MKV/MP4 파일에 포함된 챕터 정보를 인식하여 iOS용 챕터로 변환함


챕터도 여전히 잘 지원함


26. 외부 챕터파일(.ogm)이 있는 경우 이를 인식해서 iOS용 챕터로 변환함

  단, 비디오가 ogm 포맷인 경우 확장자 충돌 문제가 있어 인식하지 않음


  ※ ogm 포맷은 아래와 같은 구조이며, mp4/mkv 에서 이 형식으로 손쉽게 추출할 수도 있음


CHAPTER01=00:00:00.000

CHAPTER01NAME=Intro

CHAPTER02=00:01:00.000

CHAPTER02NAME=Act 1


#기타


27. 원본 비디오의 delay 값을 인식하고, 이를 적용해서 오디오/비디오 싱크를 맞춤.


28. 아이폰4/5 계열 뿐 아니라, 아이폰 3 계열, 아이패드 계열 모두 사용 가능함


29. 선택한 옵션은 모두 레지스트리에 저장됨. 저장 시점은 변환 시작시와 옵션 창에서 저장 클릭시임.

  즉, 옵션을 선택하고 프로그램을 종료하는 경우는 저장하지 않음

  저장위치는 \\HKEY_CURRENT_USER\Software\BLUEnLIVE\iTrans 임


30. VCi는 다양한 미디어 관련 프리웨어의 프론트엔드이며, 직접 변환에 개입하는 것은 자막뿐임

  VCi에서 사용하는 프리웨어 4종은 다음과 같음

  ffmpeg, Media Info, MP4Box, Nero AAC Encoder


31. 기본적으로 30번의 프로그램을 찾는 순서는 .\tools\path이며, 옵션에서 순서를 바꿀 수 있음

  즉, 새 버전의 프로그램을 사용하고 싶을 때는 설치한 뒤 경로(path)만 지정하면 됨

  단, MP4Box는 오직 .\tools\에 있는 것만 사용함. (관련 포스트 "갈수록 이상해지는 mp4box")




▲ 버전 히스토리


2013. 9. 22: 10.0

- 10.x대 최초 릴리즈


2013. 9. 29: 10.0a: Maintenance build

- mediainfo의 임시파일도 옵션에 따라 삭제 여부 처리[각주:3]

- 리스트 컨트롤을 더블클릭하면 원본 파일 또는 변환된 파일을 화면에 띄우는 기능 추가

- Windows 7 이상에서 프로그레스 표시를 비디오/오디오 양에 따라 가중치를 부여하도록 수정

- About Dialog에서 클릭하면 홈페이지가 열리도록 수정

- 버그수정: Windows XP에서 미디어 파일의 바로가기를 드롭하면 제대로 인식하지 못하던 문제 수정

- multibyte ↔ unicode 변환을 ATL 7.0의 매크로를 사용하도록 수정

- 아이폰4 이상 장비 대상 비디오 인코딩 시 최대 비트레이트를 3Mbps에서 5Mbps로 변경

- 버그수정: 툴팁 문구 중 iD) 부분 삭제


2013. 10. 4: 10.1

- mp4box는 path에서는 찾지 않고, .\tools\에서만 실행하도록 수정

- mkv 내부 자막을 변환할 경우 자막 오류를 검토/수정한 뒤 변환하도록 수정

- 배치 파일 이름이 계속 변하도록 수정

- 내부 비디오/오디오/자막의 title 속성을 그대로 적용하도록 수정

- 로그 파일명에 날짜/시간이 들어가는 등, 로그 포맷 일부 수정


2013. 10. 29: 10.2a

- 원본 날짜를 복사할 때 내부에 인코딩 날짜/시각 정보가 있으면 그 정보를 사용하도록 수정

- 비디오 처리의 초기값필요시 비디오 재인코딩으로 변경

- 비디오 추출시 AVI와 mp4 중에 더 적합한 쪽으로 추출하도록 수정

- 비디오 재인코딩시 비트레이트를 5% 증가시킴

- H.264 video profile 값을 3.2 또는 4.1만 쓰도록 수정

- 원본 비디오가 mkv + MS-MPEG 또는 DivX 3.x 인 경우 인식이 더욱 잘 되도록 수정

- deinterlace 정책을 약간 수정 (지정시 강제로 deinterlace 실시)

- 내부/외부 오디오를 모두 사용할 수 있는 옵션 추가

- 오디오 옵션이 원본 종류에 상관 없이 적용되도록 수정 (이전에는 AAC 옵션이 별도로 존재)

- status bar에 파일 정보 출력시 원본 비디오 파일의 정보만 출력하도록 수정

- Windows 8.1에서도 Windows의 버전를 제대로 인식하도록 수정


2013. 10. 31: 10.2b

- SAR 강제 조정 비율에 16:9 추가 (아이폰5 이상)

- 아이폰4s/5 등의 문구를 아이폰5 이상으로 통일


2013. 11. 22: 10.3

- 버그수정: SAMI 자막 변환시 가끔 &nbsp;가 갑자기 등장하는 문제 수정

- 버그수정: 원본이 mp4 파일인 경우 가끔 결과물의 길이가 이상하게 길어지는 문제 수정

- 자막의 길이가 비디오보다 긴 경우 자막을 자르도록 수정

- tooltip을 multiline으로 표시하도록 수정

- 자막 변환시 임시 파일명이 계속 바뀌도록 수정


2013. 12. 19: 10.3a

- mp4에서 추출한 자막에 &nbsp; 가 등장하는 경우 이를 정리하는 기능 추가[각주:4]

- 원본 비디오/오디오/자막의 정보 추가시 "Imported with"로 시작되는 경우는 제거함

- 컴파일러를 Visual Studio 2012 update4로 변경


2014. 7. 19: 10.3c

- 원본의 인코딩 시간이 UTC인 경우에도 local time으로 강제인식하도록 수정

- 버그수정: 원본의 속성에 따라 High 4:4:4로 변환하여 iDevice에서 재생하지 못하던 문제 수정

  ㆍ 원본이 High10 이상 profile의 H.264 비디오인 경우 High 이하 profile로 변환

  ㆍ 원본이 YUV 4:4:4, YUV 4:2:2, YUV 4:1:1인 경우 YUV 4:2:0으로 변환

  ㆍ 원본이 RGB인 경우 YUV 4:2:0으로 변환

- 버튼 크기 조정(변환 버튼을 약간 더 크게 수정)

- 컴파일러를 Visual Studio 2013 update2로 변경

- MediaInfo를 0.7.64로 업데이트


2014. 8. 11: 10.4

- 결과 파일의 날짜/시간 정보를 원본 파일 또는 인코딩 정보 참조 등으로 선택할 수 있도록 수정

- 10.3a에서 추가한 임시 기능 제거: mp4에서 추출한 자막에 &nbsp;가 등장하는 경우 정리

- 컴파일러를 Visual Studio 2013 update3으로 변경


2014. 9. 10: 10.5

- 버그수정: 오디오 음량 정규화 설정을 레지스트리에 제대로 기록하지 못하던 문제 수정

- MediaInfo 정보를 유니코드로 처리하도록 수정

- MediaInfo를 0.7.70으로 업데이트

2014. 9. 21: 10.6

비스타 이상에서 변환시 UTF-8 포맷으로 배치파일 생성하도록 수정

- 비스타 이상에서 변환시 8.3 포맷이 아닌 긴 이름을 사용하도록 수정[각주:5]

- 카피라이트 문구 수정


2014. 9. 23: 10.6a

- 오디오 포맷 인식시 mp2와 mp3를 구분하도록 수정 (기존에는 모든 mpeg 오디오를 mp3로 통칭)


2014. 10. 6: 10.7

- 비스타 이상에서 변환시에도 8.3 포맷을 사용하도록 수정 (10.6의 수정을 취소함)

- 버그수정: VFR 동영상을 변환할 때 가끔 Bit Rate를 이상하게 지정하는 문제 수정

- 버그수정: 비디오 스트림이 둘 이상 있는(ㅡ.ㅡ;) 경우 첫번째를 처리하도록 수정

- 비디오 비트레이트를 선택할 수 있도록 수정
- 확장자 오류시 정상적인 확장자로 복사한 뒤 변환하도록 수정

- 추출/변환 결과 파일이 너무 작은 경우도 실패하는 것으로 인식하도록 수정


2014. 11. 16: 10.7a

- 버그수정: 원본 파일의 크기가 2GB 이상일 때 파일 크기를 음수로 인식하는 바보같은 문제[각주:6] 수정

- 버그수정: 오디오 임시파일이 특정 조건을 만족하는 경우 오디오가 잘리는 문제 수정(관련 포스트)

- 오디오 변환 시간을 조금 빠르게 수정

- mediainfo를 0.7.71으로 업데이트

- 컴파일러를 Visual Studio 2013 Update4로 교체



  1. 여기 설명된 내용에 추가하여 10 bits AVC도 재생할 수 없음 [본문으로]
  2. 언어ID는 알파벳 2개 또는 3개로 구성됨. ex) ko, ja, en 등 [본문으로]
  3. 기존에는 mediainfo의 임시파일은 무조건 삭제했음 [본문으로]
  4. 10.2대에서 발생한 문제를 뒷처리하기 위한 기능으로, 10.4에서 제거 [본문으로]
  5. 비스타 이상에서는 "비 ASCII 문자 포함" 메시지는 나오지 않는다는 뜻 [본문으로]
  6. 대체 난 무슨 짓을 한 거냐… lllorz [본문으로]
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band