Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The Max Speed of Lan Went Down After WWDC Played and Paused an Online Video #638

Open
owenzhao opened this issue Aug 15, 2020 · 10 comments
Open

Comments

@owenzhao
Copy link

  • Version of macOS
    10.15.6 (19G2021)

  • Version of the app
    7.1

  • What were you trying to do when the issue happened
    I have a Mac mini connected a router with ethernet (1000Mbps). An iMac 5K connected the router with WiFi(5G Wifi 5). Normally, the speed of downloading a file from Mac mini to iMac was around 90MB/s. However, if I played an online video and paused it by playing another local downloaded video in WWDC. The speed of downloading would turn to around 60MB/s. After I closed WWDC app entirely, the speed went back to normal.

Steps:

  1. open WWDC app.
  2. download a file from the Mac mini to iMac through Finder. the speed is normal.
  3. download a session video in WWDC.
  4. when the download ends, play another online video.
  5. pause the online video, it stops but is still caching.
  6. play the previous downloaded video and pause it too.
  7. switch back to the previous played online video, the caching is stopped.
  8. do step 2 again, the speed is narrowed.
  9. close WWDC app
  10. do step 2 again, the speed is normal.
  • Any particular hardware/software configuration you have that might be affecting the app
    iMac 5K 2014 late, Xiaomi AX3600 Router

wwdc max speed issue

As you can see from the screenshot, above the horizontal orange line are the narrowed speed graphs, below are the normal speed graphs.

@insidegui
Copy link
Owner

The app uses AVFoundations own streaming, which we don't have much control over. It is normal for streaming on a device to affect the overall internet speed to some extent. Not sure what to do with this issue 😅 Any ideas @allenhumphreys ?

@owenzhao
Copy link
Author

owenzhao commented Aug 17, 2020

The app uses AVFoundations own streaming, which we don't have much control over. It is normal for streaming on a device to affect the overall internet speed to some extent. Not sure what to do with this issue 😅 Any ideas @allenhumphreys ?

I can accept the QoS when the online video is playing or caching. However, in my example, the player played the local video and paused, also the caching was stopped, the QoS was still there. So I believed that was a bug.

Whenever the online video was stopped playing or caching, the QoS should stop as well. For me, there are below conditions:

  1. the online video playing is finished.
  2. the online video playing is paused and the caching is enough. (for example, youtube will caching about 40 seconds.)
  3. the online video caching is interrupted. a user chooses to play another local video, etc.

Also, the QoS should affect the bandwidth of internet, but the issue was on my local lan bandwidth.

@insidegui
Copy link
Owner

@owenzhao Would you be able to collect a sysdiagnose of your Mac right after reproducing the issue? I believe our best bet here is to submit it as a bug to Apple, since we're using their video framework.

@allenhumphreys
Copy link
Collaborator

@owenzhao when you’re streaming a video via WWDC, does the bandwidth usage show up in iStat?

@owenzhao
Copy link
Author

I downloaded the code from main branch and build the app with Xcode. I found something was incorrect from my previous posts.

First, there was no need to play an online video. Simply playing a local downloaded video by WWDC app would trigger this issue.

Second, I captured a url that WWDC played, which was "https://devstreaming-cdn.apple.com/videos/wwdc/2020/10190/3/C97B27EE-98C2-458D-B775-28D3951B09D8/master.m3u8". Then I played it by QuitTime Player, no lan speed issue. Then I created a simple project that contains a AVPlayerView with the url. There was no lan speed issue either.

I had a glance on the code of WWDC. Though AVPlayerView was also been used, but the main play UI was no base on AVKit but AVFoundation.

I will try another way to test if only using AVFoundation could cause this issue.

@owenzhao
Copy link
Author

I was using the AVPlayerLayer of AVFoundation. The result was the same. No lan speed loss. So now I am confused. If the issue was caused by AVFoundation or AVKit. None of them with a simple project with the same online url playing didn't trigger the issue.

I was thinking if I could reproduced the issue in a minimum project, I could file the bug to Apple directly.

@insidegui
Copy link
Owner

Hmm, this makes me wonder: do you have iCloud sync enabled in the app?

If so, does disabling it fix the issue?

That's because while playing a video (local or not) it will update the current progress within the video and send that data to CloudKit, which could somehow be causing the issue.

You can run the log command below to capture logs pertaining to sync, which could help us determine what's happening:

log stream --color none --level debug --style compact --predicate "process contains 'WWDC' AND category contains 'UserDataSyncEngine'" > ~/Desktop/WWDCSync.log

@owenzhao
Copy link
Author

log stream --color none --level debug --style compact --predicate "process contains 'WWDC' AND category contains 'UserDataSyncEngine'" > ~/Desktop/WWDCSync.log

I tried the above code in terminal and ran WWDC in Xcode, played a local downloaded video for a while and pause it. But it seamed nothing was recorded.

WWDCSync.log

Then I created a new normal user without login iCloud account. Login to that user. Built and ran WWDC. The issue was still there.

Is that possible that WWDC requests a higher priority when playing a video? As I noticed if I copied a file using NSFileManager, it was mush slower than the same operation using Finder.

@insidegui
Copy link
Owner

When you build and run from Xcode, the iCloud feature is not available because it requires special entitlements. So you'd have to run that test with the production build.

@owenzhao
Copy link
Author

When you build and run from Xcode, the iCloud feature is not available because it requires special entitlements. So you'd have to run that test with the production build.

So the iCloud was not the reason of the issue. The issue was still there without iCloud.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants