2

I have a fresh install of Ubuntu 19.04 and I am unable to play a MP4 video in Totem. Following the suggestion to install the necessary decoder was unsuccessful. Which codecs must I install to play this video file, which uses a H.264 (High Profile) video codec and a MPEG-4 AAC audio codec?

During the install I checked the box to install third-party graphics software and additional media formats:

installer options screenshot

I have the main, universe, restricted, and multiverse repositories enabled.

I have multiple gstreamer packages and codecs installed already:

tom@desktop:~$ apt list --installed | grep gstreamer
gir1.2-gstreamer-1.0/disco,now 1.15.90-1ubuntu1 amd64 [installed,automatic]
gstreamer1.0-alsa/disco,now 1.15.90-1 amd64 [installed,automatic]
gstreamer1.0-clutter-3.0/disco,now 3.0.27-1 amd64 [installed,automatic]
gstreamer1.0-gl/disco,now 1.15.90-1 amd64 [installed,automatic]
gstreamer1.0-gtk3/disco,now 1.15.90-1ubuntu1 amd64 [installed,automatic]
gstreamer1.0-libav/disco,now 1.15.90-1 amd64 [installed,automatic]
gstreamer1.0-packagekit/disco,now 1.1.12-5 amd64 [installed,automatic]
gstreamer1.0-plugins-bad/disco,now 1.15.90-1ubuntu1 amd64 [installed,automatic]
gstreamer1.0-plugins-base-apps/disco,now 1.15.90-1 amd64 [installed,automatic]
gstreamer1.0-plugins-base/disco,now 1.15.90-1 amd64 [installed,automatic]
gstreamer1.0-plugins-good/disco,now 1.15.90-1ubuntu1 amd64 [installed,automatic]
gstreamer1.0-plugins-ugly/disco,now 1.15.90-1 amd64 [installed,automatic]
gstreamer1.0-pulseaudio/disco,now 1.15.90-1ubuntu1 amd64 [installed,automatic]
gstreamer1.0-tools/disco,now 1.15.90-1ubuntu1 amd64 [installed,automatic]
gstreamer1.0-vaapi/disco-updates,now 1.15.90-1ubuntu1 amd64 [installed,automatic]
gstreamer1.0-x/disco,now 1.15.90-1 amd64 [installed,automatic]
libgstreamer-gl1.0-0/disco,now 1.15.90-1 amd64 [installed,automatic]
libgstreamer-plugins-bad1.0-0/disco,now 1.15.90-1ubuntu1 amd64 [installed,automatic]
libgstreamer-plugins-base1.0-0/disco,now 1.15.90-1 amd64 [installed,automatic]
libgstreamer-plugins-good1.0-0/disco,now 1.15.90-1ubuntu1 amd64 [installed,automatic]
libgstreamer1.0-0/disco,now 1.15.90-1ubuntu1 amd64 [installed,automatic]
libreoffice-avmedia-backend-gstreamer/disco-updates,disco-security,now 1:6.2.5-0ubuntu0.19.04.1 amd64 [installed,automatic]

I have Totem installed, with the default packages and plugins:

tom@desktop:~$ apt list --installed | grep totem
gir1.2-totem-1.0/disco,now 3.32.0-1ubuntu1 amd64 [installed,automatic]
gir1.2-totemplparser-1.0/disco,now 3.26.3-1ubuntu1 amd64 [installed,automatic]
libtotem-plparser-common/disco,disco,now 3.26.3-1ubuntu1 all [installed,automatic]
libtotem-plparser18/disco,now 3.26.3-1ubuntu1 amd64 [installed,automatic]
libtotem0/disco,now 3.32.0-1ubuntu1 amd64 [installed,automatic]
totem-common/disco,disco,now 3.32.0-1ubuntu1 all [installed,automatic]
totem-plugins/disco,now 3.32.0-1ubuntu1 amd64 [installed,automatic]
totem/disco,now 3.32.0-1ubuntu1 amd64 [installed,automatic]

I am not installing ubuntu-restricted-extras because I do not want the extra packages (Microsoft fonts, etc...) but I have manually installed the AV codecs (libavcodec-extra libavcodec-extra58) which are included with it:

tom@desktop:~$ apt-cache depends ubuntu-restricted-extras
ubuntu-restricted-extras
  Depends: ubuntu-restricted-addons
  Recommends: libavcodec-extra
    libavcodec-extra58
  Recommends: ttf-mscorefonts-installer
  Recommends: unrar

I note I can play back the video file no problem by dragging it from Nautilus into an empty Firefox or Chromium tab, but Totem will not play it.

When I click the "Find in Ubuntu Software" button, Ubuntu Software displays the message "Unable to Find Requested Software" (This last bit is probably a bug but I don't mind, I just need to know which packages to manually install). Any suggestions please? How do I play this file in Totem on a fresh 19.04 install?

Totem error screenshot

Ubuntu Software error message

Edit: Upon further troubleshooting, I have discovered that Totem will play the same files if they are in MKV container format instead of MP4. I use youtube-dl (latest version, not from the repos) to download BBC iPlayer videos. I can set the --merge-output-format mkv option and play the downloaded file. Without that option it outputs to an MP4 which I cannot play. This is an OK workaround, but I'd love to know what exactly is interfering with MP4 playback and fix that.

If you are in an area served by iPlayer and wish to test, I used this short three-minute video https://www.bbc.co.uk/iplayer/episode/p07hlmxr/the-news-explained-a-tale-of-two-tankers which downloads the files The_News_Explained_A_Tale_of_Two_Tankers.fstream-uk-iptv_streaming_concrete_combined_hd_mf_limelight_uk_dash_https-video=5070000.mp4 and The_News_Explained_A_Tale_of_Two_Tankers.fstream-uk-iptv_streaming_concrete_combined_hd_mf_limelight_uk_dash_https-audio_eng_1=128000.m4a, then merges them into MP4 or MKV.

Output of vainfo command (from comments):

error: XDG_RUNTIME_DIR not set in the environment.
libva info: VA-API version 1.4.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/nouveau_drv_video.so
libva info: Found init function __vaDriverInit_1_4
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.4 (libva 2.4.0)
vainfo: Driver version: Mesa Gallium driver 19.0.2 for NV136
vainfo: Supported profile and entrypoints
      VAProfileNone                   : VAEntrypointVideoProc

Output of vdpauinfo command (from comments):

display: :0   screen: 0
API version: 1
Information string: G3DVL VDPAU Driver Shared Library version 1.0

Video surface:

name   width height types
-------------------------------------------
420    16384 16384  NV12 YV12 
422    16384 16384  UYVY YUYV 
444    16384 16384  Y8U8V8A8 V8U8Y8A8 

Decoder capabilities:

name                        level macbs width height
----------------------------------------------------
MPEG1                          --- not supported ---
MPEG2_SIMPLE                   --- not supported ---
MPEG2_MAIN                     --- not supported ---
H264_BASELINE                  --- not supported ---
H264_MAIN                      --- not supported ---
H264_HIGH                      --- not supported ---
VC1_SIMPLE                     --- not supported ---
VC1_MAIN                       --- not supported ---
VC1_ADVANCED                   --- not supported ---
MPEG4_PART2_SP                 --- not supported ---
MPEG4_PART2_ASP                --- not supported ---
DIVX4_QMOBILE                  --- not supported ---
DIVX4_MOBILE                   --- not supported ---
DIVX4_HOME_THEATER             --- not supported ---
DIVX4_HD_1080P                 --- not supported ---
DIVX5_QMOBILE                  --- not supported ---
DIVX5_MOBILE                   --- not supported ---
DIVX5_HOME_THEATER             --- not supported ---
DIVX5_HD_1080P                 --- not supported ---
H264_CONSTRAINED_BASELINE      --- not supported ---
H264_EXTENDED                  --- not supported ---
H264_PROGRESSIVE_HIGH          --- not supported ---
H264_CONSTRAINED_HIGH          --- not supported ---
H264_HIGH_444_PREDICTIVE       --- not supported ---
HEVC_MAIN                      --- not supported ---
HEVC_MAIN_10                   --- not supported ---
HEVC_MAIN_STILL                --- not supported ---
HEVC_MAIN_12                   --- not supported ---
HEVC_MAIN_444                  --- not supported ---

Output surface:

name              width height nat types
----------------------------------------------------
B8G8R8A8         16384 16384    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8 
R8G8B8A8         16384 16384    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8 
R10G10B10A2      16384 16384    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8 
B10G10R10A2      16384 16384    y  NV12 YV12 UYVY YUYV Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8 

Bitmap surface:

name              width height
------------------------------
B8G8R8A8         16384 16384
R8G8B8A8         16384 16384
R10G10B10A2      16384 16384
B10G10R10A2      16384 16384
A8               16384 16384

Video mixer:

feature name                    sup
------------------------------------
DEINTERLACE_TEMPORAL             y
DEINTERLACE_TEMPORAL_SPATIAL     -
INVERSE_TELECINE                 -
NOISE_REDUCTION                  y
SHARPNESS                        y
LUMA_KEY                         y
HIGH QUALITY SCALING - L1        y
HIGH QUALITY SCALING - L2        -
HIGH QUALITY SCALING - L3        -
HIGH QUALITY SCALING - L4        -
HIGH QUALITY SCALING - L5        -
HIGH QUALITY SCALING - L6        -
HIGH QUALITY SCALING - L7        -
HIGH QUALITY SCALING - L8        -
HIGH QUALITY SCALING - L9        -

parameter name                  sup      min      max
-----------------------------------------------------
VIDEO_SURFACE_WIDTH              y        48     4096
VIDEO_SURFACE_HEIGHT             y        48     4096
CHROMA_TYPE                      y  
LAYERS                           y         0        4

attribute name                  sup      min      max
-----------------------------------------------------
BACKGROUND_COLOR                 y  
CSC_MATRIX                       y  
NOISE_REDUCTION_LEVEL            y      0.00     1.00
SHARPNESS_LEVEL                  y     -1.00     1.00
LUMA_KEY_MIN_LUMA                y  
LUMA_KEY_MAX_LUMA                y
  • 1
    I usually install ubuntu-restricted-addons to avoid ms fonts. You can just check what it wants to pull in with sudo apt-get -s install ubuntu-restricted-addons. – mikewhatever Jul 26 at 21:27
  • I'm guessing ubuntu-restricted-addons is the package offered by the installer because when I try your suggestion I see "ubuntu-restricted-addons is already the newest version (26)". Also I confirm all the media codecs it includes are already installed. – Tom Brossman Jul 27 at 6:23
  • wired dpkg -L gstreamer1.0-plugins-ugly | grep libgstx264 – nobody Jul 28 at 11:29
  • @nobody output:/usr/lib/x86_64-linux-gnu/gstreamer-1.0/libgstx264.so, @andrew.46 Same results after moving the cache file. I've discovered that Totem will play the exact same problem files in MKV container format, something about MP4 breaks playback. – Tom Brossman Jul 29 at 18:31
  • Please can you show vainfo and vdpauinfo . The error message could lead in the false direction. – nobody Jul 30 at 9:29
2

Something wrong with gstreamer1.0-vaapi First make a simulation, please. apt --dry-run purge gstreamer1.0-vaapi because of dependencies.

  • Interesting, it had no dependencies so I purged it and the problem is gone. Any idea what causes this? Also, thank you for helping me. – Tom Brossman Jul 30 at 19:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.