메뉴 건너뛰기

본문시작

방문자

전체 : 27,638,740
오늘 : 20,130
어제 : 39,629
조회 수 236 추천 수 0 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

이 내용을 여기 올려야 하나 잠시 고민했습니다만, 그래도 샤나와 연관이 있는 것이어서 올립니다.

 

 

프리셋 자료실에 올라온 HDR->SDR 변환 프리셋은 샤나의 한계 때문에 tonemapzscale 필터를 이용하지 못한 반쪽자리입니다. 원본의 색 정보를 제대로 살리지 못해 인코딩 결과물이 형편없죠.

 

HDR의 기본 색공간인 BT.2020은 SDR HDTV의 기본 색공간 BT.709(=sRGB)을 포함하는 데다 BT.709가 표현하지 못하는 많은 색상을 더 표현할 수 있기 때문에 HDR을 SDR로 변환할 때는 바로 그 BT.709의 범위 밖(out-of-range) 색상들을 어떻게 처리하냐가 최대 관건입니다.

 

이에 대해 가장 무난한 해법은 바로 tonemap 필터를 이용해 범위 밖 색상들을 범위 안으로 적절하게 mapping하는 것이고, zscale 필터는 tonemap 필터의 결과물을 사용가능한 형식으로 변환하는 동시에 자체적으로 색공간 변환을 수행하기 때문에 필요한 것입니다.

 

자세한 사항은 아래 문서를 참고하시면 됩니다.

 

https://stevens.li/guides/video/converting-hdr-to-sdr-with-ffmpeg/

 

 

 

위의 권고안을 바탕으로 다음의 FFmpeg 명령어를 구성해서 DOS 환경에서 실행했습니다.

 


 

ffmpeg.exe -analyzeduration 100M -probesize 50M -i LG_New_York_HDR_UHD_4K_Demo.OriginalHDR.ts -vf zscale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=hable:desat=0,zscale=1920:-1:f=spline36:t=bt709:m=bt709,format=yuv420p -c:v libx264 -profile:v high -crf 18.0 -preset veryslow -x264opts deblock=1,1:cabac:keyint=150:min-keyint=15:bframes=3:b-adapt=2:weightb:weightp=2:ref=4:scenecut=50:ipratio=1.4:pbratio=1.3:qcomp=0.50:rc-lookahead=30:mbtree:aq-mode=2:aq-strength=0.8:chroma-me:merange=24:me=umh:subme=10:direct=auto:trellis=2:psy-rd=0.30,0:psy:no-dct-decimate:no-fast-pskip:mixed-refs:partitions=all -pix_fmt yuv420p -color_primaries bt709 -color_trc bt709 -colorspace bt709 -c:a aac -b:a 128k -ac 2 -map_metadata -1 -metadata creation_time=now -metadata:s:v:0 language=kor -metadata:s:a:0 language=kor -y LG_New_York_HDR_UHD_4K_Demo.TranscodedSDR.tonemapped.1080p.mp4

 


 

LG_New_York_HDR_UHD_4K_Demo.OriginalHDR.ts가 input file이고 LG_New_York_HDR_UHD_4K_Demo.TranscodedSDR.tonemapped.1080p.mp4가 output file입니다.

 

대강 설명하자면,

 


 

-analyzeduration 100M -probesize 50M

    // 전역 헤더가 없는 ts 파일에서 스트림 정보를 파악하기 위해 미리 앞부분을 읽도록 하는 옵션

 

 

-vf zscale=t=linear:npl=100,format=gbrpf32le,zscale=p=bt709,tonemap=tonemap=hable:desat=0,zscale=1920:-1:f=spline36:t=bt709:m=bt709,format=yuv420p

    // 색공간 변환과 감마 변환(transfer characteristics), 해상도 변환을 수행하는 옵션 설정

 

 

-c:v libx264 -profile:v high -crf 18.0 -preset veryslow -x264opts deblock=1,1:cabac:keyint=150:min-keyint=15:bframes=3:b-adapt=2:weightb:weightp=2:ref=4:scenecut=50:ipratio=1.4:pbratio=1.3:qcomp=0.50:rc-lookahead=30:mbtree:aq-mode=2:aq-strength=0.8:chroma-me:merange=24:me=umh:subme=10:direct=auto:trellis=2:psy-rd=0.30,0:psy:no-dct-decimate:no-fast-pskip:mixed-refs:partitions=all

    // 비디오 코덱(x264) 관련 설정

 

 

-pix_fmt yuv420p -color_primaries bt709 -color_trc bt709 -colorspace bt709

    // 픽셀 형식 및 색공간 관련 정보 -> 전역 metadata로 기록됨

 

 

-c:a aac -b:a 128k -ac 2

    // 실행되는 FFmpeg 바이너리 파일이 libfdk-aac를 포함시키지 않고 컴파일되어

    // libfdk_aac 인코더가 없기 때문에 aac 인코더로 대체

 


 

나머지 부분은 metadata 관련이므로 설명을 생략하겠습니다.

 

 

 

이 명령어를 실행한 결과로 나온 동영상의 MediaInfo는 아래와 같습니다.

 

<MediaInfo>

 

LG_New_York_HDR_UHD_4K_Demo.TranscodedSDR.tonemapped.1080p_mediainfo.png

 

Metadata에서 보듯이 인코딩 결과 BT.709를 색공간으로 하고 YUV420p의 bit depth 8비트를 가진 SDR 동영상으로 변환되었음을 알 수 있습니다.

 

 

 

변환된 동영상이 원본인 HDR 영상과 색감에서 얼마나 차이를 보이는지 보기 위해 스크린샷 비교를 하면 다음과 같습니다.

 

<HDR 동영상의 스크린샷>

 

LG_New_York_HDR_UHD_4K_Demo.OriginalHDR.jpg

 

 

<SDR 동영상의 스크린샷>

 

LG_New_York_HDR_UHD_4K_Demo.TranscodedSDR.tonemapped.1080p.png

 

 

비록 푸른색과 초록색, 특히 푸른색 계열 색들이 좀 flatten됐지만 사실상 둘 간의 색감 차이가 거의 없는 것을 확인할 수 있습니다.

 

이는 샤나에서 scale 필터만을 이용해 SDR 인코딩한 다음 영상의 스크린샷과 비교해 보면 더욱 확연하게 드러납니다.

 

 

<샤나로 인코딩한 SDR 동영상의 스크린샷>

 

LG_New_York_HDR_UHD_4K_Demo.TranscodedSDR.jpg

 

 

따라서 HDR -> SDR 변환에 tonemap, zscale 필터가 절대적인 역할을 함을 알 수 있습니다.

 

 

원본과 FFmpeg로 인코딩한 동영상 파일은 아래 링크에서 다운받으실 수 있습니다.

 

<원본 HDR 동영상>

https://drive.google.com/open?id=1-aAC4KrW8YBZKSjBx4OWuQKOOJ-DiJAz (448MB)

 

<인코딩한 SDR 동영상>

https://drive.google.com/open?id=1fIxev1zrZBeII6dlvF-adL15dAeQC4E0 (124MB)

 

 

샤나인코더가 FFmpeg을 빨리 업그레이드하길 바라며 이상 마칩니다.

TAG •
  • ?
    해피해피 2018.06.26 18:15
    sSTSs 님 저때문에 고생하셨네요
    장마진다니 더위좀 가시면 좋을텐데
    야구는 취소되고 ㅠㅠ
  • ?
    sSTSs 2018.06.27 06:05
    안 그래도 관심 가는 이슈라 덕분에 저도 재미있는 공부를 했습니다. 건강하세요.
  • ?
    sSTSs 16 시간 전

    미리 컴파일된 FFmpeg 바이너리는 아래 사이트에서 구하실 수 있습니다. (본문의 예제에서 사용한 바이너리임.)

     

    https://ffmpeg.zeranoe.com/builds/

     

    (단, 이 바이너리는 fdk-aac가 포함돼 있지 않습니다.)

     

    본인이 직접 build하고 싶으시다면 DOS 스크립트로 만들어 놓은 Media Autobuild Suite을 이용하시는 게 가장 속편한 방법입니다.

     

    https://github.com/jb-alvarado/media-autobuild_suite

     

    단, 상당히 오랜 시간이 걸리며 중간에 여러 요인 때문에 build에 실패하는 경우가 많습니다.


List of Articles
번호 제목 글쓴이 날짜 조회 수 추천 수
공지 샤나인코더 4.9 버전부터 추가된 편의기능 >>프리셋 메뉴 및 설정 메뉴를 빠르게 열기<< file 샤나 2018.06.28 1138 0
공지 AMD 플루이드모션 60프레임 인코딩 (real 프레임레이트) 설정방법 (ffmpeg 프레임 보간기법) 17 file 능소화 2017.06.06 7900 0
공지 태-영화체(유료폰트) 와 비슷한 a시네마 무료 폰트 올려드립니다. [링크참조] 2 file 능소화 2017.04.02 8032 0
공지 [TIP] 기존의 '귀여운 소녀' 아이콘으로 돌아가기 1 file 유밍 2017.03.30 3320 0
공지 ※ 설정방법 / 프리셋파일포함 ※ 샤나인코더외부 자막 Mux 기능 추가 [v 4.5.1] 9 file 능소화 2017.03.30 6199 1
35 Using hevc (NVENC) acceleration, how to achieve 10bit? 1 update av1 2018.07.15 22 0
» tonemap, zscale 필터를 이용한 HDR->SDR 변환 (FFmpeg CLI) 3 file sSTSs 2018.06.26 236 0
33 하드웨어 가속 디코딩(DXVA2)을 꺼서 인코딩 속도를 높이기 3 sSTSs 2018.06.19 1291 0
32 소장용 고화질 1080p 영상 인코딩 팁 퍼플군단 2018.06.12 1722 0
31 샤나인코더와 자막, Q&A 1 sSTSs 2018.05.31 545 0
30 QuickTime/Apple TV에서 재생이 안 되는 HEVC 동영상 문제 해결 file sSTSs 2018.05.21 441 0
29 HD(720p) 이상 고해상도 동영상을 HD의 WebM(VP9, Opus 코덱)으로 인코딩하기 file sSTSs 2018.05.20 722 0
28 wINDOWS10 멀티 데스크톱 정군 2018.05.07 482 0
27 HDR 영상 인코딩하기! 7 황금별똥 2018.01.23 2836 0
26 ASS 자막 파일을 aegisub으로 작업 시 libass를 사용하세요. file 샤나 2018.01.20 1027 1
25 블루레이 (Blu-ray) 폰트 모음 트루폰트로 올립니다. (용량관계로 댓글 부분확인) 3회 연속 업로드함. 2 file 능소화 2017.10.28 3449 0
24 MP3 파일 비트레이트 320 이상 설정방법 / 자막크기 및 자막 위치 설정 방법 1 file 능소화 2017.10.28 2514 0
23 막강한 ★샤나인코더★ 기능 제대로 사용하기 [영상-음성 분리하기 및 외부 음성파일 넣기] 23 file 능소화 2017.04.15 10863 3
22 [펌] 영화 용어 화질 코덱 해상도 릴그룹 총 정리 5 file 능소화 2017.04.13 9369 1
21 윈도우 / MS AMD 라이젠 프로세서 전용 '윈도우10 전원 관리 옵션' 배포 2 file 능소화 2017.04.12 3603 0
20 2Audio 내장 플레이어로 재생시 기본재생 음성 지정하기 file 능소화 2017.04.09 1863 0
19 메타데이터, 챕터정보 삽입하기 file 샤나 2017.04.02 1431 1
Board Pagination Prev 1 2 Next
/ 2