Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stream using WebRTC or WHIP involved in persistent live channel crashes OME #1724

Open
Manfred opened this issue Oct 17, 2024 · 0 comments
Open
Assignees
Labels
investigating Being checked

Comments

@Manfred
Copy link

Manfred commented Oct 17, 2024

Describe the bug

When using a persistent live channel in OME the server will crash when you start streaming through WebRTC or WHIP.

To Reproduce

Setup the Server.xml as explained in this comment, meaning: with scheduled channels enabled. The example in the attached Server.xml uses slightly different ports and media directory, but the concept is exactly the same.

Then use something like this as the scheduled channel:

<?xml version="1.0"?>
<Schedule>
        <Stream>
                <Name>stream</Name>
                <BypassTranscoder>false</BypassTranscoder>
                <VideoTrack>true</VideoTrack>
                <AudioTrack>true</AudioTrack>
        </Stream>

        <FallbackProgram>
                <Item url="file://wait.mp4" start="0" duration="-1" />
        </FallbackProgram>

        <Program name="live" scheduled="2000-01-01T00:00:00.000+09" repeat="true">
                <Item url="stream://default/app/live" start="0" duration="-1" />
        </Program>
</Schedule>

It doesn't matter if you create the schedule channel first or after starting the live stream, but let's assume you have started the server.

Next connect to http:/127.0.0.1:3333/app/live?direction=whip with OBS, or start a WebRTC stream using the demo.

This will crash the server with signal 11 as shown in attached logs.

[2024-10-17 09:21:07.092] I [Scheduled:66] Provider | stream.cpp:567  | #default#app/stream(100) has been updated stream
[2024-10-17 09:21:07.092] I [Scheduled:66] Provider | stream.cpp:568  | 
[Stream Info]
id(100), msid(17), output(stream), SourceType(Scheduled), RepresentationType(Source), Created Time (Thu Oct 17 09:18:35 2024) UUID(b1bc92fc-755c-4795-a531-09c97dddaf3c/default/#default#app/stream/i)

	Video Track #0: Public Name(Video_0) Variant Name(Video) Bitrate(1.49Mb) Codec(1,H264,default:0) BSF(H264_RTP_RFC_6184) Resolution(1280x720) Framerate(30.82) KeyInterval(234/frame) SkipFrames(-1) BFrames(0) timebase(1/90000)
	Audio Track #1: Public Name(Audio_1) Variant Name(Audio) Bitrate(1.20Kb) Codec(8,OPUS,default) BSF(OPUS_RTP_RFC_7587) Samplerate(48.0K) Format(fltp, 32) Channel(stereo, 2) timebase(1/48000)
	Data  Track #2: Public Name() Variant Name(Data) Codec(0,Unknown,none) BSF(ID3v2) timebase(1/1000)
[2024-10-17 09:21:07.109] C [Scheduled:66] OvenMediaEngine | signals.cpp:148  | OME v0.17.1 ((From archive)) received signal 11 (SIGSEGV), interrupt.

In my experiments I tried a VPS, and both ovenmediaengine:dev and ovenmediaengine:latest running in a container on macOS.

Expected behavior

I expect the live stream to switch its video to the connected steam after wait.mp4 finishes playing.

Logs

See attachments.

Server (please complete the following information):

  • Debian GNU/Linux 12 (bookworm) / Docker on macOS 15.0.1
  • OvenMediaEngine Version: all recent versions 0.17.1 and dev

Player (please complete the following information):

  • Doesn't require a player to be connected

Files

ovenmediaengine.log
Server.xml.txt
stream.sch.txt
ome.sh.txt

@getroot getroot self-assigned this Oct 21, 2024
@getroot getroot added the investigating Being checked label Oct 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
investigating Being checked
Projects
None yet
Development

No branches or pull requests

2 participants