Install Jellyfin Server on your PC and set up your Movie Library
Then, install the Jellyfin android app and connect to the server (or use the web UI)
click the ... next to the movie you want to watch in 3D and click "Copy Stream URL"
then, open nrealDemo (will rename it soon) and paste the URL into the Input field (Click the Globe Icon, then the SMALL play icon)
BOOM you're streaming 3D video from your computer
Known Issues:
NOTE: you must reimport the following packages (i'll figure out how to distrubte binaries outside of git later)
i was having a hard time getting it to build in Unity directly,
i ended up having to Export it to the nested Android folder
each time i run "Export" i have to then delete any changes that unity makes to the manifests
from there i open it in android studio and perform the build.
it's kind of a pain, i just haven't been able to figure out how to solve building it directly in unity yet.
The main scene is "Assets/JakeDowns/Scenes/MVP_002 - SBS Test.unity"
11/29/22
Found VLC Unity Plugin Project. Opting to use this instead of MPV
Bonus Goal: how thin of a unity layer can we get?
really, there's so many helpful things in the NRSDK, it kind of makes sense to just use Unity. I don't really want to deal with the custom glue code and setting up Activities and Android Layout Views for the Phone vs the Virtual display. It would be fun at some point to see if I could get a Unity-less or almost-Unity-less demo set up, but someone will probably beat me to that.
Q: why make a video player if Nreal is releasing an official one soon?
A: I'm mostly doing this for fun / dipping my toes into Android & Unity development and publishing. Seemed like a nice, straight-forward path to start with. Before I venture off into more exploratory areas.
[x] get VLC unity plugin loading
[x] Test MKV support
[x] Set up shader to render half of sbs output to one eye, and the other half to the other eye
[x] Add on-phone file picker moment for choosing a local file to play
[x] basic playback controls
[x] basic tracking mode-switching
[x] set up repo
[x] import unity base project
[x] ~Proof-of-concept get mpv rendering to a surface in Unity (Base off of NRSDK\Demos\RGBCamera-Capture.unity (it has an example Unity Video player surface)~ Did it using VLC for Unity plugin instead
[x] mock up virtual controller with an "input lock" toggle that requies a double-tap to bring the controls back. so you can put phone in pocket while viewing
[x] add basic controls: stop, pause, play, seek, volume, source url input
[x] Compare MPV and VLC codec support, maybe it makes more sense to base this on VLC Android going with VLC
[x] add control to toggle SBS and over-under video format playback
[ ] detect and account for half-sbs vs full-sbs
(nice to haves / feature parity)
Player UI
current timestamp, total length
seek bar
subtitles toggle
audio track switcher
play/pause button
switch between HW and SW decoder
playback speed toggle
open external audio...
open external subtitle...
playlist
advanced playback controls
Settings > General
Settings > Video
Settings > UI
Settings > Touch Gestures
Settings > Developer
Settings > Advanced