CPU는 AMD 라이젠 3600, VGA는 rx5700xt 사용중입니다.
샤나인코더에서 hevc 인코딩을 하고 애플기기(아이패드)의 Apple TV앱(아이패드 기본 동영상 재생)에 저장할 때
HEVC 로 인코딩한 영상은 정상적으로 인식 및 저장된느데,
HEVE(AMF)로 인코딩한 영상은 아이패드에서 사용할 수 없는 영상이라고 뜨며 아이패드에 저장이 안됩니다.
물론 nplayer같은 서드파티앱에서는 됩니다만 공간감 오디오 등 때문에 기본 앱과 병행하여 사용중입니다.
정상적으로 인식되는 파일의 video 정보입니다.
Video
ID : 1
Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main@L4@Main
Codec ID : hvc1
Codec ID/Info : High Efficiency Video Coding
Duration : 8 min 45 s
Bit rate : 4 579 kb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 20.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.110
Stream size : 287 MiB (96%)
Writing library : x265 3.4+12-geff904199:[Windows][GCC 5.4.0][64 bit] 8bit+10bit
Encoding settings : cpuid=1111039 / frame-threads=3 / numa-pools=12 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=1920x1080 / interlace=0 / total-frames=0 / level-idc=0 / high-tier=1 / uhd-bd=0 / ref=2 / no-allow-non-conformance / no-repeat-headers / annexb / no-aud / no-hrd / info / hash=0 / no-temporal-layers / open-gop / min-keyint=20 / keyint=250 / gop-lookahead=0 / bframes=4 / b-adapt=0 / b-pyramid / bframe-bias=0 / rc-lookahead=15 / lookahead-slices=6 / scenecut=40 / hist-scenecut=0 / radl=0 / no-splice / no-intra-refresh / ctu=64 / min-cu-size=8 / no-rect / no-amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / rdoq-level=0 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / strong-intra-smoothing / max-merge=2 / limit-refs=3 / no-limit-modes / me=1 / subme=1 / merange=57 / temporal-mvp / no-frame-dup / no-hme / weightp / no-weightb / no-analyze-src-pics / deblock=0:0 / sao / no-sao-non-deblock / rd=2 / selective-sao=4 / early-skip / rskip / fast-intra / no-tskip-fast / no-cu-lossless / no-b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=2.00 / psy-rdoq=0.00 / no-rd-refine / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=cqp / qp=20 / ipratio=1.40 / pbratio=1.30 / aq-mode=0 / aq-strength=0.00 / no-cutree / zone-count=0 / no-strict-cbr / qg-size=64 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=1 / overscan=0 / videoformat=5 / range=0 / colorprim=2 / transfer=2 / colormatrix=2 / chromaloc=0 / display-window=0 / cll=0,0 / min-luma=0 / max-luma=255 / 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 / hist-threshold=0.03 / no-opt-cu-delta-qp / no-aq-motion / no-hdr10 / no-hdr10-opt / no-dhdr10-opt / no-idr-recovery-sei / analysis-reuse-level=0 / analysis-save-reuse-level=0 / analysis-load-reuse-level=0 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=1 / refine-ctu-distortion=0 / no-limit-sao / ctu-info=0 / no-lowpass-dct / refine-analysis-type=0 / copy-pic=1 / max-ausize-factor=1.0 / no-dynamic-refine / no-single-sei / no-hevc-aq / no-svt / no-field / qp-adaptation-range=1.00 / no-scenecut-aware-qpconformance-window-offsets / right=0 / bottom=0 / decoder-max-rate=0
Color range : Limited
Codec configuration box : hvcC
정상적으로 인식이 불가능한 파일의 video 정보입니다.
Video
ID : 1
Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main@L6.2@Main
Codec ID : hvc1
Codec ID/Info : High Efficiency Video Coding
Duration : 8 min 45 s
Bit rate : 5 416 kb/s
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 20.000 FPS
Standard : Component
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.131
Stream size : 339 MiB (96%)
Color range : Limited
Codec configuration box : hvcC
이 외에 나머지 General 과 Audio 정보는 두 파일이 동일합니다.
두 파일의 어떤 차이점 때문에 이런 문제가 발생하는 걸까요?
레벨입니다.
해상도와 프레임 레이트, 비트레이트 수준으로 보아 이 정도까지 높은 레벨이 필요하지 않은데 왜 이렇게 나왔는지 궁금하군요.
첫 파일처럼 4만 나와도 충분할 텐데...
레벨이 너무 높아서 아이패드에서 거부하는 겁니다. "나는 그렇게까지 높은 대역폭을 지원 못 한다"는 거죠.
보통 레벨 지정은 따로 안 하고 자동으로 인코더가 결정하도록 맡깁니다.
인코딩할 때 레벨 설정을 따로 지정했는지 확인하세요.