shaka-project / shaka-player-embedded

Shaka Player in a C++ Framework
Apache License 2.0
239 stars 62 forks source link

AppleTV type: A1625 not able to play H265 with Fairplay DRM stream(DRM is Verimatrix) #249

Open tongwu460 opened 1 week ago

tongwu460 commented 1 week ago

Basic Information Please provide a descriptive title for your feedback: AppleTV type: A1625 not able to play H265 with Fairplay DRM stream(DRM is Verimatrix) Which area are you seeing an issue with? TV app/Apple TV+ What type of feedback are you reporting? Incorrect/Unexpected Behavior Details Is this feedback specific to Apple TV+ content? Yes Description Please describe the issue and what steps we can take to reproduce it: When A1625 play H265 DRM stream, directly show error:Error PLB320 An error has occurred while trying to play this content (Manifest or stream is corrupted or invalid) Same stream can play in A1842 and IOS version is the same.

Manifest:

EXTM3U

EXT-X-VERSION:6

EXT-X-SESSION-KEY:METHOD=SAMPLE-AES,URI="skd://4aa4aaf0fdf8b234a456b8c663572a23",KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1"

EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="mp4a.40.2",LANGUAGE="ara",NAME="ara",AUTOSELECT=YES,DEFAULT=NO,CHANNELS="2",URI="audio_ara_mp4a.40_2000-PolicyMode_2_hls6_6_fp_vmxmultidrm_ott_ooredoo_saes_iso.m3u8?jitxpolicy=PolicyMode_Content_fmp4_CA_6s&pbf=1_2_4_3056475013"

EXT-X-STREAM-INF:BANDWIDTH=4213577,CODECS="hev1.1.6.L120.B0,mp4a.40.2",RESOLUTION=1920x1080,AUDIO="mp4a.40.2"

1-PolicyMode_2_hls6_6_fp_vmxmultidrm_ott_ooredoo_saes_iso.m3u8?jitxpolicy=PolicyMode_Content_fmp4_CA_6s&pbf=1_2_4_3056475013

EXT-X-STREAM-INF:BANDWIDTH=1646588,CODECS="hev1.1.6.L93.B0,mp4a.40.2",RESOLUTION=1280x720,AUDIO="mp4a.40.2"

2-PolicyMode_2_hls6_6_fp_vmxmultidrm_ott_ooredoo_saes_iso.m3u8?jitxpolicy=PolicyMode_Content_fmp4_CA_6s&pbf=1_2_4_3056475013

EXT-X-STREAM-INF:BANDWIDTH=883304,CODECS="hev1.1.6.L90.B0,mp4a.40.2",RESOLUTION=854x480,AUDIO="mp4a.40.2"

3-PolicyMode_2_hls6_6_fp_vmxmultidrm_ott_ooredoo_saes_iso.m3u8?jitxpolicy=PolicyMode_Content_fmp4_CA_6s&pbf=1_2_4_3056475013

EXT-X-STREAM-INF:BANDWIDTH=529542,CODECS="hev1.1.6.L63.B0,mp4a.40.2",RESOLUTION=640x360,AUDIO="mp4a.40.2"

4-PolicyMode_2_hls6_6_fp_vmxmultidrm_ott_ooredoo_saes_iso.m3u8?jitxpolicy=PolicyMode_Content_fmp4_CA_6s&pbf=1_2_4_3056475013

Attach the A1625 debug logs: https://docs.google.com/document/d/1wuCr9JsL9RFm7f3INpraWsInqdXaEVMq/edit?usp=sharing&ouid=115694401825562093408&rtpof=true&sd=true

Attach the Manifest: https://drive.google.com/file/d/1l4ofnrDUD1p1vCFTVRLnbso4Bpad2ML9/view?usp=sharing

When did the issue last occur? It's happening right now Please enter the time the issue started. 2024-06-24T13:12:09+03:00

tongwu460 commented 1 week ago

below is Appletv Debug logs & Manifest

Debug logs and Manifest.zip

tongwu460 commented 1 week ago

Error page & Device info page A16250Error-page Deviceinfo-picture

tongwu460 commented 1 week ago

@BucherTomas Do you know any expert in AVPlayer or Fairplay? Thanks.

BucherTomas commented 1 week ago

@tongwu460 No, I don't.

However, in your case I'd say that this older Apple TV model simply does not support HEVC + FairPlay combination. The attached log contains the error "CoreMediaErrorDomain error -12885 - unsupported crypt format.". Some time ago I was trying to solve a similar issue in Safari which shares a lot of the media processing pipeline with native AVPlayer. And I did not receive any usable feedback whether there is an actual line of devices that might fail while others would work, see https://bugs.webkit.org/show_bug.cgi?id=195460. I still believe that is the case.

Also make sure that your stream follows Apple's HLS authoring specification and avoid using "hev1" codec setup to be safe. See "1.10. You SHOULD use video formats in which the parameter sets are stored in the sample descriptions, rather than the samples. (That is, use 'avc1', 'hvc1', or 'dvh1' rather than 'avc3', 'hev1', or 'dvhe'.)" at https://developer.apple.com/documentation/http-live-streaming/hls-authoring-specification-for-apple-devices

tongwu460 commented 1 week ago

@BucherTomas Thanks, I will test and feedback.

tongwu460 commented 21 hours ago

@BucherTomas I have change the codecs to hvc1, still the same story...

EXTM3U

EXT-X-VERSION:7

EXT-X-SESSION-KEY:METHOD=SAMPLE-AES,URI="skd://ccafda14d3f889d1a49dcb81c77bd3ca",KEYFORMAT="com.apple.streamingkeydelivery",KEYFORMATVERSIONS="1"

EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="mp4a.40.2",LANGUAGE="ara",NAME="ara",AUTOSELECT=YES,DEFAULT=NO,CHANNELS="2",URI="audio_ara_mp4a.40_2-PolicyMode_2_hls7_2_fp_vmxmultidrm_ott_ooredoo_saes_cmaf_500.m3u8?jitxpolicy=PolicyMode_JITX_OutputHLS_Enc_Policy03&pbf=1_2_4_709781929"

EXT-X-MEDIA:TYPE=AUDIO,GROUP-ID="ac-3",LANGUAGE="DLB",NAME="DLB",AUTOSELECT=YES,DEFAULT=NO,CHANNELS="2",URI="audio_DLB_ac-3_2-PolicyMode_2_hls7_2_fp_vmxmultidrm_ott_ooredoo_saes_cmaf_500.m3u8?jitxpolicy=PolicyMode_JITX_OutputHLS_Enc_Policy03&pbf=1_2_4_709781929"

EXT-X-STREAM-INF:BANDWIDTH=5207818,FRAME-RATE=25.000,CODECS="hvc1.1.6.L120.B0,mp4a.40.2",RESOLUTION=1920x1080,AUDIO="mp4a.40.2"

video_0-PolicyMode_2_hls7_2_fp_vmxmultidrm_ott_ooredoo_saes_cmaf_500.m3u8?jitxpolicy=PolicyMode_JITX_OutputHLS_Enc_Policy03&pbf=1_2_4_709781929

EXT-X-STREAM-INF:BANDWIDTH=5265777,FRAME-RATE=25.000,CODECS="hvc1.1.6.L120.B0,ac-3",RESOLUTION=1920x1080,AUDIO="ac-3"

video_0-PolicyMode_2_hls7_2_fp_vmxmultidrm_ott_ooredoo_saes_cmaf_500.m3u8?jitxpolicy=PolicyMode_JITX_OutputHLS_Enc_Policy03&pbf=1_2_4_709781929

BucherTomas commented 19 hours ago

@tongwu460 As mentioned previously, that particular device does not support the HEVC + FairPlay combination at all in my opinion, it will likely require just H.264 when using FairPlay.

The suggestion to change the codec to hevc1 configuration is just in line with Apple specification to make sure you avoid running into other issues on other, more capable Apple devices. It was not expected to make a difference on A1625.