Kevga / BeatSaberCinema

A Beat Saber plugin for PC that allows you to sync up videos to play in the background of your maps.
GNU General Public License v3.0
69 stars 11 forks source link

Failing to load mp4 files in Proton #66

Closed tommydrum closed 1 year ago

tommydrum commented 1 year ago

1. Bug description

On loading any downloaded song with a video, a generic color test video plays (likely Unity's default. Note: downloading video's works fine). This happens for every mp4, and I have a few dozen downloaded.

I am currently using ALVR to interface Linux with the Quest 2. That shouldn't matter, as it just comes as OpenXR in the end. Steam is running in an arch distrobox, but again, that also shouldn't matter, as Beat Saber is running in Proton. My only theory, is some sort of file loading issue, before it gets passed into Unity for playing.

2. BSIPA log

Going through the log, the only error I'm finding, is at initiation, and is the following:

[ERROR @ 18:35:42 | IPA/Updater] Error copying file Libs\ffmpeg.exe from Pending:
[ERROR @ 18:35:42 | IPA/Updater] System.UnauthorizedAccessException: Access to the path "Z:\var\home\tommydrum\ALVR-Distrobox-Linux-Guidance\installation\arch-alvr\.local\share\Steam\steamapps\common\Beat Saber\IPA\Pending\Libs\ffmpeg.exe" or "Z:\var\home\tommydrum\ALVR-Distrobox-Linux-Guidance\installation\arch-alvr\.local\share\Steam\steamapps\common\Beat Saber\Libs\ffmpeg.exe" is denied.
[ERROR @ 18:35:42 | IPA/Updater]   at System.IO.File.InternalCopy (System.String sourceFileName, System.String destFileName, System.Boolean overwrite, System.Boolean checkHost) [0x00036] in <eae584ce26bc40229c1b1aa476bfa589>:0 
[ERROR @ 18:35:42 | IPA/Updater]   at System.IO.FileInfo.CopyTo (System.String destFileName, System.Boolean overwrite) [0x00035] in <eae584ce26bc40229c1b1aa476bfa589>:0 
[ERROR @ 18:35:42 | IPA/Updater]   at (wrapper remoting-invoke-with-check) System.IO.FileInfo.CopyTo(string,bool)
[ERROR @ 18:35:42 | IPA/Updater]   at IPA.Utilities.Utils.CopyAll (System.IO.DirectoryInfo source, System.IO.DirectoryInfo target, System.String appendFileName, System.Func`3[T1,T2,TResult] onCopyException) [0x000a5] in <85e5e5773585418d89fcc2712ee48bcc>:0 
[ERROR @ 18:35:42 | IPA/Updater] Something went wrong performing an operation that should never fail!
[ERROR @ 18:35:42 | IPA/Updater] System.UnauthorizedAccessException: Access to the path "Z:\var\home\tommydrum\ALVR-Distrobox-Linux-Guidance\installation\arch-alvr\.local\share\Steam\steamapps\common\Beat Saber\IPA\Pending\Libs\ffmpeg.exe" is denied.
[ERROR @ 18:35:42 | IPA/Updater]   at System.IO.File.Delete (System.String path) [0x00073] in <eae584ce26bc40229c1b1aa476bfa589>:0 
[ERROR @ 18:35:42 | IPA/Updater]   at System.IO.Directory.RecursiveDelete (System.String path) [0x0003f] in <eae584ce26bc40229c1b1aa476bfa589>:0 
[ERROR @ 18:35:42 | IPA/Updater]   at System.IO.Directory.RecursiveDelete (System.String path) [0x00024] in <eae584ce26bc40229c1b1aa476bfa589>:0 
[ERROR @ 18:35:42 | IPA/Updater]   at System.IO.Directory.Delete (System.String path, System.Boolean recursive) [0x00009] in <eae584ce26bc40229c1b1aa476bfa589>:0 
[ERROR @ 18:35:42 | IPA/Updater]   at IPA.Injector.Updates.InstallPendingModUpdates () [0x0024b] in <46e2caf7ec4c4ab78a3af56e96d642ab>:0 

Later in the logs, I get the occasional "Loading video: " info log, but no logs following. This, as expected, shows up when loading a song, and the unity default video is loaded instead. I don't actually know if it's ffmpeg or not, as downloading videos does work just fine (and ffmpeg is likely used for the conversion)..

Full log is attached.

_latest.log

Kevga commented 1 year ago

I don't think I have ever seen or heard of a color test video. Does it look anything like the screenshot in #51? Others reported there that they had to change permissions for ffmpeg, maybe you could give that a shot.

tommydrum commented 1 year ago

Screenshot of the test color video

Screenshot of file permissions for BS/Libs directory

I also thought permissions may have been an issue, so I just put a chmod 777 on the ffmpeg.exe (which is essentially no security whatsoever, on this file), but no luck. If you have an idea of a directory I can change permissions on, I'll try.

@Kevga Thanks for taking a look :)

Edit: saw on other thread, to use GE-Proton7-26, so I'm testing that now

tommydrum commented 1 year ago

I tested with GE-Proton8-4, and that works, for others that have any proton issue and stumble on this thread, use Proton GE :)