반응형

새 버전이 나왔습니다. 새 버전을 사용해주시기 바랍니다.



이전 포스트에서 설명했듯이, 지금까지 공개된 윈도우용 HEIF 변환 프로그램[각주:1]들은 뭔가 많이 부족하다.

mp4boxffmpeg만 잘 활용해도 변환의 상당부분을 처리할 수 있는 걸 보면 아직 상용 프로그램들의 갈 길은 먼 것 같다.




그래서 답답한 내가 직접 만들어봤다.


이 프로그램은 HEIF을 읽어서 정보들을 추출한 뒤에 mp4boxffmpeg을 활용해서 변환하는 프로그램이다.

색상 프로파일, Exif 등을 모두 제대로 읽어내어 살리며, 덤으로 파일의 시간 정보도 Exif에 기록된 시간을 사용한다.


혹시 타일 방식이 아니라 Ani GIF처럼 여러 장의 이미지가 들어있는 경우는 각각의 이미지 파일로 추출해준다.


또한, jpeg으로 저장할 때는 quality를 지정할 수 있다. 좀 더 작은 크기의 파일을 만들 수 있도록 mozjpeg도 적용할 수 있다.[각주:2]

무손실 이미지로 저장할 수 있도록 PNG로 저장할 수도 있는데, 이 경우에도 색상 프로파일과 함께 Exif를 함께 저장한다.



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

이전의 다른 프로그램들과 동일한 압축 비밀번호가 걸려있다.


iTransHEIF1.9.7z.001

iTransHEIF1.9.7z.002

iTransHEIF1.9.7z.003

password: teus.me


덧1. 변환 중간 과정에서 BMP를 사용하는데, 이건 성능을 조금이라도 끌어올리기 위한 수단임

이 프로그램은 다양한 부가기능들을 추가했지만, 어쨌거나 본질적으로는 프론트엔드인지라 성능은 본체[각주:3]의 영향을 많이 받는다.

초기 버전은 변환 과정에서 PNG로 추출했다가 합쳤는데, BMP로 추출해보니 변환 시간이 20% 가량 빨라졌다.

혹시나 해서 PCX로 추출하는 방법도 적용해봤는데, 오히려 BMP로 추출할 때보다 다소 느려졌다.


덧2. ffmpeg은 32비트 및 64비트 버전을 모두 사용 가능

ffmpeg 64비트로 변환해보니 32비트 버전에 비해 또 15% 가량 더 빨라졌다.

그래서, 두 버전을 모두 사용할 수 있도록 해서, 64비트 환경에선 ffmpeg 64비트를 사용하도록 했다.


덧3. 임시 폴더명이 순수한 영어가 아닌 경우는 별도의 임시 폴더를 지정해야 함

mp4box는 실행 폴더명에 한글 등 CJK 문자가 들어있으면 종종 실행이 중단되기 때문에 궁여지책으로 선택한 해결책이다.


덧4. 만약을 대비해서 UI는 영어로만 구성했음. 어느 나라의 누구라도 잘 쓸 수 있도록


덧5. iOS에서 생성한 파일 외에 노키아에서 공개한 HEIF까지도 완전하게 변환

이 파일들 중에는 HEVC 외에 H.264 기반의 HEIF도 포함되어 있으며 모두 변환한다.

참고로, 여기 올라온 46개의 파일들 중에 33개만 변환이 가능하다. 나머지는 파일 자체에 문제가 있는 파일이다.




▲ 버전 히스토리


2017.12.10: v1.1

- 최초 공개 버전


2017.12.17: v1.2

- resample 기능 추가

- 오류 수정: iOS에서 파노라마 이미지를 잘못 처리하던 오류 수정

- 멀티코어 및 SSE2를 지원하여 동작 속도를 비약적으로 향상

- 파일/폴더 탐색 버튼 추가

- ffmpeg을 3.4.1로 변경

- mp4box를 0.7.2-rev-356으로 변경

- jpeg의 기본 quality를 95로 변경


2017.12.19: v1.2a

- mp4box를 0.7.2-rev-357로 변경
- ffmpeg x64 위치 조정


2017.12.20: v1.3

- 윈도우 7에서도 정상적으로 동작하도록 수정
- UI 반응성 향상


2017.12.25: v1.4

- 메시지 박스 위치 조정
- mozjpeg을 1.5.3으로 교체

- Donate 버튼 크기 축소


2018.1.30: v1.5

- 오류 수정: exif 처리시 가끔 프로그램이 죽는 문제 해결
- mp4box를 0.7.2-rev-376으로 변경

- 임시 폴더에 한글이 들어있어도 정상 처리하도록 수정


2018.2.20: v1.6

- mp4box를 0.7.2-rev419로 업데이트
- 썸네일과 더불어 깊이 정보가 추가된 경우도 정상적으로 변환하도록 수정[각주:4]
- DXVA2가 지원되는 경우 DXVA2로 디코딩하도록 수정[각주:5]
- 메시지 박스 위치 조정


2018.3.11: v1.9

- mp4box를 0.7.2-rev436으로 업데이트

- ffmpeg을 3.4.2로 업데이트

- libpng를 1.6.35beta02로 업데이트

- jpeg 저장 속도 약 2배 향상 (mozjpeg 대신 libjpeg-turbo 적용)

- 오류 수정: 임시 폴더를 루트 폴더로 지정해도 오류가 발생하지 않도록 수정

- PNG 저장 시에도 원본에 저장된 EXIF 필드를 저장하도록 수정

- 파일/폴더 모드 토글 스위치 등 UI 개선

- rar에서 7zip으로 압축 포맷 변경[각주:6]



  1. 노키아에서 공개한 샘플들을 아이폰에 넣으면 대부분 잘 표시하는 걸 보면 맥 쪽은 훨씬 나은 환경인 듯 [본문으로]
  2. 1.9에서 mozjpeg을 제거하고 libjpeg-turbo를 적용해서 속도를 대폭 향상시킴 [본문으로]
  3. mp4box, ffmpeg 얘기임 [본문으로]
  4. iOS의 어느 버전부터인가 인물 사진 등에 깊이 정보가 추가되었음 [본문으로]
  5. nVidia의 cuda는 테스트 결과 SW decoding보다 많이 느려서 지원하지 않기로 함 [본문으로]
  6. rar 압축을 풀지 못하는 문제가 가끔 발생했음 [본문으로]
반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band