LLHLS Dump for VoD Service #1076
Replies: 30 comments
-
wow a great feature. Thank team AirenSoft! |
Beta Was this translation helpful? Give feedback.
-
@getroot Can this feature combine multiple VODs of a stream key multiple times. Currently using only the most recent VOD live stream |
Beta Was this translation helpful? Give feedback.
-
@NkInKaIgIe Do you mean merging videos? Or do you mean separating directories? |
Beta Was this translation helpful? Give feedback.
-
Hello, this feature is incredibly useful for us too! Working great at a technical level, but we cannot use it because re-streaming to the same endpoint keeps recreating the llhls.m3u8 as @NkInKaIgIe said. I tried the time macro from the FILE publisher but it didn't work. |
Beta Was this translation helpful? Give feedback.
-
@p4block I haven't implemented the time macro in LLHLS dump yet. I'll add it soon. |
Beta Was this translation helpful? Give feedback.
-
I found a strange quirk, it's only recording the first 24ish seconds of our test streams. Files sizes on disk match this and ovenplayer just stops. Happened with sample videos and an ffmpeg testsrc. Are we doing something wrong on our end? |
Beta Was this translation helpful? Give feedback.
-
@p4block Did you try to play VoD after the live stream completely ended? Or did you try to play VoD while the live stream was in progress? Have you tried refreshing the page that is playing VoD? The chunklist is constantly being updated. Of course, that can happen if you try to play in the middle of a live stream. Players load the chunklist once when playing VoD and do not automatically update it again. Because it is VoD. |
Beta Was this translation helpful? Give feedback.
-
@getroot I'm tring to play after the streaming ends, and it's not about the player itself, as the files on disk are actually that small. I tested with video files dumped from IP cameras and with this ffmpeg testsrc command.
These videos have quirky timestamps, but that wasn't an issue before with streaming or file output. Can test tomorrow with the Big Bunny movie or something. Logs in OME show nothing relevant, although I did not enable any kind of debug mode. |
Beta Was this translation helpful? Give feedback.
-
@p4block I need the chunklist_0_video_llhls.m3u8 file. Please upload that and does your llhls live play normal? |
Beta Was this translation helpful? Give feedback.
-
What is the advantage of this method for VODs vs recordings |
Beta Was this translation helpful? Give feedback.
-
@naanlizard LLHLS Dump can provide VoD-ABR because it dumps m3u8 and all track segments. Even while Live is in progress, you can immediately provide VoD with the files dumped up to that point. |
Beta Was this translation helpful? Give feedback.
-
Ah thank you, that is useful. Does Ovenplayer offer a seek bar? eg a page loads, the stream is live and by default the player loads the most recent video, but you can click the seek bar to return to the beginning of the stream or anywhere in the middle? So these files are just dumped to the disk as they are generated? No need to dump them at a point in time? |
Beta Was this translation helpful? Give feedback.
-
@getroot The test streams we've been using however only generate up to 20-something-ish seconds though and I can't figure out why, specially when it also bugs out with a camera stream we have saved. Those streams work fine for webrtc/llhls live playback though. I dumped the correct file now, from a 1.5 minute stream
The m3u8 just in case
It's definitely possible the test stream is not encoded properly, although it has always served us well, the command to generate it is in the previous comment. Very much open to suggestions on better ways to test streams aside from big_buck_bunny.mp4 😬 |
Beta Was this translation helpful? Give feedback.
-
@p4block |
Beta Was this translation helpful? Give feedback.
-
@getroot I added those params to the output of the encoder and it seems like it's working normally now, thanks a lot. For reference, our command is now this:
Now I have to edit a lot of ffmpeg commands around the company, but it's good to know you've been doing things wrong. |
Beta Was this translation helpful? Give feedback.
-
@naanlizard In fact, if you can afford to use a lot of memory now, you can enable Live DVR. (This should be improved by saving the old segments to a file and reading from the file for long live streams.) It's just not exposing the seek bar in OvenPlayer. Set the SegmentCount to 600 and play the stream from the hls.js demo page (https://hls-js.netlify.app/demo). Like Live DVR, you can watch past videos. Expose seek bar in OvenPlayer will be updated.(@SangwonOh ) |
Beta Was this translation helpful? Give feedback.
-
That is very exciting. We will try and test this ASAP, I will watch git but if you ping me when it is released, it will be even faster :) |
Beta Was this translation helpful? Give feedback.
-
Feature working great, really excited for what it brings to OME but without the date macro or another way to separate streams to the same endpoint I'm a bit stuck :( Hopefully gets released soon! |
Beta Was this translation helpful? Give feedback.
-
ah! This is a very simple task, but I've been so busy lately that I've forgotten about it. I just added a simple macro and committed. You can test it with the master branch. The following macros have been added.
Set it like this:
|
Beta Was this translation helpful? Give feedback.
-
Wow, thanks a lot! That was really quick. While testing I hit the "keyint too big bug" again with our real hardware cameras, found they have a 10s (250 frame) interval and that was enough for the LLHLS dump to only record 20s or so of stream. After changing it, seems to work great except for a minor quirk. the "ss" macro seems to create "3" instead of "03", making it difficult to make predictable file names. Is this intended? |
Beta Was this translation helpful? Give feedback.
-
Now the recording seems to happen automatically thanks to the wildcard |
Beta Was this translation helpful? Give feedback.
-
I guess I didn't quite understand this question. The wildcard in TargetStreamName is a feature that has been around since the beginning.
That part I developed without much concern. Which method do you think is best? |
Beta Was this translation helpful? Give feedback.
-
Sorry, let me rephrase. I wonder if the OME API to start/stop recording a stream (FILE output) currently controls the LLHLS dump. As for the time format, I tried to just copy the ISO 8601 date standard So around now for example would be:
But due to that behavior it is impossible(?) to generate proper ISO dates as it will generate as 20221121T13443 |
Beta Was this translation helpful? Give feedback.
-
@p4block |
Beta Was this translation helpful? Give feedback.
-
@p4block ${ISO8601} : output current time in ISO 8601 format |
Beta Was this translation helpful? Give feedback.
-
@p4block |
Beta Was this translation helpful? Give feedback.
-
Everything working great :) The warning on the OME logs about the too big keyframe has helped solve a few wrongly configured sources we had. The lack of API control of whether the VOD is generated or not is a bummer but we're working around it. Feature would be awesome though 😀 |
Beta Was this translation helpful? Give feedback.
-
LLHLS Dump can now be controlled by API. |
Beta Was this translation helpful? Give feedback.
-
Re-Transcoding is not required. Files can cat (as example ffmpeg concat) without any re-transcoding. |
Beta Was this translation helpful? Give feedback.
-
LLHLS Dump for VoD Service
Set
<Application><Publishers><LLHLS>
as follows.LLHLS Live will be dumped for VoD to the directory you configured. This allows you to provide VoD streaming with Apache or Nginx.
You can test it with the master branch, it will be released from 0.14.11.
Beta Was this translation helpful? Give feedback.
All reactions