Apple TV 4K (2021), Dolby Vision profile 5, MP4 file won't play correctly

When playing these two files, I get a black image with a white spinner, and audio plays. The Technical Details tab states:

Video: Copy (HEVC)
Audio: Copy (EAC3)
Player: AVPlayer
Transcode Reason: This app cannot play this item. The reason is: video.codecID limitation applies: dvhe == dvhe

Mediainfo for the two files with these symptoms:

General
Complete name                            : file.mp4
Format                                   : MPEG-4
Format profile                           : Base Media / Version 2
Codec ID                                 : mp42 (isom/mp42/dby1)
File size                                : 20.3 GiB
Duration                                 : 2 h 35 min
Overall bit rate mode                    : Variable
Overall bit rate                         : 18.7 Mb/s
Encoded date                             : UTC 2021-10-21 22:22:10
Tagged date                              : UTC 2021-10-21 22:22:10
Writing application                      : GPAC-1.1.0-DEV-rev1011-ge57ff5682-master

Video
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main 10@L5@Main
HDR format                               : Dolby Vision, Version 1.0, dvhe.05.06, BL+RPU
Codec ID                                 : dvhe
Codec ID/Info                            : High Efficiency Video Coding with Dolby Vision
Duration                                 : 2 h 35 min
Bit rate                                 : 17.9 Mb/s
Width                                    : 3 840 pixels
Height                                   : 2 160 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Constant
Frame rate                               : 23.976 (24000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 10 bits
Bits/(Pixel*Frame)                       : 0.090
Stream size                              : 19.5 GiB (96%)
Writing library                          : x265 3.4hy:[Linux][GCC 7.5.0][64 bit] 10bit
Encoding settings                        : cpuid=1111039 / frame-threads=6 / no-wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=3840x2160 / interlace=0 / total-frames=0 / level-idc=0 / 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=96 / keyint=96 / gop-lookahead=0 / bframes=4 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=25 / lookahead-slices=4 / scenecut=40 / hist-scenecut=0 / radl=0 / no-splice / 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 / strong-intra-smoothing / max-merge=3 / limit-refs=3 / limit-modes / me=3 / subme=3 / 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=4 / selective-sao=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=3 / rc=abr / bitrate=18000 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=2 / cplxblur=20.0 / qblur=0.5 / vbv-maxrate=24500 / vbv-bufsize=24500 / vbv-init=0.6 / vbv-end=0.6 / vbv-end-fr-adj=0.0 / ipratio=1.40 / pbratio=1.30 / aq-mode=2 / 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=1 / colorprim=2 / transfer=2 / colormatrix=2 / chromaloc=0 / display-window=0 / cll=0,0 / min-luma=0 / max-luma=1023 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / no-concatenation / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / hist-threshold=0.01 / 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
Default                                  : Yes
Alternate group                          : 1
Encoded date                             : UTC 2021-10-21 22:07:12
Tagged date                              : UTC 2021-10-21 22:22:38
Color range                              : Full
Codec configuration box                  : hvcC+dvcC

Audio
ID                                       : 2
Format                                   : E-AC-3 JOC
Format/Info                              : Enhanced AC-3 with Joint Object Coding
Commercial name                          : Dolby Digital Plus with Dolby Atmos
Codec ID                                 : ec-3
Duration                                 : 2 h 35 min
Bit rate mode                            : Constant
Bit rate                                 : 768 kb/s
Maximum bit rate                         : 811 kb/s
Channel(s)                               : 6 channels
Channel layout                           : L R C LFE Ls Rs
Sampling rate                            : 48.0 kHz
Frame rate                               : 31.250 FPS (1536 SPF)
Compression mode                         : Lossy
Stream size                              : 854 MiB (4%)
Title                                    : English
Language                                 : English
Service kind                             : Complete Main
Encoded date                             : UTC 2021-10-21 22:03:27
Tagged date                              : UTC 2021-10-21 22:22:38
Complexity index                         : Not present / 16
Number of dynamic objects                : 15
Bed channel count                        : 1 channel
Bed channel configuration                : LFE
General
Complete name                            : file.mp4
Format                                   : MPEG-4
Format profile                           : Base Media / Version 2
Codec ID                                 : mp42 (isom/mp42/dby1)
File size                                : 17.9 GiB
Duration                                 : 2 h 49 min
Overall bit rate mode                    : Variable
Overall bit rate                         : 15.1 Mb/s
Encoded date                             : UTC 2023-05-22 16:37:55
Tagged date                              : UTC 2023-05-22 16:37:55

Video
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main 10@L5@High
HDR format                               : Dolby Vision, Version 1.0, dvhe.05.06, BL+RPU
Codec ID                                 : dvhe
Codec ID/Info                            : High Efficiency Video Coding with Dolby Vision
Duration                                 : 2 h 49 min
Bit rate                                 : 14.4 Mb/s
Width                                    : 3 832 pixels
Original width                           : 3 828 pixels
Height                                   : 1 592 pixels
Display aspect ratio                     : 2.40:1
Original 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
Bit depth                                : 10 bits
Bits/(Pixel*Frame)                       : 0.098
Stream size                              : 17.0 GiB (95%)
Default                                  : Yes
Alternate group                          : 1
Encoded date                             : UTC 2023-05-22 16:29:45
Tagged date                              : UTC 2023-05-22 16:38:19
Codec configuration box                  : hvcC+dvcC

Audio
ID                                       : 2
Format                                   : E-AC-3 JOC
Format/Info                              : Enhanced AC-3 with Joint Object Coding
Commercial name                          : Dolby Digital Plus with Dolby Atmos
Codec ID                                 : ec-3
Duration                                 : 2 h 49 min
Bit rate mode                            : Constant
Bit rate                                 : 768 kb/s
Maximum bit rate                         : 811 kb/s
Channel(s)                               : 6 channels
Channel layout                           : L R C LFE Ls Rs
Sampling rate                            : 48.0 kHz
Frame rate                               : 31.250 FPS (1536 SPF)
Compression mode                         : Lossy
Stream size                              : 930 MiB (5%)
Title                                    : English
Language                                 : English
Service kind                             : Complete Main
Default                                  : Yes
Alternate group                          : 1
Tagged date                              : UTC 2023-05-22 16:38:19
Complexity index                         : Not present / 16
Number of dynamic objects                : 15
Bed channel count                        : 1 channel
Bed channel configuration                : LFE

Server Version#: 1.32.3.7192 on Synology DSM 7.x
Player Version#: 8.2.0 (6066)

I hope someone can shed some light on this. I’ve been getting the same thing for a longtime now. Infuse plays the file fine.

I haven’t looked at this in a while, so it’s possible things have changed, but MP4 dvhe is probably the problem.

Plex on the AppleTV uses the Apple player engine for Dolby Vision content.
Apple expects MP4 DV files to be muxed as dvh1, not dvhe.

There are a variety of ways to remux from dvhe to dvh1. The very best is probably MP4Box if you care to learn it.

Another option would be to remux into MKV files with MKVToolNix. Plex has made a bunch of improvements in the last year for MKV DV playback.

I prefer Apple-flavored MP4 dvh1 because they work elsewhere in the Apple ecosystem.

Thanks @Volts. You were spot on. I remuxed using ffmpeg/mp4box as described here and the files play like a charm.

1. ffmpeg -i p5.dvhe.mp4 -map 0:0 -c copy dv.hevc
//-map 0:0 refers to DV track.

if (mov_text sub in it)
{
2. ffmpeg -i p5.dvhe.mp4 -map 0:1 -map 0:3 -c copy audio_sub.mp4
//-map 0:1 refers to eac3/ac3, -map 0:3 refers to mov_text sub.
}
else if ( .srt/.ass sub is needed)
{
2. ffmpeg -i p5.dvhe.mp4 -i srt.srt -map 0:1 -map 1 -c copy -c:s mov_text -metadata:s language=eng audio_sub.mp4
//mov_text is the only sub codec for Apple's native player. Maybe others can be recognized by PLEX.
//language field on both audio and sub are important for sub to default show up.
}

3. mp4box -add dv.hevc -add audio_sub.mp4 -new p5.dvh1.mp4
//mp4box change dvhe to dvh1 by default while preserving DV RPU data.
//note change 'dvhe' to 'dvh1' by only using hex editor will result in problem on iOS playback. GitHub - rixtox/mp4dovi will lead to black screen on iPad pro 2017.

Separately, I’m having a Dolby Vision issue with an MKV container, but I’ve posted about that in another thread. Thanks for the help!

1 Like

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.