AirenSoft / OvenMediaEngine

OvenMediaEngine (OME) is a Sub-Second Latency Live Streaming Server with Large-Scale and High-Definition. #WebRTC #LLHLS
https://airensoft.com/ome.html
GNU Affero General Public License v3.0
2.55k stars 1.06k forks source link

Low-Latency MPEG-DASH streaming (Chunked CMAF) #463

Closed jplogos closed 2 years ago

jplogos commented 3 years ago

Describe the bug I am trying to do CMAL ULL (chunked encoding) with ovenmediaengine (OvenMediaEngine-0.12.1)

  1. Sent RTMP input to the OME.
  2. Streaming the below LL-DASH URL with DASH Player

URL: http://myip:80/app/vxstream/manifest_ll.mpd

  1. I dont see any chunked encoding output as i see form pcap trace. I see "contnet-length" in the HTTP response from OME.
  2. As per CTE (chunked Transfer Encoding) we should not see content-lenght and segments should be chunked and delivered.

To Reproduce

Expected behavior Expecting chunked tranfer in the pcap.

Logs Please upload the entire OvenMediaEngine.log. You may delete important personal information.

[2021-08-06 03:13:18.567] W [AppWorker:3006553] LLDASH | cmaf_stream_server.cpp:149 | Failed to send the chunked data for [#default#app/vxstream, 72_video_ll.m4s] to <ClientSocket: 0x7f316809d3a0, #116, Connected, TCP, Nonblocking, 10.93.9.147:64402> (17788 bytes) [2021-08-06 03:13:18.567] W [AppWorker:3006553] LLDASH | cmaf_stream_server.cpp:149 | Failed to send the chunked data for [#default#app/vxstream, 72_video_ll.m4s] to <ClientSocket: 0x7f3168062d50, #117, Connected, TCP, Nonblocking, 10.93.9.147:64403> (17788 bytes) [2021-08-06 03:13:18.567] W [AppWorker:3006553] LLDASH | cmaf_stream_server.cpp:149 | Failed to send the chunked data for [#default#app/vxstream, 72_video_ll.m4s] to <ClientSocket: 0x7f316806d9a0, #118, Connected, TCP, Nonblocking, 10.93.9.147:64404> (17788 bytes) [2021-08-06 03:13:18.567] W [AppWorker:3006553] LLDASH | cmaf_stream_server.cpp:149 | Failed to send the chunked data for [#default#app/vxstream, 72_video_ll.m4s] to <ClientSocket: 0x7f316809aa40, #119, Connected, TCP, Nonblocking, 10.93.9.147:64405> (17788 bytes) [2021-08-06 03:13:18.567] W [AppWorker:3006553] LLDASH | cmaf_stream_server.cpp:149 | Failed to send the chunked data for [#default#app/vxstream, 72_video_ll.m4s] to <ClientSocket: 0x7f31680b9080, #120, Connected, TCP, Nonblocking, 10.93.9.147:64406> (17788 bytes) [2021-08-06 03:13:18.567] W [AppWorker:3006553] LLDASH | cmaf_stream_server.cpp:149 | Failed to send the chunked data for [#default#app/vxstream, 72_video_ll.m4s] to <ClientSocket: 0x7f3168077ad0, #121, Connected, TCP, Nonblocking, 10.93.9.147:64407> (17788 bytes) [2021-08-06 03:13:18.567] W [AppWorker:3006553] LLDASH | cmaf_stream_server.cpp:149 | Failed to send the chunked data for [#default#app/vxstream, 72_video_ll.m4s] to <ClientSocket: 0x7f316809a750, #122, Connected, TCP, Nonblocking, 10.93.9.147:64408> (17788 bytes) [2021-08-06 03:13:18.567] W [AppWorker:3006553] LLDASH | cmaf_stream_server.cpp:149 | Failed to send the chunked data for [#default#app/vxstream, 72_video_ll.m4s] to <ClientSocket: 0x7f3168075a00, #123, Connected, TCP, Nonblocking, 10.93.9.147:64409> (17788 bytes)

Server (please complete the following information):

Player (please complete the following information): https://reference.dashif.org/dash.js/nightly/samples/dash-if-reference-player/index.html

Additional context Add any other context about the problem here.

Thank you.

getroot commented 3 years ago

Did you turn on the Low Latency Mode option in the DASH Reference Player?

Alternatively you can test with Enable Low Latency MPEG DASH on http://demo.ovenplayer.com/.

danrossi commented 3 years ago

I'm trying to play LL Dash test via a Docker image. I've only managed to get HLS working so far. RTMP -> webrtc not working either. I'm RTMP publishing to local docker then trying to play back LL Dash and I get the following errors. The stream partly plays but mostly 404 errors on fragments.

http://localhost:8080/app/stream/manifest_ll.mpd

[2021-08-06 13:37:47.417] W [SegWorker:59] HTTPPublisher | segment_publisher.cpp:169 | Could not find a segment for LLDASH Publisher [#default#app/stream, 29_video_ll.m4s]

[2021-08-06 13:37:47.539] W [SegWorker:56] HTTPPublisher | segment_publisher.cpp:169 | Could not find a segment for LLDASH Publisher [#default#app/stream, 29_video_ll.m4s]
basisbit commented 3 years ago

I'd suggest not spending any time of LL-DASH right now. It is not usable with OME unless you are very close to the server, use a certain ll-dash player library version and use chrome. See https://github.com/AirenSoft/OvenMediaEngine/issues/268 and https://github.com/AirenSoft/OvenMediaEngine/issues/279 .

If you want low latency playback, I'd suggest using WebRTC over UDP based playback using OvenPlayer with Fallback to WebRTC over TCP, and if that also fails, fallback to HLS.

mpisat commented 3 years ago

LL-DASH works if latency is low. My tests work fine with 40ms latency with 2 seconds. It also works with 1 second latency but is not perfect. When I test it with > 200 ms latency, then even 2 seconds latency doesn't help.

basisbit commented 3 years ago

LL-DASH works if latency is low.

only in chrome. see above mentioned issues.

jplogos commented 3 years ago

Did you turn on the Low Latency Mode option in the DASH Reference Player?

Alternatively you can test with Enable Low Latency MPEG DASH on http://demo.ovenplayer.com/.

Hi @getroot I have used http://demo.ovenplayer.com/ player and able to see chunked transfer from OME.

Thank you.

danrossi commented 3 years ago

I just wanted to test this feature. And it was failing subscribing from a local Docker image. Same machine. RTMP publish is ok as HLS works. I am having major subscribe problems with this server either custom built or Docker. No idea why. WebRTC publish fails. WebRTC subscribe from RTMP fails.

getroot commented 2 years ago

We're sorry, but with the release of LLHLS, we have decided to no longer update LLDASH. Because LLHLS has better performance and compatibility, we decided it was a better decision for everyone to focus more of our energy on it.

Instead, we will continue to focus more on LLHLS and WebRTC. Thanks for your contribution.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.