아이폰용 동영상 변환기 v6.9 업데이트

2011/12/27 - [일상생활들/아이폰4] - 아이폰용 동영상 변환기 v5.6 업데이트


2012년 새해를 맞아 VCi를 6.x대로 업데이트했다.
5.x대에서 요구된 많은 기능들을 수용하면서 메이저 버전번호를 올리기로 했다.

인터페이스는 이번에도 커다란 변화가 없음




VCi의 기능 및 특징은 아래와 같다.

1. 변환을 원하는 파일을 비디오 파일 목록에 떨어뜨린 뒤 변환 버튼을 클릭하면 알아서 변환함
  인식하는 포맷은 AVI, MKV, MP4(mov), MOV(qt), OGM, FLV, MPG(mpeg/dat/vob), WMV(asf), SWF

2. raw 비디오 포맷이 mpeg4 또는 H.264인 경우는 정확한 압축 옵션을 확인해서, 재생 가능하면 추출하고,
  재생 불가능한 옵션이거나, 그 이외의 포맷인 경우는 H.264로 다시 인코딩함
  재생 가능 여부는 iOS 5.x에서 수정된 규칙에 따라 확인함
  또한, 사용자 선택시 무조건 H.264로 다시 인코딩할 수 있음

3. 비디오 재인코딩시 디인터레이스 및 영상을 회전시킬 수 있음

4. 저장 위치는 기본적으로 원본 폴더이며, 저장할 폴더를 지정할 수 있음

5. 결과 파일은 원본 파일명 앞에 [VCi]를 붙임
  필요시 추가로 싱크를 보정하며, 결과물은 원본 파일명 앞에 [VCi-DC]를 붙임

6. 비디오 스트림은 원본에서 추출하며, 오디오 스트림은 추출한 뒤 AAC-LC로 변환해서 다시 합침
  오디오가 AAC-LC일 경우 재인코딩은 옵션 선택에 따라 안할 수도 있음

7. 아이폰3/4/4s에서 재생 가능한 비디오인지 확인 여부를 선택하는 드롭다운리스트가 있음
  - H.264/MPEG4만 강제 변환: MPEG4/H.264는 무조건 추출. 이외의 포맷은 추출하지 않음 (재인코딩 없음)
  - 재생 가능 비디오만 변환: iOS 5.x에서 수정된 규칙에 적합한 비디오만 추출 (재인코딩 없음)
  - 필요시 비디오 재인코딩: iOS 5.x에서 재생가능한 비디오는 추출, 그 외의 비디오는 H.264로 재인코딩
    (지원 프로파일은 slow, fast, very fast, super fast, ultra fast의 5종류임)
  - 비디오 강제 재인코딩: 무조건 H.264로 재인코딩

8. 플래쉬 비디오(FLV, SWF)도 일반적인 포맷과 같이 처리함
  MKV, AVI 등과 같은 과정으로 처리하며, 필요시 재인코딩도 실시함
  (즉, SWF 비디오를 MP4로 변환할 수 있음)

9. PAR/SAR를 확인하고 수정할 수 있음
  - PAR 유지: PAR를 그대로 사용함
  - PAR=1:1 : PAR를 강제로 1:1로 수정함
  - PAR<1.5(2.0): PAR이 일정 범위 이내면 그대로 사용하고, 범위를 벗어나면 1:1로 수정함 (추천)
  - SAR=3:2 : SAR를 3:2로 강제 설정함. 아이폰에서 무조건 꽉찬 화면으로 재생됨 (화면 왜곡됨)
  - SAR=4:3 : SAR를 4:3으로 강제 설정함. 아이패드에서 무조건 꽉찬 화면으로 재생됨 (화면 왜곡됨)

10. 원본 파일과 같은 이름의 오디오/자막 파일이 같은 폴더에 있으면 그 파일을 사용함

11. 외부 오디오의 파일명이 비디오와 동일하며 뒤에 DELAY 000ms 라는 문자열이 있으면 delay를 적용함
  ex) 비디오: TEST.avi, 오디오: TEST T80 2_0ch 48KHz DELAY 125ms.ac3

12. 내부 오디오가 여러개일 때는 사용할 오디오의 우선순위를 국가코드 및 내부 순서로 지정할 수 있음
  - 언어는 한국어, 영어, 일본어, 독일어, 프랑스어, 러시아어 를 1순위로 선택 가능
  - 순서는 #1 ~ #9 중 하나를 1순위로 선택 가능

13. 내부/외부 오디오가 여러 개이며, 우선순위를 지정하지 않으면 다음 순서로 하나를 선택함
  AAC → WAV → FLAC → DTS → AC3 → MP3 → MP2 → OGG → WMA
  (합치기만 하면 되는 오디오 → raw 오디오 → 음질 순)

14. 내부 자막은 SRT, ASS(SSA)를 인식해서 사용하고, 외부 자막은 SMI→SRT→ASS→SSA 순으로 사용함
  다중 언어 SMI는 모든 자막을 다 변환해서 사용하며, KRCC/ENCC/EGCC/JNCC를 각국어로 인식함
  원본 자막 파일 형식은 ANSI, 유니코드-BOM, 유니코드 UTF-8를 지원하며 알아서 인식해서 완벽히 변환
  ※ 내부적으로 유니코드만 사용하기 때문에 변환하지 못하는 글자는 없으며 최대한 오류를 보정함

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

16. 원본의 내부 자막이 여러 개이거나 SMI가 다중언어로 구성된 경우는 모든 국가의 자막을 변환
  외부자막이 SRT, ASS/SSA인 경우는 다중자막 적용이 불가함

17. 출력되는 자막의 크기는 18/24/36/48포인트를 사용가능한데, 이는 아이패드를 위한 것임
  하지만, 아이폰/아이패드의 퀵타임 재생기가 자막의 크기를 인식하지 않기 때문에 사실상 의미 없음

18. 원본 비디오의 delay 값을 인식하고, 이를 적용해서 오디오/비디오 싱크를 맞춤.
  또한, 추가적으로 원본과 생성본의 비디오 길이를 비교해서 필요시 싱크를 한번 더 맞춤.

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

20. 선택한 옵션은 모두 레지스트리에 저장되며, 저장 시점은 변환을 시작했을 때와 저장 버튼을 클릭했을 때임.
  즉, 옵션을 선택하고 프로그램을 종료하는 경우는 저장하지 않음
  저장위치는 \\HKEY_CURRENT_USER\Software\BLUEnLIVE\Video Converter for iPhone 임

21. VCi는 다양한 미디어 관련 프리웨어의 프론트엔드이며, 직접 변환에 개입하는 것은 자막이 유일함
  VCi에서 사용하는 프리웨어 8종은 다음과 같음
  ffmpegMKV ExtractMedia InfoMP4BoxNero AAC EncoderOGM Demuxernormalize, tc2mp4[각주:1]

프로그램은 아래 링크에서 다운받을 수 있다. 




2012.1.10: 6.0 업데이트
- 아이콘 변경
- 아이폰4와 4s를 명확히 구분함
- 블로그 업로드 profile 추가 (가로폭 480px)
- 오디오 인코딩시 1pass/2pass 선택 가능
- 원본 비디오가 H.264인 경우 Reference Frames 갯수 확인(16 이상이면 iOS에서 재생 불가)
- H.264의 level이 얼마이든 4.1 이하로 강제 지정
- 30fps 확인 옵션의 기본값을 TRUE로 변경
- 툴팁 표시 기능 추가
- 실행파일별 폴더 구분
- Frame Rate를 확인할 수 없는 경우 강제 인코딩하도록 변경 (구형 ASF 파일 변환 가능)
- 가변 Frame Rate 모드의 비디오 변환 기능 추가
- 버그 수정: VCi-DC 생성에 실패하는 오류 수정

2012.1.13: 6.1 업데이트
- 로그 파일 수정: VCi 버전번호 기록, 명령행 옵션 출력
- MKVExtract를 5.2.1 → 5.2.0으로 다운그레이드
- 버그 수정: 일부 mkv 파일을 정상적으로 처리하지 못하던 오류 수정

2012.2.5: 6.2a 업데이트
- 오디오 downmix시 ffmpeg만을 사용하도록 수정
- AAC 오디오 downmix 시간 단축
- 아이폰4/4s에서 재생 가능한 동영상 크기를 더욱 정교하게 계산하도록 수정 
- WMV 비디오가 VFR인 경우 옵션 조정
- 변환 중 About 창이 뜨지 않도록 수정
- FFMpeg을 0.10(2012.1.26)으로 업데이트. 새로운 메이저 업뎃이며, 오디오 downmix 기능이 안정화됨.
- Media Info를 0.7.53으로 업데이트

버그 수정: 참조 프레임 개수 오류시 잘못된 메시지가 출력되던 오류 수정

2012.2.8: 6.3 업데이트
- 자막의 time code가 개판인 경우 조금 더 잘 처리할 수 있도록 수정
버그 수정: par 파라미터 지정 오류 수정

2012.2.9: 6.4 업데이트
- FLAC 오디오도 지원. 외부 오디오/내부 오디오 모두 지원하도록 수정

2012.2.17: 6.5 업데이트
- 버그 수정: 구형 ASF 포맷 비디오를 제대로 처리하도록 수정

2012.2.19: 6.6 업데이트
- 버그 수정: 해상도 변경시 해상도를 메시지 박스로 띄우던 오류 수정

2012.2.23: 6.7 업데이트
- 원본 비디오의 날짜를 변환된 파일에 덮어쓸 수 있는 기능 추가
- 영상을 회전할 수 있는 기능 추가 (비디오 강제 재인코딩 시에만 적용 가능)
- 디인터레이스 기능을 비디오 강제 재인코딩 시에만 적용할 수 있도록 수정

-
버그 수정: VideoCD 파일을 정상적으로 변환하지 못하던 문제 수정

2012.2.25: 6.7a 업데이트
- 영상 회전시 화면에 빨간 네모로 표시하도록 수정
- 영상 회전시 다이얼로그를 띄워 확인하도록 수정 
 

2012.2.26: 6.8 업데이트
- 비디오 재인코딩 프리셋에 Default 추가
- 변환이 끝나면 전원을 끄는 기능 추가
- 로그 파일에 비디오 변환 시간을 기록하도록 수정

2012.3.4: 6.9 업데이트
- 임시파일 삭제 설정을 단순 삭제/휴지통에 삭제/유지 세 가지로 늘임
- 소소한 오류 수정


  1. 링크는 사망했음. 파일 찾기 어려웠음. OTL [본문으로]