Cannot play mp4 videos in VLC

Hello,

I can’t get VLC to play mp4 videos on my Leap 42.1 installation, only audio (sometimes).

I can play mp4 videos in google chrome.

I tried this advice, switching system packages to packman, with no luck, here are my repos:

#  | Alias                               | Name                              | Enabled | GPG Check | Refresh | Priority
---+-------------------------------------+-----------------------------------+---------+-----------+---------+---------
 1 | google-chrome                       | google-chrome                     | Yes     | (r ) Yes  | Yes     |   99    
 2 | http-download.opensuse.org-7d03fc80 | multimedia:apps                   | Yes     | (r ) Yes  | Yes     |   99    
 3 | http-download.opensuse.org-89a6f395 | multimedia:libs                   | Yes     | (r ) Yes  | Yes     |   99    
 4 | http-download.opensuse.org-a8cd3d75 | X11:XOrg                          | Yes     | (r ) Yes  | Yes     |   99    
 5 | openSUSE-42.1-0                     | openSUSE-42.1-0                   | Yes     | (r ) Yes  | Yes     |   99    
 6 | packman                             | packman                           | Yes     | (r ) Yes  | Yes     |   99    
11 | repo-non-oss                        | openSUSE-Leap-42.1-Non-Oss        | Yes     | (r ) Yes  | Yes     |   99    
13 | repo-update                         | openSUSE-Leap-42.1-Update         | Yes     | (r ) Yes  | Yes     |   99    
14 | repo-update-non-oss                 | openSUSE-Leap-42.1-Update-Non-Oss | Yes     | (r ) Yes  | Yes     |   99    

Please help!

GO to Yast software management and search for vlc then check the version tab (bottom right) to be sure all vlc packages are really coming from packman

And check that the package vlc-codecs is installed.

Btw, you should either remove multimedia:libs and multimedia:apps completely, or give Packman a higher priority (i.e. lower priority number).
The way your repos are setup is only asking for trouble IMHO as multimedia:xxx often have newer (but crippled) versions than Packman as it is the development project for Factory.

Thanks gogalthorp,

I checked and all vlc packages were from packman — except vlc-codec-gstreamer which was available only from multimedia:libs, I removed it.

Unluckily still I can’t open mp4 videos — to be sure the file wasn’t corrupted, I downloaded a sample from here — I just get audio and sort of a green screen.

# Status             Package                        | Summary                                  | Installed (Available)     |       Size

[Keep]               libvlc5                        | Shared library libvlc                    | 2.2.4-30.3                |  131.5 KiB
[Keep]               libvlccore8                    | Shared library libvlc                    | 2.2.4-30.3                |    1.0 MiB
[Keep]               vlc                            | Video Lan Client multimedia player       | 2.2.4-30.3                |  399.1 KiB
[Keep]               vlc-codecs                     | VLC: VideoLAN Client - Codec extension   | 2.2.4-30.3                |  529.6 KiB
[Keep]               vlc-noX                        | VLC: VideoLAN Client - without X depe... | 2.2.4-30.3                |   11.5 MiB
[Keep]               vlc-noX-lang                   | Languages for package vlc                | 2.2.4-30.3                |   31.7 MiB
[Keep]               vlc-qt                         | VLC: VideoLAN Client - Qt interface      | 2.2.4-30.3                |    3.0 MiB
[Do Not Install]     libvlc-qt-debugsource          | Debug sources for package libvlc-qt      | (0.10.0-6.3)              |  307.8 KiB
[Do Not Install]     libvlc-qt-devel                | Include Files and Libraries Mandatory... | (0.10.0-6.3)              |   98.9 KiB
[Do Not Install]     libvlc-qt-doc                  | Dcoumentation for libvlc-qt              | (0.10.0-6.3)              |  220.1 KiB
[Do Not Install]     libvlc-qt-qml0_10              | Qt and libvlc connector library          | (0.10.0-6.3)              |   66.1 KiB
[Do Not Install]     libvlc-qt-qml0_10-debuginfo    | Debug information for package libvlc-... | (0.10.0-6.3)              |    1.3 MiB
[Do Not Install]     libvlc-qt-widgets0_10          | Qt and libvlc connector library          | (0.10.0-6.3)              |   86.1 KiB
[Do Not Install]     libvlc-qt-widgets0_10-debuginfo | Debug information for package libvlc-... | (0.10.0-6.3)              |    1.1 MiB
[Do Not Install]     libvlc-qt0_10                  | Qt and libvlc connector library          | (0.10.0-6.3)              |  154.1 KiB
[Do Not Install]     libvlc-qt0_10-debuginfo        | Debug information for package libvlc-... | (0.10.0-6.3)              |    2.0 MiB
[Do Not Install]     libvlc5-debuginfo              | Debug information for package libvlc5    | (2.2.4-209.1)             |  490.6 KiB
[Do Not Install]     libvlc6                        | Shared library libvlc                    | (3.0.0+git8687-3.3)       |  139.7 KiB
[Do Not Install]     libvlc6-debuginfo              | Debug information for package libvlc6    | (3.0.0+git8687-3.3)       |  529.2 KiB
[Do Not Install]     libvlccore8-debuginfo          | Debug information for package libvlcc... | (2.2.4-209.1)             |    3.3 MiB
[Do Not Install]     libvlccore9                    | Shared library libvlc                    | (3.0.0+git8687-3.3)       |    1.1 MiB
[Do Not Install]     libvlccore9-debuginfo          | Debug information for package libvlcc... | (3.0.0+git8687-3.3)       |    3.6 MiB
[Do Not Install]     npapi-vlc                      | Enables VLC inside browsers              | (2.2.0-1.2)               |  184.7 KiB
[Do Not Install]     npapi-vlc-beta                 | Enables VLC inside browsers              | (2.2.0-1.2)               |  184.7 KiB
[Do Not Install]     npapi-vlc-beta-debuginfo       | Debug information for package npapi-v... | (2.2.0-1.2)               |  706.4 KiB
[Do Not Install]     npapi-vlc-beta-debugsource     | Debug sources for package npapi-vlc-beta | (2.2.0-1.2)               |  238.3 KiB
[Do Not Install]     npapi-vlc-debuginfo            | Debug information for package npapi-vlc  | (2.2.0-1.2)               |  706.4 KiB
[Do Not Install]     npapi-vlc-debugsource          | Debug sources for package npapi-vlc      | (2.2.0-1.2)               |  238.3 KiB
[Do Not Install]     nulloy-vlc                     | VLC plugin for nulloy                    | (0.8.2-9.27)              |   99.9 KiB
[Do Not Install]     phonon-backend-vlc             | Phonon VLC Backend                       | (0.9.0-3.3)               |  306.2 KiB
[Do Not Install]     phonon-backend-vlc-debuginfo   | Debug information for package phonon-... | (0.9.0-3.3)               |    3.8 MiB
[Do Not Install]     phonon-backend-vlc-debugsource | Debug sources for package phonon-back... | (0.9.0-3.3)               |  298.2 KiB
[Do Not Install]     phonon4qt5-backend-vlc         | Phonon VLC Backend                       | (0.9.0-2.3)               |  326.2 KiB
[Do Not Install]     phonon4qt5-backend-vlc-debuginfo | Debug information for package phonon4... | (0.9.0-2.3)               |    5.8 MiB
[Do Not Install]     phonon4qt5-backend-vlc-debugsource | Debug sources for package phonon4qt5-... | (0.9.0-2.3)               |  329.0 KiB
[Do Not Install]     vlc-beta                       | Video Lan Client multimedia player (p... | (3.0.0+git8687-3.3)       |  415.6 KiB
[Do Not Install]     vlc-beta-codecs                | VLC: VideoLAN Client - Codec extension   | (3.0.0+git8687-3.3)       |  505.9 KiB
[Do Not Install]     vlc-beta-codecs-debuginfo      | Debug information for package vlc-bet... | (3.0.0+git8687-3.3)       |    1.7 MiB
[Do Not Install]     vlc-beta-debuginfo             | Debug information for package vlc-beta   | (3.0.0+git8687-3.3)       |  975.1 KiB
[Do Not Install]     vlc-beta-debugsource           | Debug sources for package vlc-beta       | (3.0.0+git8687-3.3)       |   19.9 MiB
[Do Not Install]     vlc-beta-devel                 | Video Lan Client Development system      | (3.0.0+git8687-3.3)       |  911.6 KiB
[Do Not Install]     vlc-beta-noX                   | VLC: VideoLAN Client - without X depe... | (3.0.0+git8687-3.3)       |   12.7 MiB
[Do Not Install]     vlc-beta-noX-debuginfo         | Debug information for package vlc-bet... | (3.0.0+git8687-3.3)       |   49.9 MiB
[Do Not Install]     vlc-beta-noX-lang              | Languages for package vlc-beta           | (3.0.0+git8687-3.3)       |   25.3 MiB
[Do Not Install]     vlc-beta-qt                    | VLC: VideoLAN Client - Qt interface      | (3.0.0+git8687-3.3)       |    3.0 MiB
[Do Not Install]     vlc-beta-qt-debuginfo          | Debug information for package vlc-bet... | (3.0.0+git8687-3.3)       |   39.4 MiB
[Do Not Install]     vlc-codec-gstreamer            | VLC: VideoLAN Client - Decode using G... | (2.2.4-209.1)             |   26.6 KiB
[Do Not Install]     vlc-codec-gstreamer-debuginfo  | Debug information for package vlc-cod... | (2.2.4-209.1)             |   75.9 KiB
[Do Not Install]     vlc-codecs-debuginfo           | Debug information for package vlc-codecs | (2.2.4-30.3)              |    1.7 MiB
[Do Not Install]     vlc-debuginfo                  | Debug information for package vlc        | (2.2.4-209.1)             |  821.3 KiB
[Do Not Install]     vlc-debugsource                | Debug sources for package vlc            | (2.2.4-209.1)             |   17.8 MiB
[Do Not Install]     vlc-devel                      | Video Lan Client Development system      | (2.2.4-209.1)             |  750.0 KiB
[Do Not Install]     vlc-gnome                      | VLC: VideoLAN Client - Gnome Access M... | (2.2.4-30.3)              |   10.2 KiB
[Do Not Install]     vlc-gnome-debuginfo            | Debug information for package vlc-gnome  | (2.2.4-30.3)              |   29.2 KiB
[Do Not Install]     vlc-noX-debuginfo              | Debug information for package vlc-noX    | (2.2.4-209.1)             |   39.5 MiB
[Do Not Install]     vlc-qt-debuginfo               | Debug information for package vlc-qt     | (2.2.4-209.1)             |   35.6 MiB

Maybe related to hardware decoding.

What graphics card/driver are you using?
Do you have vdpau-video and/or libvdpau_va_gl1 installed?
Does switching the output device to “XVideo Output (XCB)” help? (or something else, but not VDPAU)

Try to run vlc in a terminal window and post the output.

Thanks wolfi323,

I tried changing output device, no luck.

  • libvdpau_va_gl1 is
    installed - vdpau-video is not
    installed

Here the output of cvlc SampleVideo_720x480_1mb.mp4

[00000000021b9ea8] pulse audio output error: PulseAudio server connection failure: Connection refused[0000000002223fc8] dummy interface: using the dummy interface module...
libva info: VA-API version 0.39.2
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib64/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_0_39
libva info: va_openDriver() returns 0
[00007f9ca8c12bd8] avcodec decoder: Using OpenGL/VAAPI backend for VDPAU for hardware decoding.
libvdpau-va-gl: Decoder::Render_h264(): no NAL header
WARNING: Invalid RefPicListX] entry!!! It is not included in DPB
libvdpau-va-gl: Decoder::Render_h264(): no NAL header
libvdpau-va-gl: Decoder::Render_h264(): no NAL header
libvdpau-va-gl: Decoder::Render_h264(): no NAL header
...

Here about the card:

00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09) (prog-if 00 [VGA controller])
    Subsystem: Samsung Electronics Co Ltd Device c652
    Flags: bus master, fast devsel, latency 0, IRQ 25
    Memory at f0000000 (64-bit, non-prefetchable) [size=4]
    Memory at e0000000 (64-bit, prefetchable) [size=256]
    I/O ports at 3000 [size=64]
    Expansion ROM at <unassigned> [disabled]
    Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
    Capabilities: [d0] Power Management version 2
    Capabilities: [a4] PCI Advanced Features
    Kernel driver in use: i915
    Kernel modules: i915

Does the fact I can play mp4 in google-chrome matters?

As a note: on this notebook I passed from Opensuse 12.3 to 42.1 (full reinstall from scratch) and on old 12.3 never had any issue playing videos in VLC.

Thank you all for your support

P.S.: I gave packman repo an higher priority[/size][/size][/size]

Try to uninstall libvdpau_va_gl1 as a test. Other people using intel have had VLC problems with that in the past, and your output does point to it:

libvdpau-va-gl: Decoder::Render_h264(): no NAL header
WARNING: Invalid RefPicListX] entry!!! It is not included in DPB
libvdpau-va-gl: Decoder::Render_h264(): no NAL header
libvdpau-va-gl: Decoder::Render_h264(): no NAL header
libvdpau-va-gl: Decoder::Render_h264(): no NAL header

It may be a problem in how VLC uses VDPAU, it may be a limitation/bug in libvdpau_va_gl1, or it may just be that your graphics chip doesn’t “like” the video stream (with VDPAU/libvdpau_va_gl1 the video stream is decoded by the GPU, not CPU).

Most players (including VLC I think) should support VA-API (intel’s hardware decoding) natively anyway.

Does the fact I can play mp4 in google-chrome matters?

Not really.
Chrome has everything built in (being closed-source), and I don’t know if it uses VDPAU or not.

As a note: on this notebook I passed from Opensuse 12.3 to 42.1 (full reinstall from scratch) and on old 12.3 never had any issue playing videos in VLC.

12.3 didn’t have libvdpau_va_gl1 yet AFAIR.

You, Sir, made my day!

I removed libvdpau_va_gl1 and now I can play mp4 video files!

Thank you very much!

P.S.: should I change topic title to [SOLVED] or something like that?

Great! :slight_smile:

P.S.: should I change topic title to [SOLVED] or something like that?

You can if you want to, but it’s only possible with new posts.
I did that in this reply though. :wink:

Hey, one more question:

Today updating I get this:

> sudo zypper up...]


The following 14 package updates will NOT be installed:
  gstreamer-0_10 gstreamer-0_10-lang gstreamer-0_10-plugin-gnomevfs gstreamer-0_10-plugins-base gstreamer-0_10-plugins-base-lang
  libgstapp-0_10-0 libgstinterfaces-0_10-0 libgstreamer-0_10-0 libvlc5 libvlccore8 vlc vlc-noX vlc-noX-lang vlc-qt


The following NEW package is going to be installed:
  vlc-codec-gstreamer


The following 3 applications are going to be REMOVED:
  "GStreamer Multimedia Codecs" "GStreamer Multimedia Codecs - Base" "GStreamer Multimedia Codecs - Extra"


The following 52 packages are going to be upgraded:
  cdda2wav cdrecord gstreamer gstreamer-lang gstreamer-plugins-bad gstreamer-plugins-bad-lang gstreamer-plugins-base
  gstreamer-plugins-base-lang gstreamer-plugins-good gstreamer-plugins-good-lang libgbm1 libgstadaptivedemux-1_0-0
  libgstallocators-1_0-0 libgstapp-1_0-0 libgstaudio-1_0-0 libgstbadaudio-1_0-0 libgstbadbase-1_0-0 libgstbadvideo-1_0-0
  libgstbasecamerabinsrc-1_0-0 libgstcodecparsers-1_0-0 libgstfft-1_0-0 libgstgl-1_0-0 libgstmpegts-1_0-0 libgstpbutils-1_0-0
  libgstphotography-1_0-0 libgstreamer-1_0-0 libgstriff-1_0-0 libgstrtp-1_0-0 libgstrtsp-1_0-0 libgstsdp-1_0-0 libgsttag-1_0-0
  libgsturidownloader-1_0-0 libgstvideo-1_0-0 libgstwayland-1_0-0 libopencv3_1 libscg1_0 libschily1_0 libvdpau_nouveau libvulkan_intel
  libx264-148 Mesa Mesa-libEGL1 Mesa-libEGL-devel Mesa-libGL1 Mesa-libglapi0 Mesa-libGL-devel Mesa-libGLESv2-2 Mesa-libva mkisofs
  MozillaThunderbird xorg-x11-server xorg-x11-server-extra

Which later complains:

Detected 1 file conflict:

File /usr/lib64/vlc/plugins/codec/libgstdecode_plugin.so
  from install of
     vlc-codec-gstreamer-2.2.4-209.1.x86_64 (multimedia:libs)
  conflicts with file from package
     vlc-codecs-2.2.4-30.3.x86_64 (@System)


File conflicts happen when two packages attempt to install files with the same name but different contents. If you continue, conflicting files will be replaced losing the previous content.
Continue? [yes/no] (no):

I’m quite sure I have NOT to replace vlc-codecs, I’m also quite sure I already removed vlc-codec-gstreamer time ago.

How do I exit this loop?

Apparently one of the other updates causes vlc-codec-gstreamer (from the multimedia:libs repo) to be installed.

And apparently Packman’s vlc has the gstreamer codec packaged in the vlc-codecs package:

Detected 1 file conflict:

File /usr/lib64/vlc/plugins/codec/libgstdecode_plugin.so
  from install of
     vlc-codec-gstreamer-2.2.4-209.1.x86_64 (multimedia:libs)
  conflicts with file from package
     vlc-codecs-2.2.4-30.3.x86_64 (@System)

So that same file is contained in vlc-codec-gstreamer from multimedia:libs (which is going to be installed), but it is also in (Packman’s) vlc-codecs packages that’s already installed.
Accepting to install vlc-codec-gstreamer will overwrite the file from vlc-codecs (with a maybe incompatible version).

How do I exit this loop?

Lock gstreamer-vlc-codec (either “zypper al gstreamer-vlc-codec”, or “Taboo” it in YaST) so that it won’t get installed automatically, or use the “–no-recommends” switch.

Or remove the multimedia:libs repo as I already recommended. As mentioned this can easily lead to problems.

vlc-gstreamer-codec is only available in Factory/Tumbleweed (and 42.2 which hasn’t been released yet), so Packman only provides it for Factory/Tumbleweed (and 42.2) as well.
Maybe it would be good to change their “standard” vlc package for older distributions too, but there has not really been a need so far.

When I upgraded from scratch to 42.1 I found some packages I had in previous installation 12.3 were available from multimedia repos only, that’s why I added them.

if I do:

> zypper pa -ir multimedia:libs | head
Loading repository data...
Reading installed packages...
S | Repository      | Name                                       | Version                       | Arch  
--+-----------------+--------------------------------------------+-------------------------------+-------
i | @System         | AdobeICCProfiles                           | 2.0-137.2                     | noarch
i | @System         | ImageMagick                                | 6.8.8.1-18.2                  | x86_64
i | @System         | Mesa                                       | 12.0.1-582.4                  | x86_64
i | @System         | Mesa-libEGL-devel                          | 12.0.1-582.4                  | x86_64
i | @System         | Mesa-libEGL1                               | 12.0.1-582.4                  | x86_64
i | @System         | Mesa-libGL-devel                           | 12.0.1-582.4                  | x86_64
...]

I get a veeery long list — 2.200+ lines — of packages which seem to belong to multimedia:libs

How to find really which packages cannot be sourced in packman or openSUSE-42.1-0?

What do you suggest? I’m willing to remove multimedia repos if I’m not loosing certain apps/libs I need for work.

Thank you

“zypper pa -ir xxx” doesn’t work as you (or I’d) expect.
It shows all installed packages.
Maybe that’s a bug, no idea.

“zypper se -ir multimedia:libs” should do what you want though.

The ones you list here are not available in multimedia:libs at all, but rather in the standard repos.
The “@System” as repo normally means that they are installed on your system, but not available in any configured repo (in this case it probably means that they are installed but not available in multimedia:libs).

How to find really which packages cannot be sourced in packman or openSUSE-42.1-0?

I don’t really understand that question, sorry.

If you mean to find all packages that are only available in multimedia:libs and not anywhere else, I would suggest to use YaST’s View->Repository. Selecting a repository on the left will only show packages available there, you can select a package and click on “Versions” below to see from which repo it comes and which other versions from which repos are available.

And/or just remove or disable multimedia:libs, all packages that are only available there will get “orphaned” (installed, but not available in any repo) then.
Running “zypper pa --orphaned” or clicking on “View”->"Repositorys, selecting the “@System” repo and choosing “Unmaintained” as Filter should show all those “orphaned” packages.

What do you suggest? I’m willing to remove multimedia repos if I’m not loosing certain apps/libs I need for work.

If you remove it, you will not lose applications already installed from there.

The question is what do you need.
Most multimedia stuff should be available from Packman (in an uncrippled form).

I checked in YaST and, as you anticipated, about all libs but 1 — xorriso, I wonder where it came from — are available elsewhere than multimedia:libs and multimedia:apps, either openSUSE-42.1-0 or packman.

Well, at this point I need to (massively?) switch vendor for packages installed from multimedia:* to whatever other repo available.

I guess I cannot just pass the list in YaST and switch package per package to another available vendor of my choice…

Or can I?

xorriso is part of the package libburnia-tools that’s included in Leap 42.1 in the standard repos.

That package just has been split up into separate smaller packages recently in Factory and multimedia:libs (the development project for Factory).

But if you try to uninstall it, YaST or zypper should automatically install the former if something needs it.

Well, at this point I need to (massively?) switch vendor for packages installed from multimedia:* to whatever other repo available.

I guess I cannot just pass the list in YaST and switch package per package to another available vendor of my choice…

Or can I?

Yes, you can.
As mentioned, use the “Repositories” view, click on “Versions” below the package list, and you can choose from which repo the selected package should be installed.

Or just remove the repo and run “zypper dup”, that will install the latest version of each package from whatever repo it is available.
You also have the X11:XOrg repo in your list, so if you do not want to install the full graphics stack from there better disable/remove it first.

It may be necessary to do a full switch to Packman again afterwards, although probably not as Packman normally has the latest versions that are higher than what is in the standard repos.
You could of course also give Packman a higher priority (lower priority number) to make zypper prefer the packages from there (for the “zypper dup” or whenever a new package is installed, it has no effect on updates which never will change the repo).

Ok done, thanks again for your help.

Of course also the codecs clash did not came up again.
Now it’s really, really neat :slight_smile:

> zypper lr -P
#  | Alias                     | Name                                    | Enabled | GPG Check | Refresh | Priority
---+---------------------------+-----------------------------------------+---------+-----------+---------+---------
 1 | google-chrome             | google-chrome                           | Yes     | (r ) Yes  | Yes     |   10    
 3 | packman                   | packman                                 | Yes     | (r ) Yes  | Yes     |   11    
 2 | openSUSE-42.1-0           | openSUSE-42.1-0                         | Yes     | (r ) Yes  | Yes     |   99    
 4 | repo-debug                | openSUSE-Leap-42.1-Debug                | No      | ----      | Yes     |   99    
 5 | repo-debug-non-oss        | openSUSE-Leap-42.1-Debug-Non-Oss        | No      | ----      | Yes     |   99    
 6 | repo-debug-update         | openSUSE-Leap-42.1-Update-Debug         | No      | ----      | Yes     |   99    
 7 | repo-debug-update-non-oss | openSUSE-Leap-42.1-Update-Debug-Non-Oss | No      | ----      | Yes     |   99    
 8 | repo-non-oss              | openSUSE-Leap-42.1-Non-Oss              | Yes     | (r ) Yes  | Yes     |   99    
 9 | repo-source               | openSUSE-Leap-42.1-Source               | No      | ----      | Yes     |   99    
10 | repo-update               | openSUSE-Leap-42.1-Update               | Yes     | (r ) Yes  | Yes     |   99    
11 | repo-update-non-oss       | openSUSE-Leap-42.1-Update-Non-Oss       | Yes     | (r ) Yes  | Yes     |   99