Replies: 15 comments
-
Thanks for the great info. This is a great report that will help everyone. I will also refer to this report when prioritizing my next task. |
Beta Was this translation helpful? Give feedback.
-
@getroot this is not just intended as report. I specifically ask for how you/others tend to use OME in production. How do you deliver video and what does give you the best results? |
Beta Was this translation helpful? Give feedback.
-
@basisbit I know this isn't just for reporting. I pinned this thread because I want many people to share ideas about the operation of OvenMediaEngine and OS and Network in this thread. I'll try to summarize my experience and comment soon. I hope that others will also share for all of us, even if it's not a special experience. |
Beta Was this translation helpful? Give feedback.
-
I have managed to get this wonderful system running and also managed to embed to my website the Player. |
Beta Was this translation helpful? Give feedback.
-
@natzakaria |
Beta Was this translation helpful? Give feedback.
-
Thank you for the clarification - been trying all day yesterday and this morning rtmp and VLC returned errors. The great feature is when clicking the gear icon - I can change the source from OME to select webrtc or HLS or even DASH - wonderful stuff |
Beta Was this translation helpful? Give feedback.
-
@natzakaria |
Beta Was this translation helpful? Give feedback.
-
Thank you.
OME just complete the puzzle.
Great work and thank you.
Will try sending srt and other protocols
…On Mon, Oct 25, 2021, 11:22 AM Jeheon Han ***@***.***> wrote:
@natzakaria <https://github.com/natzakaria>
Your product is very nice! I wish your project success.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#449 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/APQLUGDQJ2FGSUXIUIIB44TUITEOTANCNFSM5AYZUKJQ>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
Beta Was this translation helpful? Give feedback.
-
I recently provided technical support for a WebRTC-based live commerce service for mobile users. The highest number of concurrent viewers so far was 2000, and the video bitrates ranged from 4Mbps to 10Mbps (VBR). I used several Edges for this. Mobile networks really vary in performance depending on the user's environment. And even when users watch at home, the Wifi signal varies depending on their location, which causes very high packet loss. We weren't too concerned because we were serving live with WebRTC/TCP, but we noticed one thing was missing. TCP Congestion Control, which is set by default in Linux, is CUBIC. CUBIC is an algorithm for sizing TCP Window based on packet loss. That's why I found CUBIC not suitable for mobile environments. In a mobile environment where user speed is very high but packet loss is also high, CUBIC is a really bad choice. It exponentially slows down the network. Check out this well-made PPT. This really happened in my experiments as well. Even if there is only 0.1% packet loss, CUBIC significantly lowers Goodput to less than 10%. I followed basisbit's advice and chose the BBR made by Google. This is the algorithm applied to YouTube as well. To apply BBR to Linux, refer to the URL below. https://www.tecmint.com/increase-linux-server-internet-speed-with-tcp-bbr/ Finally I've heard that viewers have fewer complaints. Of course, if the viewer's network speed is really slow, they can't watch stream normally. This is because, unlike HLS, WebRTC instantaneously requires high bandwidth. Especially when transmitting in VBR. (I offered to serve a customer with CBR, but this was not possible due to the limitations of their encoder.) And here's one really important tip. https://bugzilla.kernel.org/show_bug.cgi?id=205933 This can make OME's sessions stuck or reduce performance. I haven't slept in 3 days to find this problem. |
Beta Was this translation helpful? Give feedback.
-
This is probably an issue that doesn't happen with VMs in the cloud these days. However, if you are using a bare metal device and are experiencing packet drops or delayed transmission, it is recommended to try TSO disable. Many NICs often cause problems when handling TSO, and it is not possible to pinpoint which one. Disable TSO and see if your problem is solved. https://www.ibm.com/docs/en/linux-on-systems?topic=offload-tcp-segmentation |
Beta Was this translation helpful? Give feedback.
-
We are updating the Troubleshooting documentation. In the meantime, we've updated some common issues we and other users have encountered, and we will continue to update them. https://airensoft.gitbook.io/ovenmediaengine/troubleshooting |
Beta Was this translation helpful? Give feedback.
-
a small update on this issue. In the past couple of months, OvenMediaEngine became quite resilient for video delivery. We tried higher bitrates up to 6Mb/s but there were quite a lot of cases where those streams were not reliable enough, even when switching to TCP and using BBR, although the users had for example Gigabit internet and were not using Wifi/WLAN. In most of those cases where we analyzed this in depth, it was caused by the internet connection being a DualStack Lite connection, and the CGNAT that they were going through for IPv4 were chronically congested. Apparently this is rather common for bigger ISPs like Vodafone, AT&T and especially also in Australia and Japan. (IPv6 supports in OME should eventually resolve this) Most of our events were using video embedded in pixel-art games, so a low resolution and low bitrate were no problem, and for the other events we did fallback to HLS-only delivery using OvenMediaEngine -> Nginx (for http 1.1) -> BunnyCDN -> webbrowser of the user, and thus also supported IPv6. |
Beta Was this translation helpful? Give feedback.
-
@basisbit I never expected that 6Mb/s stream delivery in DualStack Lite environment or CGNAT would not be stable even with TCP. If congestion of DualStack Lite or CGNAT is the cause of instability, it seems that OME's IPv6 support should be raised as a top priority. Thank you for sharing such valuable and important information. If you have any documents or links about the congestion of DualStack Lite or CGNAT, it would be very helpful to me if you could share them. |
Beta Was this translation helpful? Give feedback.
-
Simulcast or ABR might be also helpful in these cases (and others). Stream distribution over IPv6 also comes with some difficulties because some big transit providers even nowadays don't properly support IPv6, which further limits choice of data centers in certain regions. |
Beta Was this translation helpful? Give feedback.
-
IPv6 has been released. |
Beta Was this translation helpful? Give feedback.
-
Purpose of this issue
I want to get high quality video streaming working, with rather low latency and want to figure out a good generic configuration which works for a big audience / video streaming events with many concurrent listeners. That requires the video stream playback to be resilient and of high audio + video quality.
Approach to solve this issue
I'd like to learn about what others found to work best for various use cases, and also I want to do my own tests to collect reproducible data. Then i want to use that data to improve the documentation and thus help the OvenMediaEngine project.
What to test
What I learned so far
echo "bbr" > /proc/sys/net/ipv4/tcp_congestion_control
.provider.getState() === STATE_ERROR
, which completely stops playback.provider.getState() === STATE_ERROR
was reached - it is missing helpful debug output even when debug is set to true.Other details
Failed to unprotect SRTCP packet, err=9
for each of those packets even at high logging level like warn or error. This might be a problem regarding denial of service attacksBeta Was this translation helpful? Give feedback.
All reactions