?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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

안녕하세요. 저는 인코딩 디코딩에 대한 지식이 전무한 사람입니다.

 

어쩌다가 PLEX라는 것을 알게 되었고, PLEX의 라이브러리를 구성하고... 

트랜스코딩과 다이렉트 플레이라는 것을 알게 되었습니다.

 

재생해본 결과 다이렉트 플레이가 훨씬 원활하고, 원본 화질 그대로 즐길 수 있다는 이점이 있어서 다이렉트 플레이를 고집하고 있습니다.

 

그런데 자막의 폰트를 변경하고 싶었습니다. 알아본 결과 ass 형식의 자막을 쓰면 된다는 것을 알았습니다.

 

여기서 문제가 생겼는데, PLEX 클라이언트가 자막이 srt이면 다이렉트 플레이가 가능하지만,

ass나 smi면 강제 트랜스코딩이 진행되어버려서 버퍼링이 엄청나게 걸리는 문제가 있었습니다.

 

그럼 srt 자막을 쓰고, 클라이언트에서 자막 폰트를 바꾸면 될 문제이지 않느냐고 생각하실 수 있는데, 클라이언트는 LG 스마트 TV이고, srt 형식의 자막의 경우 LG 스마트 TV가 정한 폰트(고딕체)로만 나와서 변경할 수 없었습니다. 바꾸고 싶다면 LG스마트TV를 루팅해야겠지만 저는 그런 능력이 없습니다. ㅠㅠ

 

그래서 이 영상에 자막을 입혀서(Hardburn) 다이렉트 플레이를 시켜야겠다고 결론을 내렸습니다.

 

검색을 하다가 하다가 여기까지 오게되었고, 이틀에 걸쳐서 많은 분들의 질문과 팁, 프리셋 등을 읽어보았습니다.

그리고 어느정도 해답을 찾았는데... 제가 생각한 바가 맞는지 확인하고 싶어서 이렇게 질문을 올립니다.

 

다시 말씀드리지만, 저는 영상 인코딩 디코딩에 대한 지식이 전무합니다. 그래도 이틀동안 몇번을 반복해 읽으면서 아주 조금 이해했습니다.

 

독서백편의자현(讀書百遍義自見) - 책을 백번 읽으면 그 뜻은 저절로 알게 된다.

 

어릴 때부터 이 마음을 가지고 살아왔던지라... 이해가 안되어도 몇 번을 반복해 읽으면 어느 순간 정말 이해가 되기 시작하더군요.

물론 또 설명을 매우 잘해주신 많은 분들 덕분입니다.

(여담이지만 PLEX 라이브러리 구성하고 ass 자막에 대해서 알게되고 트랜스코딩과 다이렉트 플레이에 대해서 알게되는데에 두달 걸렸네요 ㅠㅠ)

 

그리고 제가 이해한 부분에 대해서 점검을 받을려고 합니다.

 

 

본론을 말씀드리겠습니다.

제가 변환시키고 싶은 영상의 정보는 이렇습니다.

 

먼저 샤나인코더 밑에 나오는 요약된 비디오, 오디오 정보를 보여드리고, 오른쪽 마우스 클릭해서 파일정보를 눌렀을 때의 정보를 올리겠습니다.

 

요약

비디오 hevc, 3840x1596, 23.98fps, HDR, yuv420p10le(tv,   bt2020nc/bt2020/smpte2084)

오디오 dts, 48000Hz, 8ch

 

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

General

Unique ID                                : 330454167508358052994626647783965339941 (0xF89B285B6F686DE699C9BDEF53523125)

Complete name                            : D:\PLEX\미국영화\해리포터 시리즈\해리 포터와 마법사의 돌 2160p.mkv

Format                                   : Matroska

Format version                           : Version 4

File size                                : 21.5 GiB

Duration                                 : 2 h 32 min

Overall bit rate mode                    : Variable

Overall bit rate                         : 20.2 Mb/s

Encoded date                             : UTC 2018-01-19 17:47:15

Writing application                      : mkvmerge v20.0.0 ('I Am The Sun') 64-bit

Writing library                          : libebml v1.3.5 + libmatroska v1.4.8

 

Video

ID                                       : 1

Format                                   : HEVC

Format/Info                              : High Efficiency Video Coding

Format profile                           : Main 10@L5.1@High

HDR format                               : SMPTE ST 2086, HDR10 compatible

Codec ID                                 : V_MPEGH/ISO/HEVC

Duration                                 : 2 h 32 min

Width                                    : 3 840 pixels

Height                                   : 1 596 pixels

Display aspect ratio                     : 2.40:1

Frame rate mode                          : Constant

Frame rate                               : 23.976 (24000/1001) FPS

Color space                              : YUV

Chroma subsampling                       : 4:2:0 (Type 2)

Bit depth                                : 10 bits

Writing library                          : x265 2.6+22-ff02513b92c0:[Windows][GCC 6.3.0][64 bit] 10bit

Encoding settings                        : cpuid=1173503 / frame-threads=4 / numa-pools=16 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=3840x1596 / interlace=0 / total-frames=219173 / level-idc=51 / high-tier=1 / uhd-bd=0 / ref=4 / no-allow-non-conformance / repeat-headers / annexb / aud / hrd / info / hash=0 / no-temporal-layers / no-open-gop / min-keyint=1 / keyint=24 / gop-lookahead=0 / bframes=4 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=25 / lookahead-slices=4 / scenecut=40 / radl=0 / no-intra-refresh / ctu=64 / min-cu-size=8 / rect / no-amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / rdoq-level=2 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / no-strong-intra-smoothing / max-merge=3 / limit-refs=3 / limit-modes / me=3 / subme=3 / merange=57 / temporal-mvp / weightp / no-weightb / no-analyze-src-pics / deblock=-3:-3 / no-sao / no-sao-non-deblock / rd=4 / no-early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / no-b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=2.00 / psy-rdoq=1.00 / no-rd-refine / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=crf / crf=17.0 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=0 / vbv-maxrate=160000 / vbv-bufsize=160000 / vbv-init=0.9 / crf-max=0.0 / crf-min=0.0 / ipratio=1.40 / pbratio=1.30 / aq-mode=1 / aq-strength=1.00 / cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=1 / overscan=0 / videoformat=5 / range=0 / colorprim=9 / transfer=16 / colormatrix=9 / chromaloc=1 / chromaloc-top=2 / chromaloc-bottom=2 / display-window=0 / master-display=G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(40000000,50) / max-cll=552,190 / min-luma=0 / max-luma=1023 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / no-opt-cu-delta-qp / no-aq-motion / hdr / hdr-opt / no-dhdr10-opt / analysis-save=(null) / analysis-load=(null) / analysis-reuse-level=5 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=0 / no-limit-sao / ctu-info=0 / no-lowpass-dct / refine-mv-type=0 / copy-pic=1

Default                                  : Yes

Forced                                   : No

Color range                              : Limited

Color primaries                          : BT.2020

Transfer characteristics                 : PQ

Matrix coefficients                      : BT.2020 non-constant

Mastering display color primaries        : Display P3

Mastering display luminance              : min: 0.0050 cd/m2, max: 4000 cd/m2

Maximum Content Light Level              : 552 cd/m2

Maximum Frame-Average Light Level        : 190 cd/m2

 

Audio

ID                                       : 2

Format                                   : DTS XLL X

Format/Info                              : Digital Theater Systems

Commercial name                          : DTS-HD Master Audio

Codec ID                                 : A_DTS

Duration                                 : 2 h 32 min

Bit rate mode                            : Variable

Channel(s)                               : 8 channels

Channel(s)_Original                      : Object Based

ChannelLayout_Original                   : Object Based

Sampling rate                            : 48.0 kHz

Frame rate                               : 93.750 FPS (512 SPF)

Bit depth                                : 24 bits

Language                                 : English

Default                                  : Yes

Forced                                   : No

 

Text

ID                                       : 3

Format                                   : PGS

Muxing mode                              : zlib

Codec ID                                 : S_HDMV/PGS

Codec ID/Info                            : Picture based subtitle format used on BDs/HD-DVDs

Language                                 : English

Default                                  : No

Forced                                   : No

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

 

 

이렇습니다.

저는 용량 줄일 생각도 없고, 화질 조정을 할 생각도 없습니다. 자막만 입히고 싶습니다.

빠른 설정을 들어가보니 스트림 복사가 있더군요.

 

오디오는 스트림 복사를 하면 될 것 같았습니다만, 비디오는 스트림 복사를 하면 자막을 입힐 수 없었습니다.(Hardburn)

자막을 영상에 새기는 것이니 재인코딩이 당연히 필요하겠지요.

 

저는 그럼 비디오를 똑같은 코덱과 똑같은 방식으로 설정해놓고, 자막 입히기를 체크하고 인코딩하면 되지 않을까 생각했습니다.

 

그래서 제가 가지고 있는 파일에 대해 공부를 좀 해보았습니다.

 

HDR 영상과 10비트 영상

https://shana.pe.kr/shanaencoder_tip/80753

 

이 글을 읽고 10비트와 HDR에 대해서 공부를 하였습니다만 아직 20%밖에 이해못했습니다.

 

그러다가 몇 번의 검색을 하다가 제가 원하는 프리셋을 발견했습니다.

 

HDR -> HDR(HDR10) 인코딩 (HEVC(x265), 1080p)

https://shana.pe.kr/shanaencoder_presets/49641

 

이 글이었습니다. 그러나 문제가 있는 것이 이 프리셋은 1080p HDR로 변환시키는 세팅이었습니다.

jKyle님께서 쓰신 글을 천천히 읽어보았고 이 부분을 발견했습니다.

 

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

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

 

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

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

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

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

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

 

setsar=1/1

        // 레터박스 사용 안 함

 

shanasubtitle=0

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

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

 

여기에 따르면 해상도 변경을 하지 않을 경우 지워도 된다고 되어있는데,

필터 매개변수에서

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

이 한 줄을 지우면 된다는 뜻인건지요?

 

프리셋을 살펴봤을 때, 이 한 줄만 지우고, 자막입히기 체크를 하고 진행을 하면

제가 원하는 4k HDR(비디오 hevc, 3840x1596, 23.98fps, HDR, yuv420p10le(tv,   bt2020nc/bt2020/smpte2084)의 화질을 보존하면서 자막을 입혀서 인코딩하는 것이 가능할까요?

 

혹시나 싶어서 다시 한번 더 언급드리는데, 저는 oepn Subtitle을 해야합니다. closed subtitle로 먹싱해버리면, 결국 클라이언트에서 제공하는 폰트로 재생될 것이기 때문입니다.

 

답변주시면 정말 감사하겠습니다.

 

닫기
Facebook Twitter Pinterest Kakao
  • ?

    4K HDR 재인코딩은 인코딩 지식이 없는 분이 도전하기엔 무척이나 까다롭고 어려운 주제입니다. 교육 과정에 비유하자면 대학원 초기 과정에 해당한다고나 할까요.

    '자막 입히기 = 재인코딩 = 화질 변화 불가피'임을 생각하면 화질 '보존'은 불가능하고, 가능한 원본에 가깝게 해볼 수는 있겠죠. 그걸 위한 설정이 무척이나 까다롭다는 겁니다.

     

    '원본과 똑같은 설정'을 하려면 보여주신 미디어인포 정보 중 비디오 쪽의 'Encoding settings' 값들을 분석해서 이걸 x265 고유 옵션 설정에 적용해야 합니다. 그런데 이건 일종의 리버스 엔지니어링 비슷한 거라 x265에 웬만큼 지식이 있지 않고서는 불가능합니다. 일단 기본적으로 미디어인포 정보들을 전부 다 해독하실 수 있을 정도는 돼야 하고, 거기에 더해 팁게에 올려놓은 모든 게시물들을 100% 이해를 하고 있어야 합니다. 거기에 더해 x265만의 옵션들에 대해 더 공부해야 하구요. 이건 일이 개월 공부해서는 어림도 없습니다.

     

    그래서 대안으로 하는 방법이 최소한의 기본적인 옵션들을 선택하는 겁니다. 이렇게 하면 '원본과 똑같은 설정'보다 화질 저하는 더 있겠지만, '원본과 똑같은 설정' 방법보다 필요한 지식이 훨씬 줄어듭니다.

     

     

    그런데 HDR 영상이 어려운 이유는, 그 '최소한의 기본적인 옵션들'이 HDR이 아닌 일반 SDR 영상보다 훨씬 많다는 겁니다. 그리고 설정을 위해서는 원본의 미디어인포 정보에서 HDR 관련 항목들을 반드시 이용해야 합니다.

     

    본문에 올려주신 것을 예로 들면,

     

    Color primaries                          : BT.2020

    Transfer characteristics                 : PQ

    Matrix coefficients                      : BT.2020 non-constant

    Mastering display color primaries        : Display P3

    Mastering display luminance              : min: 0.0050 cd/m2, max: 4000 cd/m2

    Maximum Content Light Level              : 552 cd/m2

    Maximum Frame-Average Light Level        : 190 cd/m2

     

    얘네들이 색공간 정보와 비디오 스트림에 삽입되는 SMPTE ST 2086 메타정보(HDR10 표준)로 들어가야 합니다.

    즉, 매개변수 설정 부분(매개변수 창(F8))에 아래와 같이 들어가게 되죠.

     

     -color_primaries bt2020 -color_trc smpte2084 -colorspace bt2020nc

     -x265-params colorprim=bt2020:transfer=smpte2084:colormatrix=bt2020nc:master-display="G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(40000000,50)":max-cll=552,190

     

    x265 부분은 여기에 더해 원본의 미디어인포 정보[Encoding settings]에서 파악한 재생기 버퍼 관련 설정(vbv-maxrate=160000:vbv-bufsize=160000)과 HDR 추가 정보인 최소/최대 휘도 정보(min-luma=0:max-luma=1023)를 추가해서 다음과 같이 확장하면 됩니다.

     

     -x265-params vbv-maxrate=160000:vbv-bufsize=160000:colorprim=bt2020:transfer=smpte2084:colormatrix=bt2020nc:master-display="G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(40000000,50)":max-cll=552,190:min-luma=0:max-luma=1023

     

    그리고 필터 쪽은, 해상도 변경을 하지 않으므로 원래의 프리셋에 있던

     -vf "scale=1920:-1:flags=spline:out_color_matrix=bt2020_ncl,setsar=1/1,shanasubtitle=0"

    이 줄은 싹 다 지우시고, 자막 입히기 작업은 빠른 설정(F6)에서 따로 직접 하시면 나중에

     -vf "shanasubtitle=1"

    이 자동으로 생성될 겁니다.

     

     

    이상 위에서 말씀드린 것들과 원래의 프리셋에서 더 설명된 것들(픽셀 포맷, 'Main 10' 프로파일 등등), 그리고 올려주신 미디어인포에서 파악한 crf 값을 추가로 반영하여 프리셋을 만들면 아래와 같습니다.

     

    HDR10 HEVC(x265) main10 crf audio copy (LG 스마트TV 기본).xml

     

    이 프리셋은 위에서 설명드린 대로 원본에 맞춘 가장 기본적인 프리셋입니다. 여기에 추가적으로 Encoding settings 정보를 해독해서 반영할 수도 있겠습니다만, 말씀드린 대로 그 과정은 상당히 지난합니다.

     

     

    여기까지는 원하시는 '설정' 관련된 설명인데, 문제는 4K HDR 재인코딩이 스트레스를 주는 원인이 설정에서 끝나는 게 아니라는 겁니다. 어찌어찌 설정해서 인코딩을 시도해 본다고 해도 4K 해상도와 HDR10을 유지하면서 x265로 인코딩하려면 경우에 따라 엄청난 시간이 걸린다는 걸 알게 되실 겁니다. 그건 x265가 CPU만 죽어라 파는 인코더라서 그런 건데, 요즘 나오는 코어/스레드 많은 고사양 CPU를 쓰신다고 해도 x265 자체가 갖고 있는 한계 때문에 CPU를 완전히 다 사용하지 못하는 경우도 있습니다.

     

    x265가 아닌 NVENC 같은 하드웨어 인코더(그래픽 카드 이용)를 사용하면 인코딩 속도가 개선이 되긴 합니다만, 이 경우엔 x265보다 화질 저하 폭이 크고, 결정적으로 HDR10 표준을 위한 (TV에서 HDR10으로 인식하기 위한) SMPTE ST 2086 메타정보를 비디오 스트림에 삽입할 수 없다는 문제가 있습니다. (이 프리셋 게시물 참고)

     

    (※ 참고로, (샤나인코더의 기반인) FFmpeg가 아닌 NVEnc에서는 SMPTE ST 2086 삽입이 가능한 매개변수 옵션을 제공합니다. 그래서 StaxRip이나 Hybrid 같은 스크립트 기반 툴에서는 NVEnc를 이용해 HDR10뿐만 아니라 HDR10+ 인코딩도 가능합니다. (비공개 포맷인 Dolby Vision만 불가능))

     

    게다가 자막 입히기는 CPU를 이용하는 소프트웨어 필터이므로 그래픽 카드와의 자료 교환에서 발생하는 병목현상으로 인코딩 속도가 꽤 저하될 수도 있으니 - 이 게시물과 이 게시물, 이 게시물 참고 - 하드웨어 인코더를 사용하는 잇점이 줄어드는 문제도 있습니다.

     

    이상 장문의 설명을 드렸는데, 설명드린 부분 중에 잘 이해가 안 되는 부분이 있다면 검색해서 찾아보시면 좋겠네요.


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수 추천 수
공지 소리를 4가지로 분리하는 샤나보컬리무버 프로그램을 소개합니다. Rina 2024.03.22 16487 5
공지 샤나인코더 통합 검색 기능 개선(샤나인코더 우측 상단에 있는 검색창을 사용해 보세요.) Rina 2021.09.30 31130 2
공지 자유게시판에서는 자유롭게 글을 작성할 수 있지만 다음과 같은 내용은 삭제돼요 Rina 2020.03.18 28139 5
공지 일반 [필독] 질문 전에 반드시 읽으세요!!! 3 file JKyle 2019.09.16 49213 8
공지 일반 [알림] 질문 먹튀하지 마시기 바랍니다 => 본문 변경 금지 24 JKyle 2018.10.12 46548 18
2408 로고문제 1 쿠구리 2017.04.03 439 0
2407 메모리 점유 9 cik1919 2017.04.03 772 0
2406 썸네일 설정(Thumb nail) 1 Leonard 2017.04.06 1054 0
2405 칼라가 복잡하지 않은 화면에 효율적인 인코딩 설정이 있는지 궁금합니다. 1 file 워터2리터 2017.04.06 401 0
2404 자막을 인코딩하고 나면 글자가 옆으로 퍼져서 나와요 ㅠㅠ 7 file mimiyu 2017.04.06 1033 0
2403 안녕하세요 기능추가 건의 1 file 키키 2017.04.07 399 0
2402 디인터레이스 질문 입니다. 4 file skyarc 2017.04.07 928 0
2401 구간설정/잘라내기 기능을 사용할 때.... 1 빗길 2017.04.08 1611 0
2400 설치를 했는데 실행이 안 됩니다 1 아이오페 2017.04.08 404 0
2399 소리 싱크 조절.... 2 브이테너 2017.04.10 2531 0
2398 요 며칠간 갑자기 인코더로 인코딩한 영상의 소리가 비정상적으로 작아졌어요 2 dlrnert 2017.04.10 675 0
2397 안녕하세요 1 딱밤 2017.04.10 475 0
2396 1280x720p 원본영상 인코딩 질문 2 쩌는사냐인코더 2017.04.10 1035 1
2395 4.7 버전...구간 설정한 후에 스트림 복사 기능 사용해 보고.... 1 빗길 2017.04.11 849 0
2394 Bottom Field First 인터레이스 영상을 60f으로 2 enigma 2017.04.11 513 0
2393 분명 존재하고 용량도 있는 파일인데 인코더로 인코딩 하려고 하면 오류가 바로 뜨고 0바이트라고 문구가 뜹니다... 4 스마일맨 2017.04.12 582 0
2392 ps3에 영상을 넣을려고 하는데 프리셋을 어떻게 설정할까요? 6 키미엘 2017.04.12 510 0
2391 CRF 모드와 2패스 비트레이트 모드 중에 무얼 추천하시나요? 4 고슴도치 2017.04.12 1555 0
2390 안녕하세요 4.7버전 추가개선 건의드립니다 1 file 키키 2017.04.12 562 0
2389 자막이 안나옵니다 2 스마일맨 2017.04.12 606 0
Board Pagination Prev 1 ... 40 41 42 43 44 45 46 47 48 49 ... 165 Next
/ 165