Red5 / red5-hls-plugin

HLS support as a plugin for Red5
Apache License 2.0
80 stars 51 forks source link

hls-plugin does not pick up interrupted stream #16

Open zwerfkat opened 9 years ago

zwerfkat commented 9 years ago

To test the hls-plugin, I use ffmpeg to generate an rtmp stream and the plugin starts to generate m3u8/ts files. When I quit ffmpeg and restart it, the rtmp stream is picked up again by red5 server but the hls-plugin does not continue anymore. That means when there is a network interruption, the hls generation will stop and does not continue. Or in other words, it doesn't seem to be possible to restart an already used hls stream.

Andy--S commented 9 years ago

On 6/15/2015 10:15 AM, zwerfkat wrote:

To test the hls-plugin, I use ffmpeg to generate an rtmp stream and the plugin starts to generate m3u8/ts files. When I quit ffmpeg and restart it, the rtmp stream is picked up again by red5 server but the hls-plugin does not continue anymore. That means when there is a network interruption, the hls generation will stop and does not continue. Or in other words, it doesn't seem to be possible to restart an already used hls stream.

— Reply to this email directly or view it on GitHub https://github.com/Red5/red5-hls-plugin/issues/16.

could it be related to timestamps?

do an experiment.

Repeat the steps. After 20 seconds stop ffmpeg for 10 seconds, and restart the broadcast.

get your subscriber on in the first segment and watch for the expected pause.

10 to 20 seconds after the rebroadcast, do you observe the stream resume with your player?

If the answer is no, can you then refresh the subscriber/player and see the stream resume?

zwerfkat commented 9 years ago

Hi Andy, such an experiment doesn't make sense, since I directly look into the directory where the segments are stored. Here I can see they are not continued after a small break in the stream. Although theoretically reading the m3u8 file by a client could (but shouldn't) restart the hls plugin. So I did your experiment anyway but the result is as expected: no new ts segments are generated, the client simply stops playing where the stream was paused and does not resume, also not after a refresh. Also, the m3u8 file is not updated anymore after the break: the hls-plugin seams to be completely stopped with respect to the interrupted stream. Only when I use a new stream name it is up and running again.

By the way, there are some differences in the example its red5-web.xml/web.xml files compared to the readme.txt file. Like queueSleepTime and startStreamOnRequest are not present in the example. But it looks like these properties are not being used at all in the plugin and/or red5 itself (searched for them in the git repository).