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

In Game: MP4 Video can no longer by played on Steam Deck in November Runtime #8450

Open
shichen85 opened this issue Nov 18, 2024 — with GM Bug Reporter · 10 comments
Open
Assignees
Labels
project This issue has a sample project attached runner-bug In-game bugs with the "GameMaker Studio 2" runtimes

Comments

@shichen85
Copy link

shichen85 commented Nov 18, 2024

Description

The sample project plays an MP4 video using video_open() and video_draw(). On Steam Deck, the video played fine with runtime 2024.800.0.642, but it does not play with runtime 2024.1100.0.708.

Steps To Reproduce

  1. Build the project for Windows VM.
  2. Deploy to the Steam Deck with the start commmand Crashlands2.exe and This title requires Steam Play
  3. Launch the title. See that export built with runtime 2024.800.0.642 plays fine, but built with 2024.1100.0.708 does not play.
  4. The draw event returned early on line 2, which suggests that the Async Social event did not trigger with the video_start event.

Which version of GameMaker are you reporting this issue for?

IDE v2024.1100.0.687 Runtime v2024.1100.0.708

Which operating system(s) are you seeing the problem on?

Windows 10.0.22000.0

Which platform(s) are you seeing the problem on?

Windows

d25c40f7-4c31-4a90-8c11-052a30aec36f

@gm-bug-reporter gm-bug-reporter bot added runner-bug In-game bugs with the "GameMaker Studio 2" runtimes project This issue has a sample project attached labels Nov 18, 2024
@stuckie stuckie changed the title In Game: MP4 Video can longer by played on Steam Deck in November Runtime In Game: MP4 Video can no longer by played on Steam Deck in November Runtime Nov 19, 2024
@stuckie stuckie moved this from Triage to Backlog in Team Workload Nov 19, 2024
@shichen85
Copy link
Author

Tested on 2024.1100.0.719 and still not working.

@shichen85
Copy link
Author

Changing the video codec to H264, VP9, or AV1 does not change the behavior.

@shichen85
Copy link
Author

Hello @stuckie @jackerley, I want to check on the status of this issue. I would assume that video_draw() not working on Steam Deck is a high-priority issue, but I also haven't heard from other developers mentioning this, so I want to know if you are able to replicate this issue on your end. If it is replicable, we will wait for newer runtimes to address this issue. If it is not replicable, we will investigate other workarounds ourselves. Thank you.

@jackerley
Copy link

Hi @shichen85 sorry for the lack of update on this, I've been having some problems connecting to the Steamdeck in the office through the VPN, I'm in the office today so I'm going to grab the hardware and hopefully should be able to get it sorted out.

Thanks,
Fritz

@jackerley
Copy link

Hi @shichen85 I'm not seeing any errors being thrown by video playback on the Steamdeck, but it is playing the testcard video rather than the intended video. It seems that it drops to this when it has problems with the codec. I re-encoded the video as vp9 and it played back fine. I have seen reports that this is only a problem when running from the Steam Devkit Management Tool and that it isn't an issue if you upload your package to Steam and then download from there, but haven't yet tested that. Are you testing with an uploaded build or a locally deployed build?

Thanks,
Fritz

@shichen85
Copy link
Author

Hi @jackerley , thanks for looking into this. We are encountering this issue with our uploaded build too. Can you upload the re-encoded vp9 video or the YYZ project here so that I can try it on my device? Also, I am copying my Steam Deck's spec below for reference:

OS Verfsion: 3.6.19
OS Build: 20241021.100
Kernel Version: 6.5.0-valve22-1-neptune-65-g9a338ed8a75e
BIOS Version: F7A0131
Steam Version: 1731990050

@shichen85
Copy link
Author

I just tried setting the game's compatibility option to use proton-experimental and the VP9 encoded was able to play. Can you check what version of proton are you using?

@jackerley
Copy link

Hi @shichen85 our Steamdeck is running Proto 9.0-3 on OS version 3.6.20

OS Build 20241030.1
Kernel Version 6.5.0-valve22-1-neptune-65-g9a338ed8a75e
Bios Version F7A0131
Steam Version 1733265492
Video Driver 4.6 (Compatibility Profile) Mesa 24.0.5

@shichen85
Copy link
Author

shichen85 commented Dec 11, 2024

@jackerley Thanks for the info. I have checked that I have the same config as yours except the OS Build and Steam Version. I updated them and still had the same result, so I am assuming that our devices' configs don't meaningfully differ.

I have updated the sample to include both the MP4 and the WEBM (vp9 encoded) version of the video. Tapping the screen would toggle between which one is played: https://drive.google.com/file/d/1crH6CuNv8E1wjBC1lZDLrDuBHERRTNJy/view?usp=sharing

For this sample, using runtime 2024.1100.0.719 and proton-experimental or proton-hotfix can play both videos fine. However, the WEBM version could not get the video duration with video_get_duration(), and it seemed to play at stuttered speed. The MP4 version played fine and was able to get the video duration.

Using all other versions of proton caused both videos to not play.

Can you share your re-encoded vp9 video with me, so I can try playing it on my device?

@jackerley
Copy link

opening.mp4

Hi Shi, this is the converted video that I was using, I used ffmpeg to convert it to vp9 with iirc pretty much the default options ffmpeg -i openingorig.mp4 -c:v libvpx-vp9 opening.webm then renamed to mp4 just so I didn't have to change the project

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
project This issue has a sample project attached runner-bug In-game bugs with the "GameMaker Studio 2" runtimes
Projects
Status: Backlog
Development

No branches or pull requests

2 participants