Skip to content

[Bug]: 启动任务失败:Could not read file duration: [Errno 86] Bad CPU type in executable: '/Users/bigbang/Library/Application Support/StemDeck/ffmpeg/ffprobe' #637

Description

@tsgo606

Before reporting

  • I'm on the latest release and the issue still happens.
  • I searched existing issues and didn't find a duplicate.

What happened?

Mac Mini M4 16G
提示这个启动任务失败:Could not read file duration: [Errno 86] Bad CPU type in executable: '/Users/bigbang/Library/Application Support/StemDeck/ffmpeg/ffprobe'

Steps to reproduce

安装时好像也有提示ffmpeg有问题

Operating system

macOS (Apple Silicon)

StemDeck version

v0.17.2

How did you install it?

macOS DMG

Logs / screenshots

No response

Activity

  1. tsgo606 commented on Sep 18, 2026

    @tsgo606
    Author

    安装时提示failed to run FFmpeg at /Users/bigbang/Library/Application Support/StemDeck/ffmpeg/ffmpeg: failed to start FFmpeg check: Bad CPU type in executable (os error 86)

    → If this keeps failing, your network or firewall may be blocking the FFmpeg download server. You can point StemDeck at a different FFmpeg build by setting the STEMDECK_FFMPEG_URL environment variable before launching, then retrying.

  2. added a commit that references this issue on Sep 20, 2026
  3. self-assigned this
    on Sep 20, 2026
  4. thcp commented on Sep 20, 2026

    @thcp
    Collaborator

    Fixed in #643, merged as abdd18a. It ships in the next release.

    What changed:

    • Setup runs ffprobe instead of checking that a file is there. A pair that disagrees about CPU architecture is caught during setup, rather than passing and failing later inside a job as Could not read file duration: [Errno 86].
    • A bad download is no longer permanent. It used to fail identically on every launch afterwards, with nothing to do but delete the folder by hand. Setup now falls through to a working system FFmpeg or fetches a fresh copy over it.
    • The backend is told which pair was verified, instead of picking one out of the data directory by whether a file exists. That last part is what kept the original error reachable even after the checks above were added, and it was found by reproducing this on an Apple Silicon Mac.
    • The message names the architecture problem and offers Rosetta or STEMDECK_FFMPEG_URL, rather than suggesting a firewall.

    What is not fixed here is #642. On Apple Silicon the fallback FFmpeg source publishes Intel builds only, so without Rosetta StemDeck still cannot fetch a working FFmpeg on its own. It now stops at the FFmpeg step and says so, with two ways forward, instead of failing partway through a job. #642 is what removes the need for either.

    One correction to the original diagnosis, for anyone reading this later: a wrong-architecture binary earlier on PATH does not shadow a working one. Both the shell and Python's execvp walk past it and find the good one further down. The failure only ever came from executing an absolute path, which is why the reported error message contains one.

  5. thcp commented on Sep 20, 2026

    @thcp
    Collaborator

    @tsgo606 感谢你的报告,也谢谢你把完整的错误信息贴出来。正是那段信息让我找到了问题,因为应用当时显示的提示指向了完全错误的方向。

    原因是这样的:StemDeck 的 macOS FFmpeg 有两个下载来源。主来源为每种芯片架构分别提供对应的版本,备用来源只提供 Intel 版本。当主来源无法访问时,Apple Silicon 的 Mac 就会拿到 Intel 版本。通常 Rosetta 会让它照常运行,但直接执行一个程序不会触发 Rosetta 的按需安装提示,所以在没有装 Rosetta 的 Mac 上它就完全无法运行。

    修复已经合并,会在下一个版本中发布。之后安装过程会在 FFmpeg 这一步就停下来并说明是架构不匹配,而不是等到任务运行到一半才失败;修复原因后重试也能正常继续,不需要再手动删除文件夹。

    在新版本发布之前,有两种方式可以现在就用起来,任选其一:

    1. 在终端里运行 softwareupdate --install-rosetta,这样 Intel 版本就能运行了。
    2. 启动 StemDeck 之前设置环境变量 STEMDECK_FFMPEG_URL,指向一个 Apple Silicon 版本的 FFmpeg。

    另外说明一下,让 StemDeck 自己就能取到 Apple Silicon 版本,是 #642 要解决的事情,那个问题还开着。

    如果你愿意,可以关注 @stemdeckapp 获取后续更新。新版本发布后再试一下,有任何问题欢迎随时告诉我。

  6. tsgo606 commented on Sep 21, 2026

    @tsgo606
    Author

    @tsgo606 感谢你的报告,也谢谢你把完整的错误信息贴出来。正是那段信息让我找到了问题,因为应用当时显示的提示指向了完全错误的方向。

    原因是这样的:StemDeck 的 macOS FFmpeg 有两个下载来源。主来源为每种芯片架构分别提供对应的版本,备用来源只提供 Intel 版本。当主来源无法访问时,Apple Silicon 的 Mac 就会拿到 Intel 版本。通常 Rosetta 会让它照常运行,但直接执行一个程序不会触发 Rosetta 的按需安装提示,所以在没有装 Rosetta 的 Mac 上它就完全无法运行。

    修复已经合并,会在下一个版本中发布。之后安装过程会在 FFmpeg 这一步就停下来并说明是架构不匹配,而不是等到任务运行到一半才失败;修复原因后重试也能正常继续,不需要再手动删除文件夹。

    在新版本发布之前,有两种方式可以现在就用起来,任选其一:

    1. 在终端里运行 softwareupdate --install-rosetta,这样 Intel 版本就能运行了。
    2. 启动 StemDeck 之前设置环境变量 STEMDECK_FFMPEG_URL,指向一个 Apple Silicon 版本的 FFmpeg。

    另外说明一下,让 StemDeck 自己就能取到 Apple Silicon 版本,是 #642 要解决的事情,那个问题还开着。

    如果你愿意,可以关注 @stemdeckapp 获取后续更新。新版本发布后再试一下,有任何问题欢迎随时告诉我。

    后面进行了以下尝试:安装完成后,我手动下载了github 上shaka project 的ffmpeg的两个文件进行替换,目前是可以正常运行的 。感谢你的回复让我找到了解决办法。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions