[Feature Request] Disable encoding (raw video transfer)
- Vorherrschende Sprache
- Rust
- Sterne
- 7.9k
- Forks
- 708
- Ø Merge
- 3 T. 23 Std.
- Gemergte PRs (30 T.)
- 11
Beschreibung
I'm wondering if adding a feature to disable video encoding entirely would be feasible?
This might sound silly at first but there is a good reason why I would like to do such a thing.
Currently I am using ALVR to connect to my Quest 3 via port forwarding using ADB.
I have determined that this is a USB 3.2 connection and in experimental testing using iperf I was able to achieve data transfer rates of up to 20.8Gbits/s before the ADB connection broke down due to network congestion.
Unfortunately tuning the compression settings to target a bitrate that high dosent seem to work, at least nvenc fails at this task.
High bandwith targets also seem to come with a significant hit in latency, anything above 300Mbits/s adds at minimum 20ms of latency.
I propose to add an option that would disable encoding entirely. This could possibly get rid of any encoding and decoding latency in the system while offering higher visual fidelity.
A quick calculation can confirm that such datarates are feasible:
`2 (number of screens) × 2064 × 2208p (quest resolution) × 120Hz (refresh rate) × 12bpp (bytes per pixel at 8 bit color) = 13.12Gbits/s`
(This could possibly be reduced using chroma subsampling or by lowering the refresh rate)
I believe that adding this feature would not be very complex, and that the following changes are needed:
- Adding a new `EncodePipelineDummy` (or other name) (in `alvr/server/cpp/platform/linux`) which copies the vulkan image on the GPU into a CPU buffer
- Adding a new option to disable encoding in `Settings` (in `alvr/server/cpp/alvr_server/Settings.h`)
- Adding a new UI element to allow the user to toggle the disable encoding option
- Adding a new client decoder for raw video data (possibly in `alvr/client_core/src/platform/android/decoder.rs`)
Id love to contribute to make this a feature. I'm not confident to write any rust code, but I would like to contribute the new encoding pipeline if possible.
Beitragsleitfaden
Bewertung
Dieses Issue wurde noch nicht bewertet.