조회 수 3988 추천 수 0 댓글 7
?

단축키

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=14W5lqskWkn6aFUmSLrZRljPd4VuVbQlS (448MB)

 

<인코딩한 SDR 동영상>

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

 

 

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

 

샤나인코더 5.0부터 shanatonemap 이라는 커스텀 필터를 추가하여 톤매핑을 적용한 HDR ⇒ SDR 인코딩이 가능해졌습니다.

자세한 사항은 HDR -> SDR 변환 (H264(x264), FHD, 톤매핑) (4.9.0.6 이상만 해당) 프리셋 게시물을 참고하시기 바랍니다.

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

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

     

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

     

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

     

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

     

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

     

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

  • ?
    하나비 2018.12.01 23:03
    요즘 4k hdr 영상들을 자주 보는 데 hdr 미지원 tv라 너무 어둡게 나오거나 영상 필터를 사용해도 색 왜곡이 나타나 불만이었는데, 꿀팁 정말 감사합니다
  • ?
    weatherhelper 2019.07.28 03:04
    좋은 글 너무 감사합니다.

    1080p가 아닌 4k로 하려면
    zscale=1920를 zscale=3840 으로 하면 될까요?

    날이 무척 더운데, 시원한 여름 보내시길 바랍니다.
  • ?
    JKyle 2019.07.28 12:08
    네. 1920을 3840으로 치환하시면 됩니다.
  • ?

     

    22년에 마지막 올리신 프리셋과 HEVC 코덱(8-10비트)를 사용하면서도 보면은 인물 부분은 괜찮음, 어둠(조명) 부분이 깨져서요

     

    JKYLE 님글 계속 보다보니 샤나보다 명령어가 더 괜찮겠다 싶은데 영상(영화)이 10비트니 10비트로도 방법을 알아보려 하는데

     

    캡처_2023_11_12_14_28_15_406.png

    캡처_2023_11_12_15_07_36_103.png

    -이 부분은 기존 샤나 명령어를 찾아보니 high→high 10 으로 하면될듯, 근데 yuv420 8B 를 10b 로 할려면 가장 낮은 yuv420p10le high 10

    해야하는데 저게 맞으면 yuv420p10le=high 10 따라서 420이 낮은 일반 10비트인게 맞겠네요? (맞는것 같지만,궁금)

     

    암튼 어느부분을 바꾸면 될까요? 또 aac 얘기나오니 오디오 안걸들고(스트림복사) 할수도 있으려나요? (해결o)

     


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수 추천 수
공지 샤나 사이트 일시 접속 불가 안내 Rina 2024.04.11 1830 0
공지 소리를 4가지로 분리하는 샤나보컬리무버 프로그램을 소개합니다. Rina 2024.03.22 4456 4
공지 샤나인코더 통합 검색 기능 개선(샤나인코더 우측 상단에 있는 검색창을 사용해 보세요.) Rina 2021.09.30 19298 2
공지 자유게시판에서는 자유롭게 글을 작성할 수 있지만 다음과 같은 내용은 삭제돼요 Rina 2020.03.18 17005 5
공지 일반 [필독] 질문 전에 반드시 읽으세요!!! 3 file JKyle 2019.09.16 33508 7
공지 일반 [알림] 질문 먹튀하지 마시기 바랍니다 => 본문 변경 금지 23 JKyle 2018.10.12 29099 16
778 질문 동영상에 만든 ass자막을 효과를 살려 그대로 동영상에 입히고 싶습니다... 2 뽀시리 2021.02.18 2651 0
777 질문 음성-영상추룰-합병하기xml 1 file 수호천사 2021.02.21 954 0
776 일반 좋은 인코더를 알게되어 감사드립니다. ^^ 1 포챠 2021.02.22 1062 3
775 일반 오디싱크 (인코딩) 1 나아란마앚 2021.02.25 1182 0
774 질문 샤나 데모 파일도 유료로 바뀌었나요?? 2 야미타임 2021.02.28 1121 0
773 질문 UK7400KNA 4K영상 재생 시 문제입니다. 도와주세요. 2 file ramidian 2021.02.28 1031 0
772 질문 영상, 자막 합치기 끝날때쯤 오류 부탁드립니다 ㅠㅠ 4 file leeeeejo 2021.03.02 1096 0
771 질문 파일 추가시 인코딩 목록에 나타나는 재생시간이 파일정보 재생시간과 다른 경우(분단위가 시간단위로 읽힙니다) 2 file 크로와상 2021.03.05 1198 0
770 질문 인코딩 후 화면이 왜 뒤집어 지나요 ㅠㅠ? 2 야미타임 2021.03.08 1059 0
769 질문 영상이 뒤집힙니다 1 코스모 2021.03.11 968 0
768 질문 사냐인코더 5.x 버전에서 설치가 안됩니다. (무반응) 3 ekpark97 2021.03.11 1190 0
767 질문 자막 싱크 맞지않을때 1 바다북 2021.03.12 1955 0
766 질문 잘라내기 했더니 설정보다 길게 인식하는 문제 3 file 아아아 2021.03.12 855 0
765 질문 샤나인코더로 영상두개 좌우에 동시재생하게 인코딩 하는방법이 있을까요? 6 키코링링 2021.03.13 1563 0
764 질문 샤나인코더 미리보기에서 폰트 글자가 깨진 걸 보고 그 폰트를 FontForge에서 유니코드Bmp으로 변환하고 추출하는데 문제가 생겼어요 2 file SONGANI 2021.03.13 875 0
763 질문 Can  add “loading BD disk”function? 1 file huangwenen 2021.03.13 666 0
762 질문 자막이 한 줄씩만 나오는데 여러 줄 나오도록 설정할 수 있나요? 1 오늘도즐겁게 2021.03.15 781 0
761 샤나인코더 5.2 H264/HEVC NVENC 하드웨어 인코딩 개선 안내 file Rina 2021.03.16 2885 4
760 질문 안녕하세요 염치불구하고 질문드립니다 2 냐옹 2021.03.17 1251 0
759 질문 완전 초보 질문드립니다. 2 Muge 2021.03.17 1024 0
Board Pagination Prev 1 ... 118 119 120 121 122 123 124 125 126 127 ... 161 Next
/ 161