아이폰용 동영상 한방에 변환하는 툴: 초 완벽 버전 업뎃

새버전인 2.0으로 업데이트 했습니다. 새버전을 이용해주시기 바랍니다.

by BLUEnLIVE | 2010/11/15 01:21

아이폰(아이패드, 아이팟 터치)의 단점 중 하나는 동영상을 보기 위해서는 재압축을 해야 된다는 것이다. 이 점은 이미 없어져버린 진정한 스...


앞에 포스팅한 아이폰 용으로 한방에 변환하는 툴에서 사소한 부분을 수정하면서 새롭게 포스팅한다.
앞의 포스팅은 너무나 기능 구현에만 집중한 나머지 사용법 설명이 부족한 면이 있었다.

프로그램을 만드는 과정에서의 쓸데 없는 자랑은 최대한 배제하고, 사용법 위주로 포스팅 하겠다.

내가 만드는 프로그램의 틀은 거의 이런 식이라 이제 굉장히 식상함. ㅎㅎ


이 프로그램의 제목은 VCi: Video Converter for iPhone으로 아이폰을 전면에 내세우는 변환기이다.
하지만, 이 프로그램은 실제로 거의[각주:1] 아무런 변환도 하지 않으며 각종 CLI 툴의 프론트엔드만공한다.

이 프로그램은 이미 잘 알려진 @snoopybox 님의 아이폰 4 AVI, MKV 동영상을 MP4로 한방에 변환하기에서 많은 아이디어를 빌렸으며, 구현 과정에서도 많은 참고를 했다.

이 프로그램의 기능 및 특성은 아래와 같다.

1. 변환을 원하는 파일을 비디오 파일 목록에 떨어뜨린 뒤 변환 버튼을 클릭하면 알아서 변환함

2. 저장 위치는 원본 폴더이며, 결과 파일은 원본 파일명 앞에 [VCi]를 붙임
   필요시 추가로 싱크를 보정하며, 결과물은 원본 파일명 앞에 [VCi-DC]를 붙임

3. 비디오 스트림은 원본에서 추출하며, 오디오 스트림은 추출한 뒤 AAC(LC)로 변환해서 다시 합침

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

5. 내부/외부 오디오가 여러 개일 때는 AAC → WAV → DTS → AC3 → MP3 → MP2 순으로 하나만 사용함
    이 순서의 의미는 합치기만 하면 되는 오디오raw 오디오음질 좋은 순서

6. 내부 자막은 전혀 사용하지 않으며, 외부 자막의 순서는 SMI → SRT 순임
    SMI 파일의 모든 자막을 다 변환해서 사용하며, KRCC는 한국어, EGCC/ENCC는 영어 JNCC는 일본어로 인식함
   원본 자막 파일 형식은 ANSI, 유니코드-BOM, 유니코드 UTF-8를 지원하며 알아서 인식해서 완벽히 변환함
   ※ 1.0에서는 대문자만 인식했으나, 1.1에서 소문자(krcc 등)도 인식하도록 수정

7. 저장 위치를 따로 지정하는 기능은 없음. 스누피 님 프로그램에 대한 오마쥬임

8. 아이폰4 해상도 관련된 체크박스가 있는데, 체크하면 스펙에 명시된 해상도를 넘어설 때 처리하지 않음
   디폴트 값은 언체크인데, 해상도를 넘어서도 재생하는 경우가 종종 있기 때문임

9. 7번의 체크박스와 무관하게 비디오 포맷을 확인해서 H.264와 MPEG-4 Visual이 아니면 처리하지 않음

10. 플래쉬 비디오(flv)도 변환하는데, 역시 비디오 포맷이 8번의 범위가 아니면 처리하지 않음
   단, flv 추출 프로그램은 .NET FW 2.0 기반으로 되어있기 때문에 flv를 변환하려면 반드시 FW을 설치해야 함

11. 원본 비디오의 delay 값을 인식하고, 이를 적용해서 오디오/비디오 싱크를 맞춤.
   또한, 추가적으로 원본과 생성본의 비디오 길이를 비교해서 필요시 싱크를 한번 더 맞춤.
   (뭔가 좀 어려운데, 별도로 포스팅할 예정임)

12. 아이폰4 뿐 아니라, 아이폰 3 계열, 아이패드 모두 사용 가능하며, 변환 후 재생이 안 되면 해상도 문제라 어쩔 수 없음

새 버전은 아래 링크에서 다운받을 수 있다.


덧. 아주 아주 사소한 버그가 하나 발견되어 1.1b로 패치함. ㅡ.ㅡ;



2010.11.18: 1.2 업데이트
   - AVI에 저장된 H.264 동영상 변환불가 문제 수정
   - [VCi-DC] 버전 생성시 딜레이 계산을 조금 더 정확하게 수정
   - 원본 비디오의 크기가 4GB를 넘으면 변환을 사전에 중단
   - 조금 더 안정적인 MP4Box 사용

2010.11.18: 1.2b 업데이트
   - 4GB 이상 파일의 처리를 체크박스로 선택 가능하도록 수정, 기본값은 크기 제한 없음
      ※ 확인 결과 최신 MP4Box는 4GB 이상 파일도 이상 없이 처리함
   - ffmpeg.exe를 최신버전으로 교체

2010.11.20: 1.3 업데이트
   - SMI → SRT 변환시 다중 자막에 대한 처리 보강.
     <SYNC start=00><P class=KRCC>한글<P class=ENCC>영어 구조도 정상적으로 처리

2010.11.21: 1.4 업데이트
   - 지원 확장자에 .mov 추가 (mp4 포맷의 mov 파일만 처리 가능)
   - 내부적으로 자막 처리에 UTF-8 대신 Signed UTF-8을 사용. MKV 포맷에 포함된 자막을 그대로 사용 가능
   - MKV 파일 변환시 포함된 자막을 모두 그대로 포함시킴

엄청나게 많은 자막의 위엄… ㄷㄷㄷ


   - AAC 오디오를 강제로 재인코딩하는 옵션 추가 (이전 버전은 무조건 재인코딩 없이 삽입)
   - AV 싱크 재조정 파일(VCi-DC) 생성 여부를 옵션으로 지정
   - 버그 수정: mp4에 포함된 H.264 비디오 프로파일을 High@3.1로 지정하도록 수정 (이전 버전에서는 mp4만 누락)

2010.11.22: 1.4a 업데이트
   - VCi-DC 생성이 필요 없다고 판단되면 생성하지 않음 (비디오 딜레이 값의 차이가 100ms 이하 등)
   - VCi-DC 생성시 VCi에 덮어쓰기 옵션 추가 (현실적으로 비추. 소요시간이 똑같음)

2010.11.25: 1.5 업데이트
   - 오디오 선택 기능 추가: 지정된 언어와 같은 언어의 오디오가 있으면 그 오디오 사용
   - .\tools 폴더 존재 여부 확인. 폴더가 없으면 실행되지 않음
   - 파일 목록에서 delete 키를 눌러 목록 삭제 가능 (이 기능을 왜 이제야 구현했지? OTL)

2010.11.28: 1.7 업데이트
   - iOS 4.2에서 자막의 속성이 제대로 나오도록 수정 (그렇다! 이 골치아픈 문제를 해결한 것이다!)
      : 이전 버전으로 변환해서 <font> 태그가 그냥 출력되는 동영상은 새 버전으로 재인코딩[각주:2]하면 한방에 수정해줌
   - Status Bar를 사용하도록 인터페이스 수정
   - 변환중인 파일의 비디오/오디오/자막 정보 출력

2010.11.28: 1.7a 업데이트
   - <font color="fff76a"> 처럼 #가 누락된 경우도 적절히 처리하도록 수정.
      단, HTML 포맷 중 rgb(255,247,106) 형식은 지원하지 않음. (과연 필요할까?)

2010.12.1: 1.7b 업데이트
   - <font color="#fff76a"><br>어쩌고 처럼 행에 내용은 없이 컬러코드만 있으면 엔터가 들어가지 않도록 수정

  1. 거의 라는 표현을 쓴 이유는 자막은 직접 변환하기 때문이다. 자막은 정말로 거의 완벽하게 변환한다. [본문으로]
  2. 물론, 오디오를 재인코딩할 필요는 없다. 따라서, 파일 크기에 따라 다르지만 5분 이내에 수정 가능하다. [본문으로]
Trackback 3 Comment 175
  1. 이전 댓글 더보기
  2. 정말잘쓰고있습니다ㅎ 2010.12.01 01:05 address edit & delete reply

    정말 잘 쓰고있습니다 ㅎㅎ

    HD 영상물 모으는게 취미라, 720P 1080P 영상물이 소유한 영상의 대부분을 차지하고있는데

    그중에서도 1080P가 대부분인 저로선, 이번에 아이패드 장만하고 인코딩 하는데 여간 애를 먹고있네요.

    하지만 블루엔라이브님 프로그램덕에 제가 가진 720P 영상물들은 너무나 빨리, 잘 인코딩 해서 보고있답니다 ㅎㅎ

    1080P 파일을 720P MP4파일로 만들어주는 프로그램은 이렇게 간단하게 못만들어주시나요?

    다음팟이고 곰인코더고 유수한 프로그램을 써봤지만 만족도는 블루엔라이브님께 최고라서요 =_ =;;
    답변 기다리겠습니다..ㅎㅎ

    • Favicon of http://zockr.tistory.com BlogIcon BLUEnLIVE 2010.12.01 21:18 address edit & delete

      오~ 그런 스토리가…
      잘 쓰시기 바랍니다. ^^;

  3. Favicon of http://loveash.kr BlogIcon 애쉬 2010.12.01 08:41 address edit & delete reply

    오~~~~이런 좋은 프로그램을!!! 조커님 올만에 들렀더니..또 이런 작품을!!^^
    사실 스누피님꺼 쓰고 있다가 몇몇 동영상은 밀림 현상 발견...결국 최근에 새로 나온 avplayer 쓰고 있긴 하지만,
    조커님이 이렇게 완벽버젼 만들어 주셨으니, 이 녀석으로 다시 인코딩해서 봐야겠습니다^^

    • Favicon of http://zockr.tistory.com BlogIcon BLUEnLIVE 2010.12.01 21:10 address edit & delete

      오랜만에라니… 그 말이 더 슬퍼요…
      잘 쓰세요.

      참고로, 굳이 avplayer나 OPlayer를 안 쓰는 이유는 바로 하드웨어 가속에 의한 성능과 배터리문제 때문입니다.

      720p를 돌려보면 성능 자체가 엄청나게 차이가 납니다.
      자체 플레이어가 킹왕짱이에요.

    • Favicon of http://oktoya.net BlogIcon okto 2010.12.02 15:34 address edit & delete

      자체형식이면 avplayer도 퍼포먼스가 좋더군요. 확인은 안해봤지만 1080p도 돌아간다고 하고... 딴거보다 손가락으로 쓸어서 전/후 탐색하는 기능이 유용합니다.

      480p도 끊기는 oplayer 즐~

  4. 2010.12.01 18:21 address edit & delete reply

    비밀댓글입니다

    • Favicon of http://zockr.tistory.com BlogIcon BLUEnLIVE 2010.12.01 21:18 address edit & delete

      흠... 옵션으로 추가하는 건 문제가 아닌데, 프로파일 값을 수정해도 재생이 될 지는 모르겠습니다.
      프로파일은 인코딩할 때 적용한 옵션인데, 이걸 속이는 겁니다.
      즉, 프로파일을 속여도 재생이 되지 않을 가능성이 꽤 있습니다.

      원하는 BP의 레벨을 알려주시면 옵션에 추가하도록 하겠습니다.

  5. 렙R 2010.12.02 07:20 address edit & delete reply

    수고하십니다 ㅎㅎ 정말 잘쓰고있습니다
    그런데 매번 변환할때 마다 느끼는건데 음성 볼륨이 꽤 작아지네요
    aacgain 으로 매번 올려주면 되기야 하지만 좀 귀찮아서;;ㅠ
    볼륨부분을 수정 안되게 할수는 없는지요?

    • Favicon of http://zockr.tistory.com BlogIcon BLUEnLIVE 2010.12.02 14:35 address edit & delete

      사실은 작아지는 게 아니라 ac3/dts는 기본적으로 증폭을 하고, 다른 포맷은 하지 않는 것이 일반적이란 것이 원인입니다.
      즉, ac3/dts는 원래부터 볼륨이 작게 들어가고, 그것을 키우지 않기 때문에 발생하는 현상입니다.
      한번 생각해볼만한 이슈네요.

  6. 소이어 2010.12.02 19:04 address edit & delete reply

    감사합니다요~~~굿임다..ㅋㅋㅋ
    다만 제 노트북이 꼬져서 무한도전 1.64g 컨버트 하는데 20분 넘게걸렸어요..ㅠㅜ

  7. 2010.12.02 20:59 address edit & delete reply

    비밀댓글입니다

  8. Favicon of http://salm.pe.kr/ BlogIcon koc/SALM 2010.12.03 13:54 address edit & delete reply

    정말 고맙습니다. 언제나 많은 유틸을 개발해 주셔서 유용하게 사용하고 있습니다.
    그리고 이 프로그램이 무료라는 점이 너무나 마음에 듭니다.
    Giveaway of the day 사이트에 소개되는 여러 유료 프로그램을 써봤지만, 오히려 무겁기만 할 뿐이더군요.
    (물론 여러가지 초보자를 배려한 기능이 있지만, 사용법이 복잡해서 초보자는 오히려 쓰기 힘들어 보이더군요.)
    이 프로그램은 초보자는 물론이고, 전문가라도 유용하게 사용할 수 있을 드싶습니다.

  9. Favicon of http://salm.pe.kr/ BlogIcon koc/SALM 2010.12.03 14:07 address edit & delete reply

    단순히 프론트엔드라서 그런지, 30fps 이상의 동영상에 대한 처리가 조금 미흡하네요. (초고속 영상에 정상 속도 음향) ^^;; 일단 30fps로 변환하는 과정이 필요해 보입니다.
    60fps라면 음향은 정상인데, 영상은 거의 2배속이 됩니다.

    • Favicon of http://zockr.tistory.com BlogIcon BLUEnLIVE 2010.12.04 03:25 address edit & delete

      비디오 쪽은 아예 손을 안 대기 때문입니다.

      이 프로그램의 컨셉은 비디오 raw data는 딱 그대로만 집어넣는 것입니다.
      따라서, 비디오 재생에 관련된 이슈는 무엇이든 패스합니다.
      이 프로그램의 영역이 아니니까요.

  10. Favicon of http://salm.pe.kr/ BlogIcon koc/SALM 2010.12.03 15:32 address edit & delete reply

    자막을 교체하는 기능도 넣어주시면 안 될까요? 합치기 한 뒤에 자막의 오탈자를 발견한 경우는 조금 난감해지거든요. ^^a
    (1) A 동영상 + a 자막 -> Aa 동영상 (A 동영상 및 a 자막은 보존)
    (2) Aa 동영상 + b 자막 -> Ab 동영상 + a 자막 (Aa 동영상 및 b 자막은 보존)
    위와 같은 형식으로 만들어지게끔 처리하면 편할 듯싶습니다.

    • Favicon of http://zockr.tistory.com BlogIcon BLUEnLIVE 2010.12.04 03:24 address edit & delete

      현재 Aa + b는 Ab로 교체합니다.
      물론, a는 사라지구요.

      이렇게 만든 이유는 단순합니다. a는 내부적으로 ttxt 포맷으로 저장되는데, 이걸 다시 srt->smi로 추출하려면 또 다른 변환기를 만들어야 되기 때문입니다. ㅎㅎ

    • Favicon of http://salm.pe.kr BlogIcon 류청파(koc/SALM) 2010.12.04 22:34 address edit & delete

      그럼 TTXT 형식으로 추출할 수는 없나요? 어차피 오자나 탈자 문제는 TTXT를 수정해도 해결할 수 있는 문제니까요.

    • Favicon of http://zockr.tistory.com BlogIcon BLUEnLIVE 2010.12.04 22:52 address edit & delete

      TTXT 파일을 보시면 뒤집어지실 겁니다. ㅎㅎ
      간단하게 mp4box -ttxt subtitle.srt 하면 보실 수 있어요.
      ASCII를 제외하곤 몽땅 %#12345; 포맷의 유니코드로 저장합니다. 어허허.

    • Favicon of http://zockr.tistory.com BlogIcon BLUEnLIVE 2010.12.04 23:36 address edit & delete

      참, 이걸 수작업으로 남기는 건 그리 어렵지는 않습니다.
      트랙을 선택해서 srt 포맷으로 추출하는 방법이 있습니다.

      하지만, 프로그램을 통해 자동화한다면 문제는 다릅니다.
      프로그램으로 만들 수 있는 어떤 '원칙'같은 걸 만들기가 어렵네요.

    • Favicon of http://salm.pe.kr BlogIcon 류청파(koc/SALM) 2010.12.05 15:15 address edit & delete

      신경써 주셔서 고맙습니다.
      TTXT 추출이라도 알려 주셔서 고맙습니다. 나머지는 제가 알아보겠습니다.

  11. 뿐뿐 2010.12.03 17:43 address edit & delete reply

    이 좋은걸 다운받았지만.. 어찌해야하는지 모르겠으니..
    링크를 클릭하여 저장했는데..
    연결프로그램을 못찾고..

    아,, 전 너무 컴맹인거죠..?

  12. 수호수 2010.12.03 17:58 address edit & delete reply

    너무나 좋은 프로그럼 감사합니다..문제는 이패드에 넣으면 자막이 작게 나오는데 아이패드에서도 자막이 크게 나오는 업데이트 계획은 없으신지요..???부탁드립니다..

    • Favicon of http://zockr.tistory.com BlogIcon BLUEnLIVE 2010.12.04 03:26 address edit & delete

      아이패드에 적용하기 위해 내부적으로 자막의 크기를 변경해봤는데, 자막 크기 옵션 자체를 무시하더군요.
      제가 아이패드를 갖고있진 않아 더 이상 확인은 못해봤지만, 현재 상태에서는 답이 없을 것 같습니다.

    • 수호수 2010.12.04 14:56 address edit & delete

      아..그렇군요..블루님이 아이패드 사기를 기다려야 겠네요..ㅠ.ㅠ 아무튼 좋은 프로그램 감사드립니다..^^

  13. 루즈키 2010.12.03 20:50 address edit & delete reply

    건의)
    magnet:?xt=urn:btih:RDEX52HUONXJWGZL6MMQ2APTQUNKNQRE

    수용불가영상이라고 뜨는데 지원할수 없을까요?

    • Favicon of http://zockr.tistory.com BlogIcon BLUEnLIVE 2010.12.04 03:33 address edit & delete

      오… 고맙습니다.
      비디오 정보가 조금 다르게 나오는 파일이 있군요.
      수정하겠습니다.

  14. 방문자 2010.12.04 18:18 address edit & delete reply

    4.2 자막 버그 고쳐주셨군요 감사합니다

  15. 방문자입니다 2010.12.06 12:24 address edit & delete reply

    아이팟4세대도 되는거조?

    • Favicon of http://zockr.tistory.com BlogIcon BLUEnLIVE 2010.12.06 18:55 address edit & delete

      잘 되는 것으로 알고 있습니다만, 직접 확인해보진 못했습니다.
      그리고, 새버전인 2.0을 사용해주시면 좋겠습니다.

  16. 지은냥 2010.12.07 18:12 address edit & delete reply

    전 압축이 안풀려요...

  17. 0389325 2010.12.08 15:13 address edit & delete reply

    저..tools인가 그게 없다고 안되네요..
    분명 압축 다 풀었는데도 동영상 떨어뜨려 놓는 것 부터가 안되요..
    제가 어디서 틀린거죠?

  18. -_- 2010.12.12 15:19 address edit & delete reply

    질문 하나 올리겠습니다

    vci프로그램을 잘 사용하다가
    오늘 오랜만에 사용했는데
    분명 코딩과정이랑 끝난 후 몇분 진행됐다는 메시지와 함께
    완료가 되는데 폴더에는 해당 파일이 없습니다.

    쉽게 말해 과정만 잘 진행되고 결과물이 없는 상황..
    어디로 간건지 알수가 없네요
    당연히 저장 경로는 제가 원하는 곳으로 설정을 했었는데..
    이런 버그가 있는지요?

  19. 지나가다 2010.12.14 22:16 address edit & delete reply

    참고하시라고 한 자 적고 갑니다.
    아이폰은 멀티 오디오 지원합니다.
    자막처럼 음성도 선택해서 들을 수 있습니다.

  20. Favicon of http://blackragun.tistory.com BlogIcon 블랙라군 2011.05.06 21:28 address edit & delete reply

    dd비디오코덱 aac1

    오디오코덱 flac

    확장자 mkv

    크기 1920 1080

    이런파일을 프로그램 돌렸더니 아무런 변화가 없네요 ㅜㅜ

  21. 엽기토끼이요 2012.05.02 02:00 address edit & delete reply

    아이콘이 수상해...

    • Favicon of http://zockr.tistory.com BlogIcon BLUEnLIVE 2012.05.03 00:36 address edit & delete

      눈썰미 좋으심다… ㅋ