Red5 / red5-server

Red5 Server core
Apache License 2.0
3.33k stars 982 forks source link

jsmpeg support #283

Open andryan opened 4 years ago

andryan commented 4 years ago

It would be nice if Red5 or its Pro version could support jsmpeg (https://jsmpeg.com/). I think this can be done/achieved with a Red5 webapp. Chinese CDN providers have video CDN services supporting jsmpeg and western CDN services have yet to follow or even take notice. It should be fairly easy to implement and latency-wise it's comparable to WebRTC with much less complexity.

mondain commented 4 years ago

While I can't promise anything as far as support, I will take a look at it.

mondain commented 4 years ago

@andryan I've started work on this feature over at https://github.com/Red5/native/tree/master/mpeg

andryan commented 4 years ago

Wow, nice! Thanks, Paul!!

On Sat, 15 Aug 2020 at 22.58 Paul Gregoire notifications@github.com wrote:

@andryan https://github.com/andryan I've started work on this feature over at https://github.com/Red5/native/blob/master/mpeg

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Red5/red5-server/issues/283#issuecomment-674415490, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAXEC35S2VC5WBKDOHKU5E3SA2WB5ANCNFSM4I4VYRAQ .

mondain commented 4 years ago

Making progress https://photos.app.goo.gl/G3xZJFFZiktKQSq37

andryan commented 4 years ago

Nice, can you stream a stopwatch to check the latency delay? I think it should be lower than 500ms with RTMP.

On Mon, Aug 24, 2020 at 4:59 AM Paul Gregoire notifications@github.com wrote:

Making progress https://photos.app.goo.gl/G3xZJFFZiktKQSq37

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Red5/red5-server/issues/283#issuecomment-678830051, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAXEC355GNCKOQGRRDCCN6LSCGGL3ANCNFSM4I4VYRAQ .

mondain commented 4 years ago

Its not quite at that point yet, still some slow processing / flow due to a bunch of debugging / logging. Latency is probably the last thing I'll check, but it should be fast as hell since this particular flow is pass-thru.

On Sun, Aug 23, 2020 at 11:52 PM andryan notifications@github.com wrote:

Nice, can you stream a stopwatch to check the latency delay? I think it should be lower than 500ms with RTMP.

On Mon, Aug 24, 2020 at 4:59 AM Paul Gregoire notifications@github.com wrote:

Making progress https://photos.app.goo.gl/G3xZJFFZiktKQSq37

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Red5/red5-server/issues/283#issuecomment-678830051, or unsubscribe < https://github.com/notifications/unsubscribe-auth/AAXEC355GNCKOQGRRDCCN6LSCGGL3ANCNFSM4I4VYRAQ

.

— You are receiving this because you were assigned. Reply to this email directly, view it on GitHub https://github.com/Red5/red5-server/issues/283#issuecomment-678941606, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAD4UXI4UG36FEDLM4QKWPTSCIE3NANCNFSM4I4VYRAQ .

-- https://about.me/mondain?promo=email_sig&utm_source=product&utm_medium=email_sig&utm_campaign=edit_panel&utm_content=thumb Paul Gregoire about.me/mondain https://about.me/mondain?promo=email_sig&utm_source=product&utm_medium=email_sig&utm_campaign=edit_panel&utm_content=thumb

mondain commented 2 years ago

@andryan I'll be releasing my mpeg streaming plugin in the next couple of days over on https://github.com/mondain/red5-plugin-releases keep an eye out.

mondain commented 2 years ago

One misconception in your original statement: It should be fairly easy to implement and latency-wise it's comparable to WebRTC with much less complexity. There is complexity due to the ingest being either h264+aac or h264+opus and the expected playback of mp1video and mp2audio in jsmpeg. Transcoding is required, unless you can ingest mpeg1/2 content.

andryan commented 2 years ago

Hi Paul. Apologies for that. Yes, it needs to ingest MPEG1/2, which in my case I am able to push MPEG1/2 streams with my setup/encoders. The sample nodejs server they provide only acts like a repeater with no flow control, etc. Once again, thanks for making this happen!

mondain commented 2 years ago

MPEG1/2 ingest isnt turned on yet, but any other ingest getting into the server is supported; this version transcodes from H264/AAC https://github.com/mondain/red5-plugin-releases/releases/tag/mpeg2-plugin-1.0.1