/ Forums
New To The Forum? Click Here To Read The How To Guide. -- Developers Click Here.

VLCRiftPlayer 0.1.6 - alpha DK2 edition - Video Player

mramra Posts: 33
edited June 2015 in Showcase
VLCRiftPlayer
Oculus DK2 Video Player

Author: mra (aka Saxxon66)

Latest Version:

32bit

64bit

Version: 0.1.6
Date: 12/09/2014

Changes:

* Major performance improvements, no GPU decoding but very low cpu load (15 - 25%)
* 32 and 64 bit version, please use the 32 bit version with a 32 bit VLC and the 64 bit version with the 64 bit VLC only!!!
* Frametimes are now very low, stable and solid
* Based ion Oculus SDK 4_0_3, with Bugfixes, like state reset fix, ...
* Simple GUI, tap you HMD or shake your head to bring up the GUI. Works by looking at the GUI-Elements, give it a try. I would like to hear what you are thinking.
* Support added for Over/Under S3D (SBS is also supported), use NUMPAD_0 / F1 to toggle modes
* Happy Christmas and have fun ...


0.0.5 - 1st Alpha Release

* Removed dependency for D3DCompiler_47.dll. Shaders are now precompiled and included in the toolchain.
This should solve Win7 problems w/o the Win8.1 libs.



0.0.4 - 4th Pre-Alpha Release


* 1st version of Ambilight (not working for 3D SBS), F10 to enable/disable


0.0.3 - 3rd Pre-Alpha Release


* "Direct to the Rift" / "Direct HMD Access from Apps" mode is now supported. (Extended desktop is still supported)
* Audio Track Changing is now supported. Use F9 to change the audio track.
* Removed Direct Input
* Added simple Debug Gui in Debug Builds (not in public release builds)
* BUGFIX: Projection Matrix was wrong while turning + rotating head


0.0.2 - 2nd Pre-Alpha Release

* DK2 position tracking via camera (optional)
* Curved screen (default, change with F5 to flat screen)
* Adjustable radius of curved screen (F6 + F7)
* SBS rendering now handled by shader
* Release Build (0.0.1 was a debug build, dynamically linked with MSVCR100D.DLL) statically linked, so MSVCR100.DLL is not needed anymore.
* Key mapping changed
* BUGFIX: In SBS mode the eye switching was only not working for one eye.


0.0.1 - Initial version


Version Info: Pre-Alpha Release (no feature freeze)
No error handling, but works for me in extended display mode.

Description:

VLCRiftPlayer is a movie player for Oculus DK2 with S3D support (SBS).
Under the hood it uses VLC (http://www.videolan.org/vlc/) for movie playback.
So most everything VLC can play, this player can play also.

Inspired by the design of the OculusPlayer (special thx to dbaker), this is a DirectX 11 port.
Using the Oculus SDK 4.0.1 for distortion rendering and head tracking.

Install:

Copy the VLCRiftPlayer.exe to the VLC (32bit) base directory.
Make sure it is the ltest version of VLC.
Tested with vlc 2.1.5

Use:

- Configure your DK2 for Extended Desktop mode.
- Start the VLCRiftPlayer.exe in the VLC root directory (32bit).
- A dialog box will open.
- Choose a movie file.
- Take on the DK2.
- Press Return to center the view.
- Zoom the screen by using the mouse scroll wheel to get a comfortable view.
- If it is a 3D movie press F1 to enable SBS mode.
- If the image is not 3D try to change the images for each eye by pressing F2.
- The IPD of your current active Oculus profile (see Oculus Config Util) will be used. You can adjust the IPD by pressing F3 (-) or F4 (+).
- Enjoy!

Controls:

Stereo 3D:

NUMPAD_0 / F1: Enable/Disable SBS 3D movie (default on)
F2: Switch Images for eye
F3: IPD Correction-
F4: IPD Correction+

Screen:

F5: Curved screen/Flat Screen
F6: Radius of curved screen +
F7: Radius of curved screen -
F10: To enable/disable Ambilight

Player controls:

Play/Pause: Spacebar
F9: Change Audio Tracks

Right arrow: Jump 30 sec. forward
Left arrow: Jump 30 sec. forward
NUMPAD_9 Jump: 1 min. forward
NUMPAD_6 Jump: 3 min. forward
NUMPAD_3 Jump: 5 min. forward
NUMPAD_8 Jump: 1 min. back
NUMPAD_4 Jump: 3 min. back
NUMPAD_1 Jump: 5 min. back

Camera/Head:

Enter: Center headtracker/Position
Mouse wheel: Zoom in/out
WASD: Move camera up/down/left/right

Enjoy but use it at your own risk!
«13

Comments

  • semosesemose Posts: 3
    Awesome work! First Rift video player I've found that works with subtitles, since they're built into VLC. Clearly, building off the 13 years of solid VLC development is the best way to go, rather than starting from scratch. I did try to post a link to the missing MSVCR100D.DLL file, but my post was flagged as SPAM. You can find it by searching on DLL Dump [dot] com. I will make a few suggestions, though:

    I have a Logitech K810 keyboard without a numpad. Would love to be able to customize the controls. Not a big deal, used JoyToKey to map all the controls to my gamepad, which ends up being much easier.

    Video seems to be on a 2D plane rather than a 3D sphere. When you press WASD to move the camera, it just seems like the video gets further away rather than rotating, with me at the centre of a sphere. For example, if I press W, it looks like I'm on the ground looking up a screen projected high on a wall in front of me.

    Related to above, a key to centre my view where I am currently looking would be excellent.

    I prefer the flat screen, but I'm sure there will be people who want a curved screen, as well as the IMAX style dome.


    Awesome work for 0.0.1! A huge thanks for a Rift video player with subtitle support! Can't wait to try the next version.
  • DominiqueDominique Posts: 227
    Nexus 6
    It doesn't display in the correct 3d for me, It's like I am seeing dubble. hard to explain, it's not 2 seperated images, but as if they are wrongly overlapped.
  • drashdrash Posts: 2,796
    Trinity
    Very interested to try this because of the subtitle support!

    I get a missing DLL error for "libvlc.dll". I currently have VLC 2.0.5 installed, and I see that the newest version is 2.1.5? Do I need to update or is this unrelated?

    Running Windows 8.0 64-bit.
    TitansOfSpacePlus_CoverArt_VRLandscape5_60p.png
  • ShpinxisShpinxis Posts: 83
    Hiro Protagonist
    semose wrote:
    Awesome work! First Rift video player I've found that works with subtitles, since they're built into VLC. Clearly, building off the 13 years of solid VLC development is the best way to go, rather than starting from scratch. I did try to post a link to the missing MSVCR100D.DLL file, but my post was flagged as SPAM. You can find it by searching on DLL Dump [dot] com. I will make a few suggestions, though:

    I searched for the dll on that website and it gave me one without the "D" at the end. I tried putting that in the directory of VLC and it didn't work and the file already exists in my system32 folder. I reinstalled VLC and it still does not work.
  • Sweet player. It just works. That's all it needs to do for me.
  • mramra Posts: 33
    drash wrote:
    Very interested to try this because of the subtitle support!

    I get a missing DLL error for "libvlc.dll". I currently have VLC 2.0.5 installed, and I see that the newest version is 2.1.5? Do I need to update or is this unrelated?

    Running Windows 8.0 64-bit.

    This is the one I use:
    http://download.videolan.org/pub/videolan/vlc/2.1.5/win32/vlc-2.1.5-win32.zip

    Extract, copy the .exe and run from there.

    It is a Win32 app, so plz use the 32bit version of VLC.
  • mramra Posts: 33
    Thank you've tried my small program.
    semose wrote:
    Awesome work! First Rift video player I've found that works with subtitles, since they're built into VLC. Clearly, building off the 13 years of solid VLC development is the best way to go, rather than starting from scratch. I did try to post a link to the missing MSVCR100D.DLL file, but my post was flagged as SPAM. You can find it by searching on DLL Dump [dot] com. I will make a few suggestions, though:

    I have a Logitech K810 keyboard without a numpad. Would love to be able to customize the controls. Not a big deal, used JoyToKey to map all the controls to my gamepad, which ends up being much easier.

    Video seems to be on a 2D plane rather than a 3D sphere. When you press WASD to move the camera, it just seems like the video gets further away rather than rotating, with me at the centre of a sphere. For example, if I press W, it looks like I'm on the ground looking up a screen projected high on a wall in front of me.

    Related to above, a key to centre my view where I am currently looking would be excellent.

    I prefer the flat screen, but I'm sure there will be people who want a curved screen, as well as the IMAX style dome.


    Awesome work for 0.0.1! A huge thanks for a Rift video player with subtitle support! Can't wait to try the next version.

    Next version will static link MSVCR100D.DLL, or use an other lib. So no more need for a separate download.

    You are right I'm rendering on a flat 2D Plane. I will try some curved planes to see if it makes sense.

    WASD will move the camera and the look at position, so it should give you the opportunity to choose your seating position in the "cinema". Mouse scroll will bring you back and forth.

    Flexible keyboard controls are not on my list yet, but keep in mind this for future releases.
    Center key is Numpad 5.

    Next features:
    * curved projection plane
    * Ambilight
  • mramra Posts: 33
    Dominique wrote:
    It doesn't display in the correct 3d for me, It's like I am seeing dubble. hard to explain, it's not 2 seperated images, but as if they are wrongly overlapped.

    3D movie support is only SBS.
    Try to change the image for eye by pressing F1.
    Enable or disable SBS by pressing NUMPAD_0.
  • semosesemose Posts: 3
    Shpinxis wrote:
    semose wrote:
    Awesome work! First Rift video player I've found that works with subtitles, since they're built into VLC. Clearly, building off the 13 years of solid VLC development is the best way to go, rather than starting from scratch. I did try to post a link to the missing MSVCR100D.DLL file, but my post was flagged as SPAM. You can find it by searching on DLL Dump [dot] com. I will make a few suggestions, though:

    I searched for the dll on that website and it gave me one without the "D" at the end. I tried putting that in the directory of VLC and it didn't work and the file already exists in my system32 folder. I reinstalled VLC and it still does not work.

    You need the version with the D for sure. I got other errors when I used the non D version, worked right away when I got the right one. It's the first search result for me when I search DLL Hump.

    @mra Your "seat in a movie theatre" analogy makes perfect sense. I somehow missed the centering key in your control list, so with that, my "sphere" suggestion makes less sense. Will give it a try when I get home from work. One other suggestion: any chance of getting playlist support? If I create a playlist with normal VLC in any of the 4 formats, then open the playlist in VLCRiftPlayer, I just get a blank screen, no video, no audio.
  • InertioInertio Posts: 58
    Could you compile it in release mode, please? :)
    DK2 ordered on March 19, 2014 at 09:50 AM PDT status: DELIVERED and I scratched the lenses within the first hour, f*** me :D
  • mramra Posts: 33
    Inertio wrote:
    Could you compile it in release mode, please? :)

    Here you go.

    New version 0.0.2 is here (see updated 1st post) and it is a release build ;)

    Have fun!
  • KarutoKaruto Posts: 2
    very nice but please add a function to change the audio track
  • 13thFloor13thFloor Posts: 212
    edited August 2014
    DK2 in extened mode and secondary display.

    Load VLCRiftPlayer and screens go blank with nothing showing?

    Rift point of centre was way. Turn HMD left and saw picture. Seems ok. Cant say it was much better than whirligig
    Intel i920@4ghz, 12gb ram, Windows 7
    Nvidia GTX 970 4gb, 120gb SSD, OR Dev Kit 1&2
  • mramra Posts: 33
    Karuto wrote:
    very nice but please add a function to change the audio track

    Here is a quick build with changeable audio tracks.
    Use F9 to change the audio track.

    I tested it briefly and it worked, but it's a little confusing that VLC returns a larger number of audio tracks as I had expected.
  • mramra Posts: 33
    13thFloor wrote:
    DK2 in extened mode and secondary display.

    Load VLCRiftPlayer and screens go blank with nothing showing?

    A window should come up where you can select a movie.

    Please have a look if you have two entries in the taskbar (should be).
    Possibly window appears on the wrong screen.

    Is your monitor your primary display?
  • mramra Posts: 33
    13thFloor wrote:
    ...
    Rift point of centre was way. Turn HMD left and saw picture. Seems ok. Cant say it was much better than whirligig

    At the beginning hit the Enter key to center.
    Oculus say they will save the center position for each App. But it is not working for my, so center first every time.
  • KarutoKaruto Posts: 2
    mra wrote:
    Karuto wrote:
    very nice but please add a function to change the audio track

    Here is a quick build with changeable audio tracks.
    Use F9 to change the audio track.

    I tested it briefly and it worked, but it's a little confusing that VLC returns a larger number of audio tracks as I had expected.


    Wow that's fast :)
    Worked perfect.

    Thank you!
  • phoenixfoxphoenixfox Posts: 18
    Virtual Boy (or Girl)
    Great work!

    One key to move to skip to the next file would be nice, or a playlist.
  • bonegabonega Posts: 54
    If I roll my head sideways it feels like I go crosseyed.
    When moving my head closer to the screen the zooming effect is very much exaggerated.
    Other than that it seems very nice.
  • PLEASE HELP!!!!

    gtx780 ti
    win 7 64bit

    primary = samsung 27" 1080p
    secondary = rift 1080p

    i can get the video to show up on my primary monitor, how do i get it to show on my rift instead?

    If i change the rift to primary monitor, it is unusable because it's zoomed into the desktop and and i can't see crap >_<

    please help
  • mramra Posts: 33
    neosin wrote:
    PLEASE HELP!!!!

    gtx780 ti
    win 7 64bit

    primary = samsung 27" 1080p
    secondary = rift 1080p

    i can get the video to show up on my primary monitor, how do i get it to show on my rift instead?

    If i change the rift to primary monitor, it is unusable because it's zoomed into the desktop and and i can't see crap >_<

    please help

    Do u use the DK2?

    App is looking for the identifier of the dk2, so if u use the dk1, it is not supported by this app, sorry.
    I do have the dk1, but cause of the low res i will not support it for movie playback for now.

    If u have the dk2, your setup should be fine.

    primary = samsung 27" 1080p
    secondary = rift 1080p

    Will test it on nvidia hw then I'm back in the end of this week.
  • I'll post this here, even though I've already sent this as a private email:

    You need to learn how to navigate your system when in the extended mode!

    And you especially need to learn (for the time being) how to do so when you have the Rift set as the "Primary" display.

    Here's a related piece I posted for the Star Wars game "Battle of Endor" that covers part of the above issues. After this I'll get back to specifics on the VLC Rift Player, and I'll recommend a much easier player for you:

    "Re: Star Wars: Battle of Endor
    Postby WillHart1 » Mon Aug 25, 2014 8:49 am

    It was a real puzzle to get this to run on the Rift on my system; but it felt like Victory when I finally did!

    (Scroll Way Down to quickly get to the The Short Version)

    The Long Explanation:

    One thing I'm just learning, is the difference in Windows (8.1) between the numbers assigned to monitors, their Adapter numbers, and

    the importance of which monitor is assigned as the "Primary" monitor.

    From what I currently understand, when my Rift is in Extended Mode, and I right-click on Screen Resolution, it is extremely important to have the Rift (no matter what number is on its screen display), moved to the left-most position, as that is what the force Adapter command added to Shortcuts, " -adapter 1" calls Adapter 1.

    It is also crucial in many cases to use your graphics card controls in Extended Mode to set the Rift as the Primary display; even though this does get confusing when you have to have to try and find the next little window that wants you to confirm this setting.

    I've found that right after you click on Apply, pressing Tab, then Enter, will confirm the setting, even though you might not be able to see this little window through one of your Rift lenses after it has become the "Primary" display.

    It also helps at moments like this to know you can sometimes use the Windows key plus the Right or Left Arrow keys (sometimes holding the Shift-Key at the same time) to move some of the active windows from display to display; and that you have to drag your mouse

    pointer far off to the right or left to get it to show up on your non-Rift monitor, or on your Rift screen if you are looking through one of the lenses.

    And don't forget, if things get too confusing after you have made your Rift the Primary monitor, turning off the Rift will make Windows revert back to full-control on your regular monitor.

    It also helps greatly to have Bilago's OculusServiceManager running so you can restart your Oculus Rift Drivers and Services so you can put your Rift back into Direct mode too.

    The Short Version:

    All that being said, when I want to run Battle of Endor, according to my notes, I put my Rift in Extended Mode, I make sure under Screen Resolution that the Rift Monitor Image is to the left, I use Bilago's OculusServiceManager to stop the Oculus Services (and leave the Watchdog off), in my Nvidia GTX 660 graphics card settings, I make the Rift my Primary display, and lastly, I click on the Shortcut I made for Battle of Endor, which includes the Adapter Force " -adapter 1" on the end of it, and the fun begins.

    And if I want to start Battle of Endor from the very beginning as a demo for anyone, rather than jumping back into the game where I left off, I rename the "output_log.txt" file in the Battle of Endor data folder to something like "OLD output_log.txt" so the game will start from the beginning again.

    I hope this helps somebody get this and other programs running faster than I did!

    Will Hart
    Fullerton, California

    ps
    Make sure you look all around behind you while the opening text is scrolling!
    And have your X-Box controller plugged in.
    WillHart1"

    O.K. Now while your head is spinning, back to the VLC Rift Player:

    Create a Shortcut for your VLC Rift Player.exe file (for now, put it on your desktop).

    Then open the Shortcut Properties and add the DirectX11 force command to the filename in the Properties, so the end of the name will look like this .exe" -force-d3d11.

    And make sure that Shortcut is kind of in the middle of your Windows desktop, or visible in a small window that you move to the middle of your desktop.

    You then need to make sure all of your Rift services and drivers are running.

    Use the Oculus Service Manager by Bilago, with the Watchdog function turned on for constant services.

    Go into Extended Mode in your Oculus controls so your graphics card and Windows will see your Rift as a monitor.

    Use your Windows Screen Resolution controls to make sure your Rift is the left-most position.

    Then tell your graphics card to make the Rift your Primary display, and select Apply; and to make it easier to confirm this choice, since you can't see the little window asking you to confirm this, just press Tab, then Enter, and you will have confirmed the Primary choice.

    Here's where you need to master your new-found screen viewing skills.

    If you look through one of your Rift lenses (on mine, it's the left one), you should be able to see the shortcut you created for the Player, but you may have to watch carefully as you move your mouse around to find the pointer to click on it.

    Just remember, your Rift is now your left-most monitor, so you have to move your pointer way off to the left to see it; and then to see your pointer on your other monitor, you have to move the pointer way off to the right.

    You also now have to practice two other skills.

    Move your pointer way over to the middle of your regular monitor, and notice what windows are showing as active on your Taskbar; and try pressing Windows plus your Right Arrow a few times to find out what it is like to move active windows over to your regular monitor where you can easily see them. You can use Alt-Tab to make different windows active, and try moving them back and forth between your Rift and your Monitor using Windows plus the Arrow Keys (with and without the Shift Key).

    When you first run the VLC Rift Player, you may only see a White Screen in your Rift, but if you look at your Task Bar on your Monitor, you will see two Player Items, one on top of the other. Use Alt Tab to select the other Player item as the Active Window, then use your Windows plus Right Arrow to move that over to you Monitor, and you will see the Open Items dialog window from the Rift Player, so you can select whatever video you want to watch.

    And when you feel totally lost in the Extended Rift Primary mode, don't forget you can turn your Rift off, which will put everything back on your regular monitor. And from there you can use the Oculus Service Manager by Bilago to turn your services and drivers back on (if you have had them off), and you can switch the Oculus Services back to Direct, just before you turn the Rift back on.

    All of this sounds really convoluted, but it just takes moments once you learn it, and it takes far, far, longer trying to explain it!

    AND NOW THE TIP OF THE DAY!

    Don't worry about doing any of the above!

    Spend $5.99 or so, and just download the latest MaxVR; which has been updated 5 times in the last 24 hours!

    You don't have to do anything special to get it running!

    Leave your drivers running in Direct mode, and just start MaxVR and enjoy yourself!

    You videos and drop down videos will be on your regular monitor, and your Rift will just show you your videos and a slider and pause/play control.

    The Tab key lets you cycle through all of the 2D and 3D modes.

    The S Key lets you cycle through the screen styles, Flat, Curved, 180, etc.

    And - and + let you move toward or back from the screen.

    MaxVR is a no-brainer that has become a massive, easy-to-use treat!

    Will Hart
  • mramra Posts: 33
    Will is right for the file chooser window:
    It can be a little bit tricky to have the file chooser window on the primary display and the video output on the dk2.

    He described how to choose the file chooser window (ALT + TAB) and how to get the window back to the other monitor (WIN + SHIFT + ARROW_KEY). For me it is working nicely as is, but u may have some trouble with it.

    But it should be no problem, in any case, to have the video on the DK2, because it is directly bound to the DK2 DXGI adapter.
    There is no magic involved like having your primary on a special position etc.

    I appreciate very much the feedback from all, who tried VLCRiftPlayer in this early stage.
    This is a work in progress thread and I would like to share my experience during the development with u and listening to your feedback.

    Direct to the rift is on my list for the next releases, like many more:
    * Ambilight
    * Special pentile subpixel rendering
    * Playlist support
    * Debug GUI
    * Player GUI

    Please keep in mind that this is not a finished program, not even a Beta.
    It is a non feature freeze Alpha version.
    There are more finished/polished video players, but the main idea is to use the VLC base for video decoding, subs, audio, ... as it is a well known, great, open source video player.

    So if u like this idea plz support my work by contributing to the thread with your ideas and feedback.
  • This player is the only one I have been able to use without judder.
    But: If I tilt my head towards my shoulder it feels like I go crosseyed.
    The picture diverges somehow.
    Perhaps it has something to do with using F2(?) for switching eyes?.
  • mramra Posts: 33
    bonega wrote:
    This player is the only one I have been able to use without judder.
    But: If I tilt my head towards my shoulder it feels like I go crosseyed.
    The picture diverges somehow.
    Perhaps it has something to do with using F2(?) for switching eyes?.

    I am doing the projection wrong (not related to F2 switch eye). This is a bug in the current release, that has already been fixed and will be corrected in the next release by the end of this week.

    Thx for the info.
  • Protocol7Protocol7 Posts: 178
    Art3mis
    Thank you for your fine work!
  • Hey Mra, Awesome player loving it the best out there at the moment. But I was wondering if you would be able to add scaling to screen to make it larger.

    I know you can scroll in and out to change the size of the screen but that is translating the screen in depth, what i mean is if you like that screen at that depth in space would you be able to make it so you can increase/decrease the size of the screen and keep it at the same stereo depth. This I think will improve the experience a lot if you have the screen much further away in space but a lot larger it will seem more impressive instead of having the screen right up close to your face.

    Thanks, Pete.
  • MisterDeumMisterDeum Posts: 11
    Virtual Boy (or Girl)
    VLCRiftPlayer is fabulous. It works great. Period. the subtitles seems to be completely in the wrong position (clearly not on the bottom and slightly left) but besides that ... it plays like a charm. Keep it simple like they said. Add just the necessary and you will get a winner ! Thanks for this !
  • mramra Posts: 33
    New Release is out now!

    0.0.3 - 3rd Pre-Alpha Release

    * "Direct to the Rift" / "Direct HMD Access from Apps" mode is now supported. (Extended desktop is still supported)
    * Audio Track Changingis now supported. Use F9 to change the audio track.
    * Removed Direct Input
    * Added simple Debug Gui in Debug Builds (not in public release builds)
    * BUGFIX: Projection Matrix was wrong while turning + rotating head

    Thx guys for testing
  • mramra Posts: 33
    PeterS25 wrote:
    Hey Mra, Awesome player loving it the best out there at the moment. But I was wondering if you would be able to add scaling to screen to make it larger.

    I know you can scroll in and out to change the size of the screen but that is translating the screen in depth, what i mean is if you like that screen at that depth in space would you be able to make it so you can increase/decrease the size of the screen and keep it at the same stereo depth. This I think will improve the experience a lot if you have the screen much further away in space but a lot larger it will seem more impressive instead of having the screen right up close to your face.

    Thanks, Pete.

    Sorry, Pete, I do not understand what you are looking for.

    You can, as u mentioned, move the camera/head to the screen to make it larger.
    Your Separation in terms of IPD can be adjusted, but I do not recommend doing so, because the app will use the IPD defined by the Oculus Config Tool for your active profile.
    The Stereo Separation (S3D) of the images/movie is fixed, because it is no dynamic rendered, in contrast to content like 3D geometry in games, it can not be changed.

    But maybe I missed your point.

    Thx anyway for testing VLCRiftPlayer!
«13
Sign In or Register to comment.