Missing decoder: MPEG-1 System Stream

Questions about Wine on Linux
Locked
slughappy1
Newbie
Newbie
Posts: 4
Joined: Sat Jul 31, 2021 6:35 pm

Missing decoder: MPEG-1 System Stream

Post by slughappy1 »

Hello,

I've tried searching and can't seem to find anything on this issue. I'm trying to play a generic visual novel that has some little 'movies' that get played. Whenever the game attempts to play one of those, I get the following error.

Code: Select all

0024:err:winediag:MIDIMAP_drvOpen No software synthesizer midi port found, Midi sound output probably won't work.
010c:fixme:ver:GetCurrentPackageId (0F98FF20 00000000): stub
0118:err:gstreamer:unknown_type Could not find a filter for caps: "video/mpeg, systemstream=(boolean)true, mpegversion=(int)1"
0024:err:gstreamer:gstdecoder_init_gst Failed to play stream.
0118:err:gstreamer:watch_bus decodebin0: Your GStreamer installation is missing a plug-in.
0118:err:gstreamer:watch_bus ../gst/playback/gstdecodebin2.c(4719): gst_decode_bin_expose (): /GstBin:bin0/GstDecodeBin:decodebin0:
no suitable plugins found:
Missing decoder: MPEG-1 System Stream (video/mpeg, systemstream=(boolean)true, mpegversion=(int)1)

0024:fixme:gstreamer:mpeg_splitter_sink_query_accept Unsupported subtype {e436eb84-524f-11ce-9f53-0020af0ba770}.
0118:err:gstreamer:unknown_type Could not find a filter for caps: "video/mpeg, systemstream=(boolean)true, mpegversion=(int)1"
0024:err:gstreamer:gstdecoder_init_gst Failed to play stream.
0118:err:gstreamer:watch_bus decodebin1: Your GStreamer installation is missing a plug-in.
0118:err:gstreamer:watch_bus ../gst/playback/gstdecodebin2.c(4719): gst_decode_bin_expose (): /GstBin:bin1/GstDecodeBin:decodebin1:
no suitable plugins found:
Missing decoder: MPEG-1 System Stream (video/mpeg, systemstream=(boolean)true, mpegversion=(int)1)

0024:fixme:gstreamer:mpeg_splitter_sink_query_accept Unsupported subtype {e436eb84-524f-11ce-9f53-0020af0ba770}.
0024:fixme:d3dx:D3DXLoadSurfaceFromMemory Unhandled filter 0x5.
After searching around, I came across something that said install 'Combined-Community-Codec-Pack-2015-10-18.exe'. So I tried that and got the same error.

After more searching around, I installed winetricks and tried to install the 'allcodecs'. However, that seems to also error on install

Code: Select all

$ winetricks 
Executing mkdir -p /home/username
------------------------------------------------------
warning: You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Using winetricks 20210206 - sha256sum: 0f21da98811e0bfda16a7d6d6b8e860a9cedbd4e836c7dd9b02f068d3092ee2e with wine-6.0.1 and WINEARCH=win64
winetricks GUI enabled, using zenity 3.32.0
Executing mkdir -p /home/username/.local/share/wineprefixes
Executing w_do_call allcodecs
Executing mkdir -p /home/username/.local/share/wineprefixes
Executing load_allcodecs 
Executing w_do_call dirac
Executing mkdir -p /home/username/.local/share/wineprefixes
Executing load_dirac 
Executing w_do_call vcrun2008
Executing mkdir -p /home/username/.local/share/wineprefixes
Executing load_vcrun2008 
------------------------------------------------------
warning: Checksum for /home/username/.cache/winetricks/vcrun2008/vcredist_x86.exe did not match, retrying download
------------------------------------------------------
Executing cd /home/username/.cache/winetricks/vcrun2008
Downloading https://download.microsoft.com/download/5/D/8/5D8C65CB-C849-4025-8E95-C3966CAFD8AE/vcredist_x86.exe to /home/username/.cache/winetricks/vcrun2008
Executing cd /home/username
------------------------------------------------------
warning: sha256sum mismatch! Rename /home/username/.cache/winetricks/vcrun2008/vcredist_x86.exe and try again.
------------------------------------------------------
I saw that the version of wine that normally installs with ubuntu was old, so I updated to the current version.

Code: Select all

$ wine --version
wine-6.0.1
Any idea how I can fix that missing decoder error?
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: Missing decoder: MPEG-1 System Stream

Post by Bob Wya »

slughappy1 wrote: Sat Jul 31, 2021 6:46 pm ...

Any idea how I can fix that missing decoder error?
@slughappy1

You are probably missing one (or more) native Linux gstreamer plugins.
Wine needs both the 32-bit + 64-bit packages for these gstreamer plugins - for your (unspecified) Linux distribution.

I'm not sure what the minimum necessary gstreamer plugins are for the mpeg1 video decoder. Gentoo certainly installs a whole bunch of plugins! :lol:

If you can access the game videos, you can determine what gstreamer plugins they use by trying to play the files directly:

Code: Select all

gst-play ...
Make sure you have both 32-bit and 64-bit packages for these gstreamer plugins.

Bob
User avatar
dimesio
Moderator
Moderator
Posts: 13202
Joined: Tue Mar 25, 2008 10:30 pm

Re: Missing decoder: MPEG-1 System Stream

Post by dimesio »

Bob Wya wrote: Mon Aug 02, 2021 2:58 pm I'm not sure what the minimum necessary gstreamer plugins are for the mpeg1 video decoder.
It's probably the libav plugin.
slughappy1
Newbie
Newbie
Posts: 4
Joined: Sat Jul 31, 2021 6:35 pm

Re: Missing decoder: MPEG-1 System Stream

Post by slughappy1 »

@Bob Wya

It would appear that I forgot to mention my OS. I running Pop!_OS 21.04 and here are all the gstreamer files installed when using

Code: Select all

sudo apt list --installed

Code: Select all

gstreamer1.0-alsa/hirsute,now 1.18.4-1 amd64 [installed,automatic]
gstreamer1.0-clutter-3.0/hirsute,now 3.0.27-2 amd64 [installed,automatic]
gstreamer1.0-gl/hirsute,now 1.18.4-1 amd64 [installed,automatic]
gstreamer1.0-gtk3/hirsute,now 1.18.4-1ubuntu1 amd64 [installed,automatic]
gstreamer1.0-libav/hirsute,now 1.18.4-1 amd64 [installed]
gstreamer1.0-opencv/hirsute,now 1.18.4-1ubuntu1 amd64 [installed]
gstreamer1.0-pipewire/hirsute,now 0.3.24-3 amd64 [installed,automatic]
gstreamer1.0-plugins-bad/hirsute,now 1.18.4-1ubuntu1 amd64 [installed]
gstreamer1.0-plugins-base-apps/hirsute,now 1.18.4-1 amd64 [installed,automatic]
gstreamer1.0-plugins-base/hirsute,now 1.18.4-1 amd64 [installed]
gstreamer1.0-plugins-base/hirsute,now 1.18.4-1 i386 [installed,automatic]
gstreamer1.0-plugins-good/hirsute,now 1.18.4-1ubuntu1 amd64 [installed]
gstreamer1.0-plugins-ugly/hirsute,now 1.18.4-1 amd64 [installed]
gstreamer1.0-pocketsphinx/hirsute,now 0.8.0+real5prealpha+1-13ubuntu1 amd64 [installed]
gstreamer1.0-pulseaudio/hirsute,now 1.18.4-1ubuntu1 amd64 [installed,automatic]
gstreamer1.0-tools/hirsute,now 1.18.4-1 amd64 [installed,automatic]
gstreamer1.0-vaapi/hirsute,now 1.18.4-1 amd64 [installed,automatic]
gstreamer1.0-x/hirsute,now 1.18.4-1 amd64 [installed,automatic]
What do you mean when you say I can determine what plugin is used? When I try and use

Code: Select all

gst-play-1.0
on any of the files, it just plays as expected of any video player.

@dimesio

Here are all of the files installed that start with 'libav'

Code: Select all

libavahi-client3/hirsute-security,hirsute-updates,now 0.8-5ubuntu3.1 amd64 [installed,automatic]
libavahi-client3/hirsute-security,hirsute-updates,now 0.8-5ubuntu3.1 i386 [installed,automatic]
libavahi-common-data/hirsute-security,hirsute-updates,now 0.8-5ubuntu3.1 amd64 [installed,automatic]
libavahi-common-data/hirsute-security,hirsute-updates,now 0.8-5ubuntu3.1 i386 [installed,automatic]
libavahi-common3/hirsute-security,hirsute-updates,now 0.8-5ubuntu3.1 amd64 [installed,automatic]
libavahi-common3/hirsute-security,hirsute-updates,now 0.8-5ubuntu3.1 i386 [installed,automatic]
libavahi-core7/hirsute-security,hirsute-updates,now 0.8-5ubuntu3.1 amd64 [installed,automatic]
libavahi-glib1/hirsute-security,hirsute-updates,now 0.8-5ubuntu3.1 amd64 [installed,automatic]
libavc1394-0/hirsute,now 0.5.4-5 amd64 [installed,automatic]
libavcodec-dev/hirsute,now 7:4.3.2-0+deb11u1ubuntu1 amd64 [installed]
libavcodec-extra58/hirsute,now 7:4.3.2-0+deb11u1ubuntu1 amd64 [installed,automatic]
libavcodec-extra/hirsute,now 7:4.3.2-0+deb11u1ubuntu1 amd64 [installed]
libavdevice-dev/hirsute,now 7:4.3.2-0+deb11u1ubuntu1 amd64 [installed]
libavdevice58/hirsute,now 7:4.3.2-0+deb11u1ubuntu1 amd64 [installed,automatic]
libavfilter-dev/hirsute,now 7:4.3.2-0+deb11u1ubuntu1 amd64 [installed,automatic]
libavfilter7/hirsute,now 7:4.3.2-0+deb11u1ubuntu1 amd64 [installed,automatic]
libavformat-dev/hirsute,now 7:4.3.2-0+deb11u1ubuntu1 amd64 [installed]
libavformat58/hirsute,now 7:4.3.2-0+deb11u1ubuntu1 amd64 [installed,automatic]
libavresample4/hirsute,now 7:4.3.2-0+deb11u1ubuntu1 amd64 [installed,automatic]
libavutil-dev/hirsute,now 7:4.3.2-0+deb11u1ubuntu1 amd64 [installed]
libavutil56/hirsute,now 7:4.3.2-0+deb11u1ubuntu1 amd64 [installed,automatic]
Am I missing something specific for libav?
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: Missing decoder: MPEG-1 System Stream

Post by Bob Wya »

slughappy1 wrote: Wed Aug 04, 2021 9:32 am

It would appear that I forgot to mention my OS. I running Pop!_OS 21.04 and here are all the gstreamer files installed when using

Code: Select all

sudo apt list --installed

Code: Select all

...
gstreamer1.0-libav/hirsute,now 1.18.4-1 amd64 [installed]
...
You don't have:

Code: Select all

gstreamer1.0-libav/hirsute,now 1.18.4-1 i386 [installed]
- the 32-bit gstreamer libav plugin package installed.

Wine requires both the 32-bit = i386 and 64-bit = amd64 versions of dependency packages to be installed (as I previously stated).
slughappy1 wrote: Wed Aug 04, 2021 9:32 am What do you mean when you say I can determine what plugin is used? When I try and use

Code: Select all

gst-play-1.0
on any of the files, it just plays as expected of any video player.
The gst-play terminal log literally tells you what plugins gstreamer is loading.
Of course this will work - as it will load and only use the native 64-bit version of the gstreamer plugins your A/V file needs. You will also need the 32-bit version of these gstreamer plugin package(s) - in order for Wine to play them back correctly.

Hope that's clear! 8)
Bob
slughappy1
Newbie
Newbie
Posts: 4
Joined: Sat Jul 31, 2021 6:35 pm

Re: Missing decoder: MPEG-1 System Stream

Post by slughappy1 »

Hey Bob,

That makes sense, however I don't see any way to install the 32-bit version as there is only one gstreamer1.0-libav to select from: https://i.imgur.com/SWmjkvm.png

I even tried manually downloading and installing the deb from here,https://packages.ubuntu.com/hirsute/gstreamer1.0-libav. But when I try to install the i386 version, it shows that it's already installed and only gives me the uninstall option.
slughappy1
Newbie
Newbie
Posts: 4
Joined: Sat Jul 31, 2021 6:35 pm

Re: Missing decoder: MPEG-1 System Stream

Post by slughappy1 »

I was able to figure this out and thought I would note what I did. Turns out that there is a command to install the 32-bit versions, so I ran the following commands and the games play their videos just fine. No more errors.

Code: Select all

sudo apt install gstreamer1.0-libav:i386
sudo apt install gstreamer1.0-plugins-bad:i386
sudo apt install gstreamer1.0-plugins-base:i386
sudo apt install gstreamer1.0-plugins-good:i386
User avatar
Bob Wya
Level 12
Level 12
Posts: 3068
Joined: Sat Oct 16, 2010 7:40 pm

Re: Missing decoder: MPEG-1 System Stream

Post by Bob Wya »

That's great... Nicely done! 8)

Bob
Locked