Basic information - How does HLS work
Before we help you with that, let's sum up how MovieStreamer HLS encodes the video (using recommendations from Apple):
- each encoding format is recorded into a folder
- every 10 seconds, we create a new video segment
- the playlist m3u8 references these segments
When is MovieStreamer HLS dropping encoders ?
We drop the highest encoder if the encoding takes more then real time to encode. To know when to drop, here is what we check:
- If one segment takes longer then real time to encode (more then the 10 seconds duration of the file), we log it (but we don't drop it), you should see something like this:
"Warning: segment 1 of Broadband High took 15.55 seconds to be encoded"
- Then if the next segment takes again more then 10 seconds to encode, we log it but also this time we drop the highest output format, and log that information:
2013-08-28 13:29:42 Wednesday 2013-08-28 13:29:42: Too much CPU use, dropping encoder Broadband High
- then we continue the encoding and if it still takes more then 10 seconds to encode the next segment, we will drop one more encoder, etc.
- note that it must be 2 subsequent segments that take more then real time to encode. If just one segment takes longer, we will continue encoding.
- note also that when an output is dropped, it shows this attention mark in the user interface, and if you "hover" your mouse over this sign, it will show you when and why the format was dropped.
In Mountain Lion and later, the main cause (and only known) is that the CPU of your computer could not handle the encoding of those formats in real time. It can either be a constant issue, or a temporary issue (your computer was busy doing something else). You may want to try to choose lower output formats and see if your computer can sustain the encoding.
In the Lion version of the application, as it is a 32-bit application (unlike the Mountain Lion version which is 64 bit), the memory allocation is limited to 4GB per application, and if you select too many output formats, you can go over that memory allocation.