Skip to content

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

Open

Description

@owenzhao
  • 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.

Activity

  1. insidegui commented on Aug 17, 2020

    @insidegui
    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 ?

  2. owenzhao commented on Aug 17, 2020

    @owenzhao
    Author

    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.

  3. insidegui commented on Aug 18, 2020

    @insidegui
    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.

  4. allenhumphreys commented on Aug 18, 2020

    @allenhumphreys
    Collaborator

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

  5. owenzhao commented on Aug 21, 2020

    @owenzhao
    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.

  6. owenzhao commented on Aug 21, 2020

    @owenzhao
    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.

  7. insidegui commented on Aug 21, 2020

    @insidegui
    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

  8. owenzhao commented on Aug 21, 2020

    @owenzhao
    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.

  9. insidegui commented on Aug 22, 2020

    @insidegui
    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.

  10. owenzhao commented on Aug 22, 2020

    @owenzhao
    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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions