Stream broken
Environment
- *OS:Windows 10,11
- *Scrcpy version:3.1,3.2
- *Installation method:Windows release
- *Device model:Meta Quest 3
- *Android version:14
After updating the Meta Quest 3 firmware to version 76, the video casting functionality broke. When using the --crop option, the video feed flickers with a black screen several times per second. Here are the full scrcpy settings I am using: -e --no-audio --max-fps=30 --video-buffer=25 --crop=1778:1039:2200:549 --video-encoder=c2.qti.avc.encoder
We are experiencing the same Issue after Meta Quest 3 firmware to version 76
It seems that there is a screen flickering issue when highlighting the Meta UI using a controller within VR. There’s no problem when highlighting the horizontally long shortcut UI, but once a detailed UI is opened through that shortcut and a button in the detailed UI is highlighted, the screen flickering persists.
If the Meta UI is turned off, or even if it's on but no button highlight actions are taken, the flickering doesn’t seem to occur. When the screen flickers, we usually resolve it by turning off the Meta UI and closing scrcpy, then restarting scrcpy after 5 to 10 seconds.
There’s no inconvenience when scrcpy is launched after the app is fully started and there's no need to access the Meta UI. However, it becomes problematic when returning to the home screen, switching to another app, or viewing the Meta UI through the universal button—as the screen flickering reoccurs each time the Meta UI is accessed. We suspect that Meta has updated their system in a way that affects screen capture. (There were no issues up to VR software version 74, but screen flickering started occurring from version 76.)
If just use scrcpy command, its flicking when point to meta UIs. if use --crop ,its always flickering .
For me the same. Meta quest 3s doent work from the last firmware with scrcpy ... only both eyes separately. Any suggestion ?
I attempted to resolve the issue by modifying the ScreenCapture.java file within the scrcpy-server.
I observed that the length of the displays array changes when pointing to the Meta UI controller or toggling the Meta UI on or off. I believe this fluctuation triggers screen flickering.
To address this, I implemented a function that checks for changes in the number of displays at intervals of 2–3 seconds. When a change is detected, it is treated as a UI-related event, and CaptureReset.reset() is triggered to allow ScreenCapture to restart. This approach ensures that scrcpy can reinitialize capture even for displays that may have been missed.
Additionally, I noticed that flickering sometimes occurs right when the VR device is first connected—even in its initial untouched state (i.e., before interacting with the Meta UI). To address this, I added a one-time reset call within the start routine of ScreenCapture.
While this method seemed to resolve the issue to some extent, I encountered problems with long-term stability. The current issues are as follows:
Improper release during display recreation
When reset is called repeatedly, the VR system begins to slow down. After approximately 40–50 resets, a memory overflow popup appears and the VR application forcefully shuts down. This is abnormal, and I suspect that either the display or a related component is not being properly released and remains in memory in an "orphaned" state.
Flickering still occurs occasionally even after an initial reset
Although adding the reset logic in the ScreenCapture.start() function generally resolves the issue, flickering still happens sporadically. This indicates that the current solution is not entirely reliable.
I am continuing to investigate these issues. However, based on monitoring the device status using tools like MQDH, I am also concerned that this might be a device-specific performance limitation. (So far, all of my testing has been done on the Meta Quest 2.)
Thank you for all your explanations. I am a beginner and I don't know the application well. I read that this issue might be caused by the new MetaQuest firmware. Can you confirm this for me?
For now, I can only see the two separate eyes — left and right — but not the combined stereoscopic result.
This was the only way to retrieve the video feed from the MetaQuest 3S wirelessly, including the passthrough.
I am using a MacBook Pro 16-inch (November 2023 model), equipped with an Apple M3 Max chip, 36 GB of unified memory, and running macOS Sequoia 15.3. It is fully configured for development and recognizes all the tools involved in this setup.
This posts are explaining it indepth as well: https://github.com/Genymobile/scrcpy/issues/5913#issuecomment-2904042236
@Vinchia you need to crop the stream, to one eye, but it will not change the bugs, see link above.