Qizot
SMSoftware Mansion
•Created by kurmetaubanov on 4/3/2024 in #membrane-help
LL-HLS broadcasting
Also another note, Safari won't tell you anything why exactly the stream is not playable, no descriptive error. The best pick is to use a native iPhone app integrating their AVPlayer and try to capture the errors it produces and printing them out.
9 replies
SMSoftware Mansion
•Created by kurmetaubanov on 4/3/2024 in #membrane-help
LL-HLS broadcasting
Overall, the hls.js is very forgiving and will take almost anything you throw at it. On the other hand Apple's implementation is strongly relying on the specification, it only takes a single MUST mismatch from a spec and the stream becomes unplayable.
You can look at this set of apple's tools: https://developer.apple.com/documentation/http-live-streaming/using-apple-s-http-live-streaming-hls-tools
And look for
mediastreamvalidator
. It will throw tons of errors at you and it has the right to do so.
To give you an example: WebRTC doesn't force you to produce keyframes at regular intervals (where for other methods of streaming you are able to set constant 2 second intervals), if you for instance fail to match expected segment duration (within a small error margin) the iPhones player refuses to play it.9 replies
SMSoftware Mansion
•Created by kurmetaubanov on 4/3/2024 in #membrane-help
LL-HLS broadcasting
I have vast experience with LL-HLS for iphones and I have to say that working around them is a pain in the ass...
9 replies
SMSoftware Mansion
•Created by spscream on 3/11/2024 in #membrane-help
unifex seg fault on handle_destroy_state
glad it works 🙂
8 replies
SMSoftware Mansion
•Created by spscream on 3/11/2024 in #membrane-help
unifex seg fault on handle_destroy_state
Operating with state should have the following steps:
1.
unifex_alloc_state
to allocate a state
2. unifex_release_state
in the same initialization function just before returning from the init function to ensure the state gets released when the last elixir's reference vanishes
3. do any internal cleanup inside of handle_destroy_state
, you don't have to release the unifex state inside of the callback, just cleanup after the g7228 replies
SMSoftware Mansion
•Created by spscream on 3/11/2024 in #membrane-help
unifex seg fault on handle_destroy_state
Are you sure that you have initialized the state properly (assinging a NULL on initialization or making sure that the state gets initialized before being freed)?
8 replies
SMSoftware Mansion
•Created by spscream on 3/7/2024 in #membrane-help
toilet capacity of outbound_rtx_controller
Could it be that you get a burst of packets at the beginning and then it behaves fine?
9 replies
SMSoftware Mansion
•Created by spscream on 3/5/2024 in #membrane-help
h264 encoder problems
zerolatency mode basically removes B-frames which should not be used for rtp/webrtc stuff (b-frames can have pts going back in time)
15 replies
SMSoftware Mansion
•Created by Al on 12/28/2023 in #membrane-help
HTTPAdaptiveStream issue with hls.js
video.js is using hls.js under the hood as the backend controlling the HLS stream
4 replies