웹페이지에 투명도 있는 애니메이션/동영상 넣기. 가장 효과적인 방법은 무엇일까요?
투명도가 없는 동영상이라면 고민할 것도 없이 video 태그와 함께 mp4를 사용하면 됩니다. 하지만 움짤과 같은 영상이고 투명도가 있다면 고민이 시작됩니다. 크로스 브라우징이 가능해야 할 것이고, 성능과 압축률이 좋아야 합니다. 이 모든 필요 사항을 실제 기기에서 테스트해서, 무엇을 사용하면 된다고 결론을 내려주면 얼마나 좋을까요? 그래서 이 포스팅을 하기로 했습니다.
결론부터 말씀드리면 APNG가 가장 괜찮습니다
사실 투명도가 있는 애니메이션, 동영상 포맷을 결정하는 데 있어 정답은 없었습니다. 왜냐하면 최선이 없기 때문입니다. 알려진 방법으로는 WebM, WebP, APNG, GIF, PNG를 여러 장 돌리기 등이 있습니다. IE브라우저는 PNG 돌리기를 제외하면 모든 방법이 통하지 않습니다. 다음은 여러 자료를 읽고 파악한 포맷 간 비교입니다. 대략적으로 각 포맷의 사양을 파악할 수 있습니다.
용량
- PNG 여러 장 >>> GIF > APNG > WebP >= WebM
성능
- WebP >= WebM > APNG > GIF >> PNG 여러 장
호환성
- PNG 여러 장 = GIF > APNG > WebP >= WebM
호환성 체크에서 관건은 Safari 브라우저였습니다. 아이폰 유저가 실전 상황에서 버그 보고를 가장 많이 했기 때문에 신경써서 체크했습니다. iPhone6와 7, 맥북에서 테스트했습니다. 여기서 iPhone6만 구버전 Safari를 이용했습니다.
Animated PNG (APNG) | Can I use... Support tables for HTML5, CSS3, etc
Where support for APNG is missing, only the first frame is displayed
caniuse.com
APNG는 무엇보다 사파리 구버전에서도 동작한다는 점이 가장 큰 메리트였습니다. 긴 영상이 아니면 용량도 봐줄 만한 정도입니다. GIF보다 용량이 낮으니 걱정할 것은 호환성밖에 없는 녀석입니다. WebM이 동작하지 않는 사파리였는데 APNG는 잘 동작했습니다. caniuse는 사파리가 2014년 이후 버전이면 동작한다고 말하고 있습니다.
반면 WebM은 2018년도 버전까지도 동작하지 않고 심저 2022년까지도 부분적으로만 지원합니다. WebM은 애초에 크롬 최적화로 나온 포맷이어서 기대를 접어야 할 것 같습니다.
브라우저 호환성 비교표
WebP는 WebM보다는 사정이 낫습니다. 그렇다 해도 사파리 브라우저 풀 지원을 하지는 않는 상태입니다.
WebM은 78퍼센트로 불안정한 모습입니다. iOS에서는 대체로 호환되지 않는 것으로 확인했습니다.
APNG는 95.5%의 환경에서 사용 가능하면서, PNG 포맷 기반이므로 활용도가 그나마 높습니다. 모바일 오페라 미니 브라우저에서 점유율이 0.95% 깎였습니다. 부분적 호환은 아예 없습니다. 저에게는 p5.js에서 APNG를 제어할 수 있다는 점도 매력적으로 다가오네요.
'Web' 카테고리의 다른 글
[Web] 미디어 쿼리로 반응형 웹사이트 구현 (0) | 2022.09.01 |
---|---|
[Web] GSAP 스크롤하면 선을 따라가는 애니메이션 (0) | 2022.08.30 |
[Web] p5.js 스케치 성능 최적화 방법으로 프레임레이트 높이기 (0) | 2022.08.26 |
[Web] GSAP 메소드 매개변수와 효과의 종류 (0) | 2022.08.26 |
[Web] GSAP 객체 기본 사용 방법 (0) | 2022.08.26 |
댓글