video-dev / hls.js

HLS.js is a JavaScript library that plays HLS in browsers with support for MSE.
https://hlsjs.video-dev.org/demo
Other
14.41k stars 2.55k forks source link

Dolby D+ not supported in TransportStream #6499

Open StephenBurgos opened 2 weeks ago

StephenBurgos commented 2 weeks ago

What do you want to do with Hls.js?

I'm trying to play this playlist using Hls.js, but the demo page won't play the playlist. https://ott.dolby.com/OnDelKits/DDP/Dolby_Digital_Plus_Online_Delivery_Kit_v1.4.1/Test_Signals/muxed_streams/HLS/Manifest_v3/ChID_voices_1280x720p_2997fps_h264_6ch_256kbps_ddp.m3u8

I'm not sure why?

What have you tried so far?

I have tried playing the URL directly in Safari and it plays out fine with audio and video. I have tried playing the URL on the hls.js demo page (in the same Safari browser) with version 1.5.11 and it produces multiple Parsing error:Failed to find demuxer by probing fragment data error messages.

robwalch commented 2 weeks ago

I get [warn] >"parsing error: Unsupported EC-3 in M2TS found". HLS.js does not support Dolby Digital Plus in MPEG-TS. If you want to play ec3 audio with HLS.js, deliver it via fragmented-mp4.

avelad commented 2 weeks ago

@robwalch Shaka Player supports it, if you want you can use its implementation to do the same in hls.js. (I implemented this transmuxer, so I give permission for you to copy it).

robwalch commented 2 weeks ago

Thanks @avelad, 👏

We've accepted contributions for HEVC in MPEG-TS and would give EC-3 in MPEG-TS the same consideration and support. I have no plans to directly contribute additional support for formats in MPEG-TS. You are welcome to file a PR.