조회 수 12397 추천 수 3 댓글 9
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

HDR인 원본 영상을 화질을 조금만 희생하면서 용량을 크게 줄이기 위해 같은 HDR 영상으로 (그중에서도 TV 용 공개 표준인 HDR10으로) 트랜스코딩(HDR => HDR)하는 프리셋입니다.

 

프리셋 파일 다운로드: HDR10 HEVC crf 18 1080p HE-AAC 44.1 64k.xml

 

HDR to HDR (HDR10) 트랜스코딩 때 고려해야 할 것은 세 가지입니다.

 

 

1. Output이 사용할 정확한 색 공간 정보(primaries와 color matrix, transfer characteristics)를 주기

 

2. TV 재생을 위해 TV 재생에 필요한 static metadata가 비디오 스트림에 들어갈 수 있도록 인코더에 매개변수로 넣어 주기 (HDR TV 공개 표준인 HDR10에 맞추는 작업. -x265-params에 들어가는 색 공간 정보 매개변수들, master-display, max-cll 옵션 설정 등)

 

3. Output 동영상의 픽셀 포맷을 10비트로 맞춰 주기 ('-pix_fmt yuv420p10le' 옵션과 HEVC 프로파일을 bit depth 10을 지원하는 'Main 10'으로 맞춰 주기)

 

 

Target 미디어가 굳이 TV가 아닌 경우 (예를 들어 HDR 지원이 가능한 HDR 컴퓨터 모니터 또는 HDR 영상의 소프트웨어 셰이딩/렌더링 처리가 가능한 컴퓨터 모니터) 위의 세 가지 사항 중 2번은 생략해도 됩니다. 2번을 넣는 이유는 HDR10을 지원하는 HDR HDTV가 HDR 동영상을 자동으로 HDR로 인식하도록 하기 위함입니다.

 

(참고로, HDR 영상을 SDR 모니터로 감상할 경우 렌더러가 시원찮거나 셰이딩 처리를 소프트웨어적으로 제대로 해주지 못하는 프로그램으로 볼 경우 영상의 색감이 상당히 떨어집니다. 팟플레이어의 경우 픽셀 셰이더 설정에서 'HDR SMPTE ST 2084/2086 자동 보정'으로 어느 정도 색감 저하를 막을 수 있습니다.)

 

 

HDR 영상에 대한 자세한 내용은 해당 위키피디어 문서를 참조하십시오.

https://en.wikipedia.org/wiki/High-dynamic-range_video

 

 

---------------------------------------------------------------------------------------------------------

 

 

파일 형식은 MP4, 비디오 코덱은 HEVC(x265), 오디오는 44.1kHz, 64kbps 스테레오 HE-AAC 오디오입니다.

비디오 코덱을 x264로 하지 않은 이유는 샤나의 libx264가 HDR10 인코딩을 할 수 있는지 알 수 없어서입니다.

 

 

필터 매개변수에 대한 설명은 아래와 같습니다. (오디오 부분은 생략)

 

=============================================================================

scale=1920:-1:flags=spline:out_color_matrix=bt2020_ncl

        // 1080p로 해상도 변경, 알고리듬을 spline으로

        // 해상도 변경시 color matrix를 HDR 용인 bt2020_ncl로

        // 해상도 변경을 하지 않을 경우 지워도 무방

 

setsar=1/1

        // 레터박스 사용 안 함

 

shanasubtitle=0

=============================================================================

 

 

인코딩 옵션 설정에 대한 설명은 다음과 같습니다. (뻔한 부분은 생략)

 

=============================================================================

 -f mp4

 -c:v libx265 -libx265main10 -crf 18.0 -preset slower -tune:v none

        // HDR 영상의 bit depth 10을 지원하는 Main 10 프로파일 선택

        // crf와 preset은 필요에 따라 조정할 것

 

 -pix_fmt yuv420p10le

        // HDR 영상의 10 bit depth를 가지는 픽셀 포맷을 보존

 

 -color_primaries bt2020 -color_trc smpte2084 -colorspace bt2020nc

        // Output이 사용하는 색 공간 정보 설정

        // 전역 metadata로 기록됨

 

 -color_range tv

        // Output의 color range를 tv로 설정

        // 원본이 TV 녹화 영상인 경우 생략

 

 -x265-params me=umh:qcomp=0.6:scenecut=40:bframes=3:min-keyint=15:keyint=150:colorprim=bt2020:transfer=smpte2084:colormatrix=bt2020nc:master-display="G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,500)"

        // x265의 추가 인코딩 옵션값들

        // http://x265.readthedocs.io/en/default/cli.html 참조

 

        // me=umh:qcomp=0.6:scenecut=40:bframes=3:min-keyint=15:keyint=150 부분은

        // 화질 향상을 위한 frame control, rate control, motion estimation control 부분이므로

        // 본인이 조정하거나 생략 가능 (삭제시 뒤의 구분자 ':'를 포함해서 삭제할 것)

 

        // colorprim=bt2020:transfer=smpte2084:colormatrix=bt2020nc 부분은

        // x265가 참고할 output의 색 정보 부분

        // HDR10 표준에 맞추려면 반드시 들어가야 함

 

        // master-display="G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(10000000,500)" 부분은

        // TV 재생에 필요한 static metadata가 비디오 스트림에 들어갈 수 있도록 한 것 (SMPTE ST 2086)

        // 설정값들은 원본의 mastering display에 따라 달라져야 하나 대개 대동소이함

        // 거의 대부분 밝기 부분인 L(최대 cd/m2 X 10000, 최소 cd/m2 X 10000) 만 값을 변경

        // 역시 HDR10 표준에 맞추기 위한 부분

        // TV에서 재생할 게 아니라서 HDR10 표준에 굳이 맞출 필요가 없다면 생략 가능 (삭제시 앞의 구분자 ':'를 포함해서 삭제할 것)

 

 -c:a libfdk_aac -b:a 64k -ac 2 -fdkprofile he

 -tag:v hvc1

 -sn -metadata creation_time=now

 -metadata:s:v:0 language=kor

 -metadata:s:a:0 language=kor

         // 위의 설정들은 다른 프리셋을 참고할 것

=============================================================================

 

이상입니다.

 

-------------------------------------------------------------------------

 

<주의하실 점>

 

원본 동영상의 오디오가 AAC라도 먹싱 모드가 'ADTS'일 경우(파일 형식이 ts인 경우) 오디오를 스트림 복사로 설정하면 인코딩 시 에러가 납니다.

그때는 오디오를 반드시 함께 인코딩해 주십시오.

 
이 글을 추천한 사람
Windows10 디지탈로그
Facebook Twitter Pinterest Kakao
  • ?
    JKyle 2018.06.25 16:03

    아래 프리셋의 경우와 같이 위의 프리셋을 응용하여 4K HDR UHD 동영상(http://4kmedia.org/ 에서 받은 4K HDR UHD 동영상 샘플인 'LG New York HDR UHD 4K Demo')을 FHD(1080p) HDR10으로 트랜스코딩해 본 결과입니다.

    (영상에 관한 설명은 http://4kmedia.org/lg-new-york-hdr-uhd-4k-demo/ 에서)

     

    <원본(448MB, ts 형식)>

    https://drive.google.com/open?id=14W5lqskWkn6aFUmSLrZRljPd4VuVbQlS

     

    <원본 캡쳐(2MB, jpg 형식)>

     

    <FHD HDR10(93MB, mp4 형식)>

    https://drive.google.com/open?id=1DkWgGanDmZ3gQb-RfZKU7n2GNYqP4w8I

     

    <FHD HDR10 캡쳐(642kB, jpg 형식)>

     

    (이때 오디오는 원본의 먹싱 모드가 ADTS이므로 그냥 스트림 복사를 하게 되면 인코딩 오류가 납니다. 따라서 44.1kHz, 64kbps의 HE-AAC로 인코딩했습니다.)

    (원본 메타 정보의 "MasteringDisplay_Luminance:   min: 0.0500 cd/m2, max: 1200 cd/m2"에 따라 프리셋의 L(10000000,500)을 L(12000000,500)으로 변경)

     

    보면 아시겠지만 원본과 색감이 거의 다르지 않습니다. 그리고 메타 정보가 제대로 살아 있는 것을 보실 수 있을 겁니다.

     

    그렇지만 단점이라고 할 만한 것은 역시 인코딩 시간이 무척 오래 걸린다는 것입니다. 인코딩 내내 제 i5-7300HQ (2.5GHz)가 100%를 찍으며 허덕이더군요. 속도는 3fps를 넘지 못하고요.

  • ?
    Prophet 2018.07.11 16:43
    Your screenshots are from different frames, make it same frame please.
  • ?
    JKyle 2018.07.15 18:17
    The same frame screenshots look almost indistinguishable on my hardware. That's why I decided not to upload them. Please compare them yourself.
  • ?
    davidoh 2020.02.22 14:13
    정말 죄송합니다. 이렇게 영상작업을 시작한지 얼마되지 않은 사람입니다. 다름이 아니라 이렇게 다운받게 하셨는것을 어떻게 어디에다 입력해서 설정해야되는지 모르는 무지인입니다. 어디에 입력하면 되는지요.
  • ?
    JKyle 2020.02.22 23:44

    프리셋 파일 다운로드

    ⇒ 메인 창 오른쪽 밑의 설정 및 프리셋 메뉴 열기 클릭

    프리셋 추가

    ⇒ 다운로드 받은 프리셋 파일 찾아서 클릭해서 추가

  • ?
    윤아티비 2019.09.25 10:55
    정말감사합니다 ㅠㅠ
  • ?
    애증의유 2021.01.01 23:38
    인코딩시 -color_range tv 이옵션을 뺐을경우 화질 차이가 많이나나요?
  • ?
    JKyle 2021.01.06 22:49
    그냥 메타정보라 화질과 상관없습니다.
  • ?
    Lucifer 2021.01.06 22:37
    감사합니다!
    올려주신 방법대로 제가 기존에 쓰던 프리셋에 적용해봤더니 매우 잘되네요
    nvenc에 적용해서 해보니 4k hdr영상이 초당 30프레임나오네요 ㄷㄷㄷ