Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The codecs and media frameworks support meta-tracker #1464

Open
2 tasks done
HonkingGoose opened this issue Sep 15, 2018 · 307 comments
Open
2 tasks done

The codecs and media frameworks support meta-tracker #1464

HonkingGoose opened this issue Sep 15, 2018 · 307 comments
Labels
Feature Request New feature or request

Comments

@HonkingGoose
Copy link

HonkingGoose commented Sep 15, 2018

To all who read this issue report and thread:

I've migrated the tables to my repository at https://github.com/HonkingGoose/proton_codecs_media_support_tracker
If you want to update a table entry, you can open a pull request there. 😉
This way I don't need to keep track of changes all by myself.


Proton 5.13-1 has improvements for some games. Some quartz games may start working now.

Quote from @aeikum original comment here

There won't be any improvements for Media Foundation-based games in 5.13-1.

We put in a bunch of work improving quartz video between 5.0 and 5.13, so some games may start working (I don't have specific titles, sorry). If you see a color bars pattern appearing now, that's an indicator of our work on certain codecs. You will hopefully see the real video instead of those color bars very soon.


Feature Request

I confirm:

  • that I haven't found another request for this feature. Technically there are multiple requests, but they are scattered between multiple issue reports.
  • that I have checked whether there are updates for my system available that
    contain this feature already.

Description

There are multiple games which use .wmv (Windows Media Video) files, for their cinematics/cutscenes. These files will not be played back in-game on a standard installation of the game using Proton.

Because I've seen multiple bug-reports with regards to .wmv file playback, I wanted to make a generic request, so it doesn't get lost in between all the specific game issues.

Justification

There are multiple games which have .wmv file playback issues, these games use .wmv for cutscenes, and so are a integral part of the story and experience of the games which use it.

For #137 the fix for .wmv files would probably make the game ready for official whitelist process.
There might be other games which would qualify for whitelisting too, after this feature has been implemented.

Integration into Proton would fix .wmv file playback for the games referenced below.

Risks

  • The fix for .wmv file playback might break something else in Proton.
  • There might be some other unknown risks associated with including the .wmv file playback, like for example patent/IP issues regarding including .wmv codecs/playback.

References

The old tables can be seen from the edit history. I recommend you use the newer tables in my repository though.

@kisak-valve kisak-valve added the Feature Request New feature or request label Sep 15, 2018
@HonkingGoose HonkingGoose changed the title [Feature request] Add .wmv file playback support for Proton. [Feature request] Add .wmv file playback support to Proton. Sep 15, 2018
@ghost
Copy link

ghost commented Sep 15, 2018

The problem is that there are games like Obduction that need Windows Media Foundation/Windows Media Feature support as they use a dll not installed otherwise by a wmv player like WMP. #327

So its not just being able to play a video, they literally need this dll (and whatever else is tied to it) to playback the video. UE4 games all have the option of needing this dll if it is used in a Windows release for video playback. Possibly Unity games as well.

Although, as long as some version of it can be found by the game (and used), it could even just be a mock one that uses a different means.

While, some games seem to be able to get by with WMP installed as far as I can tell from various posts on the internet, it would be better to go the whole mile and support more than just simple wmv format. WMV is a part of a whole pie.

@HonkingGoose
Copy link
Author

@byte1024 Oh, I didn't know that more might be needed beside just fixing "simple" .wmv file playback.

I understand your point correctly:

  1. Some games also require Windows Media Foundation and/or Windows Media Feature support.
  2. Those games use a dll (and all that is tied to this dll) which is not installed by a wmv player like WMP.
  3. Therefore just fixing .wmv playback will not solve the whole problem games have with playback.
  4. So it's better to implement support for the whole "Windows Media Foundation and/or Windows Media Feature" framework.

@ghost
Copy link

ghost commented Sep 15, 2018

@byte1024 Oh, I didn't know that more might be needed beside just fixing "simple" .wmv file playback.

I understand your point correctly:

1. Some games also require Windows Media Foundation and/or Windows Media Feature support.

2. Those games use a dll (and all that is tied to this dll) which is not installed by a wmv player like WMP.

3. Therefore just fixing .wmv playback will not solve the whole problem games have with playback.

4. So it's better to implement support for the whole "Windows Media Foundation and/or Windows Media Feature" framework.

It looks like there might even be more. The only log I found in all the links you posted (here: #137) needs quartz.dll to find system codecs and uses fmod for in-game sound.

The log for that one shows some stuff used in quartz.dll can't be found:

41489.934:0008:0032:err:quartz:GetClassMediaFile Media class not found
41489.935:0008:0032:err:quartz:GetClassMediaFile Media class not found
41489.936:0008:0032:err:quartz:GetClassMediaFile Media class not found

That's all I noticed in that log, but its easier to find this stuff when you know the filename of the video being played since a search goes right to it if its found in the log.

And an explanation that Wine's quartz.dll is fake and missing stuff.
https://www.winehq.org/pipermail/wine-users/2002-November/009217.html

And the corresponding log entry shows this is still true:
41489.932:0008:0032:trace:module:load_dll L"C:\\windows\\system32\\quartz.dll" is a fake Wine dll

Some seem to say quartz is a part of the WMP install, but quartz is also DirectShow (DirectX media) which was replaced with WMF that I mentioned. https://en.wikipedia.org/wiki/DirectShow

and Microsoft also mentions WMF in the what's new section of DirectShow: https://docs.microsoft.com/en-us/windows/desktop/directshow/whats-new-in-directshow

Its a media pie, all these pieces are a part of it, but Wine has been failing on them and now Proton is too.

@aeikum
Copy link
Collaborator

aeikum commented Sep 17, 2018

Wine has a directshow implementation, which depends on gstreamer. Since we can't depend on the system having gstreamer installed, we will need to build and ship it with Proton. Worse, we also would need to ship the codecs, which may have patent/licensing issues. It hasn't been looked into yet.

Wine does not have a MF implementation yet. There's some work being done on it, but it's not nearly ready. If anyone is looking to contribute to Wine, that may be a decent place to get started.

@niikoo
Copy link

niikoo commented Nov 3, 2018

+1

I have tried a lot of different configurations.
Haven't had any success with codec packs / wmp.
VLC in Proton plays those videos though, so it should be possible.

Tried Proton 3.16-4 beta and 3.7-8
Graphics: AMD RX580

@HonkingGoose
Copy link
Author

@niikoo Thanks for trying things out. 😄

I must confess, my understanding of this issue is very limited. @aeikum knows way more about this than me... So @aeikum, could you perhaps give your thoughts on this?

@basxto
Copy link

basxto commented Nov 3, 2018

VLC has it’s own codecs, afaik.

@PythonicChemist
Copy link

+1

it affects all Blazblue games. I tried manually installing quartz into their prefixes which doesn't work with a proton prefix but with a normal wine one.

@f0rmatme
Copy link

this also effects the new RE2

@ValveSoftware ValveSoftware deleted a comment from f0rmatme Jan 26, 2019
@kisak-valve
Copy link
Member

Hello @james-munson, the libraries you've shared are not free and it's problematic to redistribute them.

@basxto
Copy link

basxto commented Apr 10, 2022

They have audio, but no video; just the TV test pattern.

The pattern is to be expected if it’s not converted yet. Sounds like video and sound were separate from each other. And the queue is slow, I added (or tried to) some videos three weeks ago and they are still not converted yet.

@Elmapul
Copy link

Elmapul commented May 20, 2022

Guilty Gear X2 #Reload (314030)

the opening video was fixed, it can be watched as soon as you open the game, or in the gallery screen, but there is an video on gallery called Extra, that show the colors bars:

https://raw.githubusercontent.com/Elmapul/proton-good-metric/main/Captura%20de%20tela%20de%202022-05-20%2003-52-14.png

as you can see the color bars dont fill in the whole screen, i suppose they should?

waiting a few seconds on the title screen do work (activate some presentation between 2 characters fighting.)

the game is slow, im pretty sure that my computer can run it faster than that (even on protons, an old version was able to start the fights but not to play the videos) i will try to close a few windows to see if i can get an better performance or maybe its a bug on the new version of proton.

btw: waiting on the buged video (colors bars) may crash the game.

i forgot to mention, before you open the game, you have to chose if you want to open the game or configure the settings, the configure settings windows isnt completely rendered, and you cant resize, you cant read what is writen on the right side of this window.
https://raw.githubusercontent.com/Elmapul/proton-good-metric/main/guilty.png

@alkaris2
Copy link

alkaris2 commented Jul 8, 2022

This seems to be a problem for Spyro Reignited Trilogy. MP4 video formats don't play back, it just skips over them. Something related to mfplat.dll

#3035

@steventylerseanherr
Copy link

steventylerseanherr commented Aug 31, 2022

Ditto on Spyro having problems
Out of the box reignited wouldn't play cutscenes at all
I had to reenable shader precaching and download like 2gb of shaders
After that cutscenes would play
Or so I thought
All the cutscenes through Spyro 1 worked till the very last cutscenes
Where it played that color test for a bit then skipped the cutscenes

This game really should not be deck verified if it doesn't work out of the box yet

@Elmapul
Copy link

Elmapul commented Sep 25, 2022

Guilty Gear X2 #Reload (314030)
had another regression.
the cutscenes arent playing anymore.
honestly i dont remember when they were playing (what version of proton i was using, i will have to guess based on proton relase dates+the time i tested) but now they arent playing.
tested on experimental and proton 4.11-13, the other versions i think it wont even open (7.0-4 take forever to load , i dont know if it will ever open or if something crashed)

@kisak-valve
Copy link
Member

Hello @FanderWasTaken, your comment was removed because your workaround references a legally problematic workaround.

@fedor4ever
Copy link

Do you have demo which play sounded video at start? In various formats: wmv+wma pro, wmw+wma etc. It was very useful at automated testing.

@nightsky30
Copy link

There was a regression with Rogue Heroes: Ruins of Tasos (787810) which worked prior to April 2024. I thought I'd mention it here due to the following appearing in the logs:

16321.443:0128:01dc:trace:mscoree:DllMain (7BBB0000, 2, 00000000)
16321.444:0128:01dc:warn:threadname:NtSetInformationThread Thread renamed to L"wine_threadpool_worker"
16321.444:0128:01e0:trace:mscoree:DllMain (7BBB0000, 2, 00000000)
16321.444:0128:01e4:trace:mscoree:DllMain (7BBB0000, 2, 00000000)
16321.445:0128:01e0:warn:threadname:NtSetInformationThread Thread renamed to L"wine_threadpool_worker"
winegstreamer error: decodebin0: Your GStreamer installation is missing a plug-in.
winegstreamer error: decodebin0: ../src-gst_base/gst/playback/gstdecodebin2.c(4704): gst_decode_bin_expose (): /GstBin:bin0/GstDecodeBin:decodebin0:
no suitable plugins found:
Missing decoder: Advanced Streaming Format (ASF) (video/x-ms-asf)

0:00:00.181660577 13422 0xd1300900 ERROR   protonmediaconverter videoconv.c:353:video_conv_state_create: MEDIACONV_VIDEO_TRANSCODED_FILE is not set.
0:00:00.181682321 13422 0xd1300900 ERROR   protonmediaconverter videoconv.c:488:video_conv_change_state: Failed to create video conv state, ret -11.
0:00:00.181803439 13422 0xd1300900 ERROR   protonmediaconverter videoconv.c:353:video_conv_state_create: MEDIACONV_VIDEO_TRANSCODED_FILE is not set.
0:00:00.181816485 13422 0xd1300900 ERROR   protonmediaconverter videoconv.c:488:video_conv_change_state: Failed to create video conv state, ret -11.
winegstreamer error: decodebin1: Your GStreamer installation is missing a plug-in.
winegstreamer error: decodebin1: ../src-gst_base/gst/playback/gstdecodebin2.c(4704): gst_decode_bin_expose (): /GstBin:bin1/GstDecodeBin:decodebin1:
no suitable plugins found:
Couldn't set videoconv0 to READYCouldn't set protondemuxer0 to READY
Unhandled Exception:
SharpDX.SharpDXException: HRESULT: [0xC00D36BB], Module: [Unknown], ApiCode: [Unknown/Unknown], Message: Unknown
  at SharpDX.Result.CheckError () [0x00014] in <4756f266f5564a9c96fc162d87cb1b9c>:0 
  at SharpDX.MediaFoundation.SourceResolver.CreateObjectFromURL (System.String wszURLRef, System.Int32 dwFlags, SharpDX.ComObject propsRef, SharpDX.MediaFoundation.ObjectType& objectTypeRef, SharpDX.ComObject& objectOut) [0x00079] in <3f89c9e275954d608110909128d5a258>:0 
  at SharpDX.MediaFoundation.SourceResolver.CreateObjectFromURL (System.String url, SharpDX.MediaFoundation.SourceResolverFlags flags, SharpDX.ComObject propertyStore, SharpDX.MediaFoundation.ObjectType& objectType) [0x00000] in <3f89c9e275954d608110909128d5a258>:0 
  at SharpDX.MediaFoundation.SourceResolver.CreateObjectFromURL (System.String url, SharpDX.MediaFoundation.SourceResolverFlags flags) [0x00000] in <3f89c9e275954d608110909128d5a258>:0 
  at Microsoft.Xna.Framework.Media.Song.PlatformInitialize (System.String fileName) [0x00026] in <115d97b957eb41cabade1b29d1e7edf4>:0 
  at Microsoft.Xna.Framework.Media.Song..ctor (System.String fileName) [0x00018] in <115d97b957eb41cabade1b29d1e7edf4>:0 
  at Microsoft.Xna.Framework.Media.Song..ctor (System.String fileName, System.Int32 durationMS) [0x00000] in <115d97b957eb41cabade1b29d1e7edf4>:0 
  at Microsoft.Xna.Framework.Content.SongReader.Read (Microsoft.Xna.Framework.Content.ContentReader input, Microsoft.Xna.Framework.Media.Song existingInstance) [0x00035] in <115d97b957eb41cabade1b29d1e7edf4>:0 
  at Microsoft.Xna.Framework.Content.ContentTypeReader`1[T].Read (Microsoft.Xna.Framework.Content.ContentReader input, System.Object existingInstance) [0x00003] in <115d97b957eb41cabade1b29d1e7edf4>:0 
  at Microsoft.Xna.Framework.Content.ContentReader.InnerReadObject[T] (T existingInstance) [0x0002d] in <115d97b957eb41cabade1b29d1e7edf4>:0 
  at Microsoft.Xna.Framework.Content.ContentReader.ReadObject[T] () [0x00000] in <115d97b957eb41cabade1b29d1e7edf4>:0 
  at Microsoft.Xna.Framework.Content.ContentReader.ReadAsset[T] () [0x00006] in <115d97b957eb41cabade1b29d1e7edf4>:0 
  at Microsoft.Xna.Framework.Content.ContentManager.ReadAsset[T] (System.String assetName, System.Action`1[T] recordDisposableObject) [0x00080] in <115d97b957eb41cabade1b29d1e7edf4>:0 
  at Microsoft.Xna.Framework.Content.ContentManager.Load[T] (System.String assetName) [0x0005a] in <115d97b957eb41cabade1b29d1e7edf4>:0 
  at RogueHeroMG.AudioHandler.LoadContent (Microsoft.Xna.Framework.Content.ContentManager content, System.Random random) [0x0010f] in <e9138f76f9284bae81efb1f0b9921562>:0 
  at RogueHeroMG.RogueHeroGame.LoadMainContent () [0x00018] in <e9138f76f9284bae81efb1f0b9921562>:0 
  at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00014] in <f1249a148cfb4110b9a02139e12e4308>:0 
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in <f1249a148cfb4110b9a02139e12e4308>:0 
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <f1249a148cfb4110b9a02139e12e4308>:0 
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x0002b] in <f1249a148cfb4110b9a02139e12e4308>:0 
  at System.Threading.ThreadHelper.ThreadStart () [0x00008] in <f1249a148cfb4110b9a02139e12e4308>:0 
[ERROR] FATAL UNHANDLED EXCEPTION: SharpDX.SharpDXException: HRESULT: [0xC00D36BB], Module: [Unknown], ApiCode: [Unknown/Unknown], Message: Unknown
  at SharpDX.Result.CheckError () [0x00014] in <4756f266f5564a9c96fc162d87cb1b9c>:0 
  at SharpDX.MediaFoundation.SourceResolver.CreateObjectFromURL (System.String wszURLRef, System.Int32 dwFlags, SharpDX.ComObject propsRef, SharpDX.MediaFoundation.ObjectType& objectTypeRef, SharpDX.ComObject& objectOut) [0x00079] in <3f89c9e275954d608110909128d5a258>:0 
  at SharpDX.MediaFoundation.SourceResolver.CreateObjectFromURL (System.String url, SharpDX.MediaFoundation.SourceResolverFlags flags, SharpDX.ComObject propertyStore, SharpDX.MediaFoundation.ObjectType& objectType) [0x00000] in <3f89c9e275954d608110909128d5a258>:0 
  at SharpDX.MediaFoundation.SourceResolver.CreateObjectFromURL (System.String url, SharpDX.MediaFoundation.SourceResolverFlags flags) [0x00000] in <3f89c9e275954d608110909128d5a258>:0 
  at Microsoft.Xna.Framework.Media.Song.PlatformInitialize (System.String fileName) [0x00026] in <115d97b957eb41cabade1b29d1e7edf4>:0 
  at Microsoft.Xna.Framework.Media.Song..ctor (System.String fileName) [0x00018] in <115d97b957eb41cabade1b29d1e7edf4>:0 
  at Microsoft.Xna.Framework.Media.Song..ctor (System.String fileName, System.Int32 durationMS) [0x00000] in <115d97b957eb41cabade1b29d1e7edf4>:0 
  at Microsoft.Xna.Framework.Content.SongReader.Read (Microsoft.Xna.Framework.Content.ContentReader input, Microsoft.Xna.Framework.Media.Song existingInstance) [0x00035] in <115d97b957eb41cabade1b29d1e7edf4>:0 
  at Microsoft.Xna.Framework.Content.ContentTypeReader`1[T].Read (Microsoft.Xna.Framework.Content.ContentReader input, System.Object existingInstance) [0x00003] in <115d97b957eb41cabade1b29d1e7edf4>:0 
  at Microsoft.Xna.Framework.Content.ContentReader.InnerReadObject[T] (T existingInstance) [0x0002d] in <115d97b957eb41cabade1b29d1e7edf4>:0 
  at Microsoft.Xna.Framework.Content.ContentReader.ReadObject[T] () [0x00000] in <115d97b957eb41cabade1b29d1e7edf4>:0 
  at Microsoft.Xna.Framework.Content.ContentReader.ReadAsset[T] () [0x00006] in <115d97b957eb41cabade1b29d1e7edf4>:0 
  at Microsoft.Xna.Framework.Content.ContentManager.ReadAsset[T] (System.String assetName, System.Action`1[T] recordDisposableObject) [0x00080] in <115d97b957eb41cabade1b29d1e7edf4>:0 
  at Microsoft.Xna.Framework.Content.ContentManager.Load[T] (System.String assetName) [0x0005a] in <115d97b957eb41cabade1b29d1e7edf4>:0 
  at RogueHeroMG.AudioHandler.LoadContent (Microsoft.Xna.Framework.Content.ContentManager content, System.Random random) [0x0010f] in <e9138f76f9284bae81efb1f0b9921562>:0 
  at RogueHeroMG.RogueHeroGame.LoadMainContent () [0x00018] in <e9138f76f9284bae81efb1f0b9921562>:0 
  at System.Threading.ThreadHelper.ThreadStart_Context (System.Object state) [0x00014] in <f1249a148cfb4110b9a02139e12e4308>:0 
  at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00071] in <f1249a148cfb4110b9a02139e12e4308>:0 
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) [0x00000] in <f1249a148cfb4110b9a02139e12e4308>:0 
  at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) [0x0002b] in <f1249a148cfb4110b9a02139e12e4308>:0 

@powerofthe69
Copy link

With the release of Kingdom Hearts on Steam, I've found that attempting to play the games on Fedora 40 doesn't load the FMVs still, despite the issue apparently being absent on the Steam Deck as reported by multiple outlets. I've already installed all ffmpeg and Multimedia group codecs and tried to force the games to run through Proton GE 9.0-7. The videos do not render.

@Bitwolfies
Copy link
Contributor

Bitwolfies commented Jun 13, 2024

With the release of Kingdom Hearts on Steam, I've found that attempting to play the games on Fedora 40 doesn't load the FMVs still, despite the issue apparently being absent on the Steam Deck as reported by multiple outlets. I've already installed all ffmpeg and Multimedia group codecs and tried to force the games to run through Proton GE 9.0-7. The videos do not render.

The game has deck specific repos for the cutscenes, this won't download those ones but can you launch the game with SteamDeck=1 %command%? Would like to know if they're just compressed or a different codec.

@powerofthe69
Copy link

powerofthe69 commented Jun 14, 2024

Replying to #1464 (comment)

This completely solved the issue! Played immediately in Re: Chain of Memories. Thank you so much!

@Bitwolfies
Copy link
Contributor

Bitwolfies commented Jun 14, 2024

So the video codecs are completely fine and non proprietary, the player itself is what fails? What's up with that? This would make the metal gear collection and KH both games that use the same cutscene files internally but require a special command to switch the player? Bypass something? I have no idea.

@Bitwolfies
Copy link
Contributor

Bitwolfies commented Jun 14, 2024

@kisak-valve Apologies, but is it possible to look into why SteamDeck=1 allows the same supposedly proprietary videos to play in the Kingdom Hearts 1.5 + 2.5 collection? It's absolutely not changing what files its using and this same behavior can also be observed with the metal gear master collection digital comics.

@AccidentalCalzone
Copy link

AccidentalCalzone commented Jun 14, 2024

@Bitwolfies May I inquire as to what exactly you have installed? Because simply setting SteamDeck=1 on a clean prefix on desktop Linux does not enable playback of FMV cutscenes in KH 1.5+2.5; all I'm getting is a black screen with audio playback (tested with Proton 8, 9 and Experimental).

Is it somehow possible to download and play the Steam Deck depot on desktop Linux?

Edit: Apologies, the question was supposed to be targeted at @powerofthe69

@fallenguru
Copy link

the player itself is what fails? What's up with that?

FWIW, that isn't surprising at all. There's about a million ways old and new to play media on Windows; some have a working implementation in WINE/Proton, some don't (thus the "media frameworks" in the thread title).

Some game engines do in fact have (debug) options that allow choosing the playback method, and often switching to a different one is all that's required to make videos work on Linux. Any codec issues are orthogonal, on top of that.

@powerofthe69
Copy link

powerofthe69 commented Jun 14, 2024

@Bitwolfies May I inquire as to what exactly you have installed? Because simply setting SteamDeck=1 on a clean prefix on desktop Linux does not enable playback of FMV cutscenes in KH 1.5+2.5; all I'm getting is a black screen with audio playback (tested with Proton 8, 9 and Experimental).

Is it somehow possible to download and play the Steam Deck depot on desktop Linux?

Edit: Apologies, the question was supposed to be targeted at @powerofthe69

Honestly, I'm not entirely sure which codec the game is using. I have ffmpeg-full installed from the rpmfusion repos, and I installed the DNF group "Multimedia" to be safe. Between the two, I'd assume they have any necessary codecs bundled up. I didn't need to find a hack to enable the Steam Deck repos.

@XRedCubeX
Copy link

XRedCubeX commented Jun 14, 2024

Has anyone already tried the variable "SteamDeck=1" on the epic version?

@Bitwolfies
Copy link
Contributor

Bitwolfies commented Jun 14, 2024

I finally tried it for myself, and yes, SteamDeck=1 allowed playback of video files. I cannot recall exactly at this second but I opened one of the videos in a hex editor, and it mentioned another video player software, one you integrate into your applications.

The videos don't appear to be normal MP4's, nothing I have will play them outside the game itself, and mediainfo won't tell me anything about them.

So we have a bunch of MP4's that can't be played on their own, but can in game either using a built in windows player, or potentially a fallback one when steamdeck=1 is enabled.

@XRedCubeX
Copy link

I did try it myself and yes, SteamDeck=1 allowed playback of video files. I cannot recall exactly at this second but I opened one of the videos in a hex editor, and it mentioned another video player software, one you integrate into your applications.

The videos don't appear to be normal MP4's, nothing I have will play them outside the game itself, and mediainfo won't tell me anything about them.

So we have a bunch of MP4's that can't be played on their own, but can in game either using a built in windows player, or potentially a fallback one when steamdeck=1 is enabled.

How did you pass this variable to the Epic version? Are you using Epic as non steam or Heroic? Because i got black screen when using Heroic.

@Bitwolfies
Copy link
Contributor

@Bitwolfies May I inquire as to what exactly you have installed? Because simply setting SteamDeck=1 on a clean prefix on desktop Linux does not enable playback of FMV cutscenes in KH 1.5+2.5; all I'm getting is a black screen with audio playback (tested with Proton 8, 9 and Experimental).

Is it somehow possible to download and play the Steam Deck depot on desktop Linux?

Edit: Apologies, the question was supposed to be targeted at @powerofthe69

You can get the Deck repos if you use something like steam depot manager or boot steam in developer mode and type the right command to download the repo.

However, I can confirm the only changes to the deck videos is simply they're compressed, no other changes were made.

@Bitwolfies
Copy link
Contributor

Bitwolfies commented Jun 15, 2024

Replying to #1464 (comment)

Sorry, I never attempted this on epic, it was meant to be a general post.

@XRedCubeX
Copy link

Replying to #1464 (comment)

Sorry, I never attempted this on epic, it was meant to be a general post.

Do you have any ideas to see how to do it for the Epic version? could you check the executables and cutscenes to see if there is anything that could be done?

@layercak3
Copy link

If you want to use local decoding via a privately-maintained or community fork of Proton that contains ffmpeg and a full gstreamer installation (there are good reasons one may not want or cannot use the server-side transcoding solution being pushed), I suggest outright disabling the media-converter plugin which seems to get in the way and cause skips in cases where local decoding would work even if STEAM_COMPAT*_MEDIA_PATH/MEDIACONV_*_DUMP_FILE is unset in the environment. I've got video playback in a couple of krkrz/mfplat VNs now working without installing a windows mfplat (!) by disabling media-converter and using recent valve-wine bleeding-edge commits (particularly the commit vendored in GE-Proton9-11 for most, and GE-Proton9-7 for a few ones due to regressions in later commits, however if this option is available in the title they may work in GE-Proton9-11 when using -vomstyle=overlay or -vomstyle=layer instead of -vomstyle=mixer or -vomstyle=mfevr or -vomstyle=auto, this is also configurable in the titlebar under 'advanced options' -> 'movie rendering'). When keeping media-converter enabled, they skip.
In the GE-Proton fork, winegstreamer is patched to accept PROTON_AUDIO_CONVERT=0 PROTON_AUDIO_CONVERT_BIN=0 PROTON_VIDEO_CONVERT=0 PROTON_DEMUX=0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Feature Request New feature or request
Projects
None yet
Development

No branches or pull requests