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


15.x대 업데이트에서 가장 크게 변경된 부분은 파일명/폴더명에 어떠한 문자들이 포함되어 있어도 정상적으로 변환한다는 것이다.

이전 버전에서는 파일명에 이상한[각주:1] 문자가 포함되어 있으면 변환을 중단하였고, 이 과정에서 가끔 변환이 실패하는 경우가 발생했다.


이 부분을 전면적으로 수정하여, ANSI 문자가 아닌 문자가 포함되어 있으면 임시 폴더에 복사하여 처리하도록 수정했다.


이 외에도 실행파일을 임시 폴더에 복사함으로써 유사한 문제를 예방했다.


그리고, 드디어 15.1에서 HEVC를 지원한다. 물론, iOS에서 잘 재생된다.


이상한 문자들로만 구성된 파일명도 문제없이 처리함!!!


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


iTrans_v15.1.part1.rar

iTrans_v15.1.part2.rar

password: teus.me


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




▲ iTrans의 상세한 기능 및 특징


#일반


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

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

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


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


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

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


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


5. 변환 종료시 최대 절전 모드로 전환할 수 있음



#비디오


6. iDevice를 대상으로 할 땐, 원본 비디오가 mpeg4/H.264/HEVC인 경우는 상세한 압축 옵션 확인후

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

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

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


7. 비디오 재인코딩은 FFmpeg을 사용하며, 재인코딩시 디인터레이스 및 영상을 회전시킬 수 있음


8. 비디오 재인코딩시 fps는 원본의 값을 준용, 비트레이트는 원본의 값을 기준으로 비율 지정하는 것이 기본임

  단, 옵션에서 fps[각주:3] 및 비트레이트[각주:4]를 특정 값으로 강제 지정하는 것도 가능함


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

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

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

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

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

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


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

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

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


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

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

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

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

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

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

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


12. 비디오 재압축 필요 여부를 확인할 수 있음

Ctrl 키를 누르며 변환 버튼을 클릭하면 변환하지 않고, 재압축 필요 여부만 확인함



#오디오


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

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


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

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

  오디오 변환 프로그램은 neroAacEnciTunes[각주:5] 중에서 선택할 수 있음


15. 오디오 인코딩이 2 채널(stereo)로 downmix를 하는 것이 기본임.
  이 때 중앙부 오디오를 증폭 여부를 옵션으로 선택할 수 있는데, 증폭하는 것을 추천[각주:6]

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

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

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


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

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


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

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

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

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

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


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

  AAC → WAV → FLAC → DTS-HD → TrueHD → DTS → AC3 → MP3 → MP2 → MPGA → OGG → WMA

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


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


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



#자막


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

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


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

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

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

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


25. 외부 자막이 SRT일 때 파일명에 언어가 명시되면 인식


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


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

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



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

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



#챕터[각주:8]


29. MKV/MP4 파일에 포함된 챕터 정보를 인식하여 iOS용 챕터로 변환하지만, iOS 10.2에서 챕터 기능이 제거됨


이 화면은 애플이 허용할 때까진 볼 수 없음[…]


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

  단, 비디오가 ogm 포맷인 경우 확장자 충돌 문제가 있어 xml 챕터만 인식함

  그래봤자 iOS 10.2부터는 볼 수 없지만


챕터 포맷 더보기



#기타


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


32. 비디오와 같은 파일명의 jpeg/png 파일이 있으면 커버 아트로 설정함.

  옵션에서 선택시 커버 아트 파일이 없어도 자동으로 커버 아트를 추출해서 사용함.


33. 아이폰4 이상 뿐만 아니라, 아이폰 3GS, 아이패드 모두 사용 가능함


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

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

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


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

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

  FFmpeg, MediaInfo, MP4Box, Nero AAC Encoder, qaac[각주:9]


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

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

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




▲ 버전 히스토리


2017.2.25: 15.0

- 15.x대 첫 릴리즈

- 비디오/오디오/자막 파일명에 비 ANSI 문자가 포함된 경우 임시파일로 복사하도록 변경

- 변환 전에 필요한 모든 실행파일을 임시 폴더로 복사하도록 변경

  즉, 파일명 오류로 인한 변환 실패 문제는 발생하지 않음

- 윈도우 XP 지원 코드 완전 삭제[각주:11]

- 일부 옵션 제거: 임시 폴더 지정, 4GB 이하 파일만 처리, FFmpeg thread 수 지정

- 임시 파일명 생성 규칙 변경

- qaac2.62로 업데이트

- Mediainfo0.7.92.1로 업데이트

- 아이콘 미묘하게 또 수정[…]


2017.8.27: 15.0b

- Maintenance release

- 압축시 비밀번호 적용(password: teus.me)

- UI 수정: 창 전체가 포커스를 잃을 때도 ctrl 키를 뗀 것과 동일하게 동작하도록

- FFmpeg3.3.3으로 업데이트

- Mediainfo0.7.98로 업데이트

- mp4box0.7.0으로 업데이트

- qaac2.64로 업데이트


2017.11.5: 15.1

- H.264 외에 HEVC로도 인코딩할 수 있도록 수정

- FHD, WQHD, UHD, 4K 등의 비 iOS 해상도 제거

- H.264 및 HEVC의 고정 품질(CRF)을 지정하도록 수정

- 커버 이미지를 jpeg로 처리하도록 수정

- 원본의 날짜/시간을 복사하는 기능을 더욱 정교하게 수정 및 원본이 iOS에서 촬영된 경우 GPS 위치가 적힌 meta 영역도 복사하도록 수정

- PayPal 후원과 함께 및 후원 계좌 표시 기능 추가

- FFmpeg3.4로 업데이트

- Mediainfo17.10으로 업데이트




  1. 정확히는 ANSI로 변환될 수 없는 문자 [본문으로]
  2. 여기 설명된 내용에 추가하여 10 bits AVC도 재생할 수 없음 [본문으로]
  3. 23.976, 25.0, 29.97, 60.0fps [본문으로]
  4. 1.5Mbps, 3.0Mbps, 6.0Mbps [본문으로]
  5. 음질은 두 프로그램이 비슷한 수준이며 iTunes 쪽이 좀 더 빠르게 좀 더 작은 파일을 생성하는 듯 [본문으로]
  6. 증폭이 기본이며, 증폭하지 않을 때 대화 소리가 작게 들릴 수 있음 [본문으로]
  7. 언어ID는 알파벳 2개 또는 3개로 구성됨. ex) ko, ja, en 등 [본문으로]
  8. iOS 10.2에서 챕터 기능이 제거되어, 이전 버전에서만 활용 가능함 [본문으로]
  9. iTunes로의 인코딩을 담당하는 프로그램, x86/x64 버전이 모두 들어있으며, 상황에 맞게 선택하여 사용함 [본문으로]
  10. 대용량 비디오(4K 해상도의 H.265 비디오라든가…)를 변환할 때는 x86용과 x64용 ffmpeg의 성능 차이가 크게 발생함. 64비트 환경이라면 ffmpeg x64 버전을 경로에 지정해서 사용하는 것을 강추함. [본문으로]
  11. 즉, 이제 윈도우 Vista 이상만을 지원함 [본문으로]
신고
  1. 코라나와 2017.03.25 21:53 신고

    이제 슬슬 x265 HEVC 릴도 보이는데요, 지원은 아직 계획이 없으신가요?

  2. 2017.04.18 16:16

    비밀댓글입니다

    • 문제가 되는 자막을 보내주시면 확인해보겠습니다.
      적어주신 내용만으로는 아무것도 알 수 없습니다.

    • lumia520 2017.04.20 04:57 신고

      앗, 답장이 늦어서 죄송합니다 ㅎㅎ 알고보니 해당 자막파일 오류더군요! 다른 파일은 정상적으로 됩니다 자막 교체후 재인코딩 하니 2줄도 나오네요. 아마 가사가 노래방 가사 처럼 나오다 보니 그런것 같네요! 암튼 답변 감사드립니다! 수고하세요^^

  3. JM 2017.04.19 21:29 신고

    늘 잘 사용하고 있습니다.^^ 대단하세요.

  4. firevase 2017.05.08 08:14 신고

    안녕하세요.
    iDevice 15.0 사용하고 있는 유저 입니다.
    이런 프로그램을 만들어 주신것을 우선 감사드리고 있습니다.

    동영상 변환중 문의점이 있어 댓글을 남기네요.
    변환 중 영상 내 자막이 영어와 중국어가 있습니다. 그런데 변환을 하면 이 자막이 첨부가 되지 않고 변환이 되는 경우가 있습니다. 원본 영상을 다음팟플레이어로 재생시 자막이 3개가 확인 되지만 변환 후 영상은 자막이 보이지 않습니다.
    영상 원본은 메일로 보내드리겠습니다. 감사합니다.

  5. Peri 2017.08.26 11:40 신고

    더운 날씨가 약간 꺽인 선선한 날씨네요~

    늘 잘 사용하고 있습니다~

    혹시, 강제 인코딩 할 때, GPU 기반 인코딩 추가 기능 하실 생각은 없으신가요?

    또는, 단순 파일 합치기 기능 하나 있었으면 좋겠습니다~

    그럼 좋은 하루 보내세요 ^^

    • 1. ffmpeg 최신 빌드는 HW 가속 기능을 사용합니다.
      NVIDIA 쪽은 여기서 볼 수 있습니다: https://developer.nvidia.com/ffmpeg
      AMD 쪽도 비슷하리라 생각하고요.

      이 프로그램은 ffmpeg의 프론트엔드인지라 최신 ffmpeg을 적용하면 자동으로 지원합니다.

      2. 최신 빌드들을 적용한 버전을 다시 배포하도록 하겠습니다.

      3. 단순 파일 합치기는 예전부터 고민했었는데, 안 하는 걸로 정리했습니다.
      요즘은 예전처럼 AVI 여러개로 조각낸 파일도 별도 없거니와, 고려할 요소는 많은데, 정작 적용될만한 상황은 거의 없기 때문입니다.

  6. Peri 2017.09.02 16:26 신고

    안녕하세요~ 낮과 밤의 기온차가 너무 큰거 같네요. 감기 조심하세요~

    인코딩을 할 때, 대부분의 MKV 확장자의 영상인 경우 재인코딩 없이 빠르게 작업을 할 수 있지만,
    부득이하게 강제 인코딩을 할 때는 옵션을 사용하여 이것 저것 만지며 시간만을 기다립니다~

    저의 경우는 고전 영상(영화)를 자주 보는데 대부분의 영상이 AVI 확장자로 CD1, CD2로 되어 있어서
    저번 문의에 단순 파일 합치는 기능을 조신히 문의 드렸었네요.
    (간혹, 블루레이로 다시 나온 영화들은... 대부분 용량이 너무 크네요... T^T)

    이번 의견은, 옵션 메뉴중에 "옵션 저장(레지스트리)" 부분인데요. 이부분을
    "옵션 저장" , "옵션 불러오기" 로 나눠 주실 수 있을까 하고 문의 드려요.
    옵션 선택 후, 강제 인코딩을 하고나서 자신이 저장한 옵션 설정을 불러왔으면 합니다.

    PS : 설정 초기화 버튼도 있지만 제가 설정한 옵션이 불러와줬으면 해요...

    그럼, 오늘도 좋은 하루 되세요~

    • 네... 역시 AVI 2-3개 짜리 보면 합치고 싶은 본능(?)이 불끈불끈(?) 솟아오르죠...
      이 작업은 언제나 수작업으로 할 수 밖에 없는데, 이유에 대해선 예전에 쓴 글을 읽어보셔도 좋을 것 같습니다.
      http://zockr.tistory.com/802

      "옵션 불러오기"가 뭘 의미하는지 잘 모르겠네요.
      현재 프로그램인 "확인" 또는 "옵션 저장"을 하면 레지스트리에 저장합니다.
      또한, 이와 함께 변환을 시작하면 역시 레지스트리에 저장합니다.
      별도로 불러올 일이 있나 모르겠군요.

    • Peri 2017.09.03 16:18 신고

      음, 옵션 불러오기 부분은

      ① 자주 사용 하는 옵션 셋팅 저장

      ② 다른 설정으로 옵션을 선택한 후, 인코딩

      ③ 다시 처음 ①의 옵션을 불러오기

      기능을 원해서요...

      거의 대부분의 MKV 및 MP4는 한번에 작업이 되지만...

      AVI 및 기타 영상은 강제 인코딩 설정을 취향에 맞게 하다보니...

      설정 부분을 자주 변경 하거든요..
      Bitrate 부분이라던가 Fps부분이라던가..T^T

      아이폰 및 아이패드에 영상을 넣어서 보면 무리는 없는데,

      wifi 스트리밍으로 보면 Bitrate가 너무 높거나
      Fps가 24, 30, 60로 있는 영상들은 너무 끊김 현상이 심해서요...

    • UI가 너무 복잡해져서 그런 식으로 구현하고 싶지는 않군요.
      지금의 UI도 복잡해서 줄이고 싶은데...

  7. 버거님 2017.12.12 22:43 신고

    워킹데드 340메가 mkv에 mp4로 영자막 파일 자막 추가 하는데 자그마치 변환준비중이 3분이 넘네요. 지난 버젼보다 엄청 느려진게 무슨 이윤지 모르겠습니다. 윈도10 설치한지는 한달도 안되었는데..

+ Recent posts