Librem video playback questions

I have some questions about video playback quality on Purism laptops. I’m still waiting for something that can play 4K60 with proper color tones and smoothness. I have yet to see any Linux video solution that doesn’t utterly suck at 1080p, let alone this more modern resolution. Questions are:

  1. Are you able to play back MP4/MOV/HEVC/whatever video format without skipping frames? With what Purism laptop specs? In general, the Linux-based players I’ve seen will cause the video to splinter into random green fragments, freeze frame for most of the playback time, fail to update the mouse cursor when it moves over the video, randomly chop or silence the soundtrack, and end up in other failure modes. These failures are widespread, across a variety of CPU/GPU combos, and occur within seconds to minutes. It’s pure garbage, as though no one even debugged the code. But… I really wonder whether any of this would work on a Purism machine under PureOS. Does it?

  2. I’ve noticed that some videos render badly washed out colors, as though the gamma correction were all wonky. Again, this occurs on a variety of machines with different video hardware and color profiles. But when I play them on YouTube or on the phone that captured them, the colors are correct. It’s as though the same idiots who published the video player never tested a single video on it. It’s just so obviously wrong.

Perhaps I’m hoping in vane that PureOS on Purism hardware doesn’t suffer from these same broken libraries, with no viable alternative. But… does it? If video looks great for you at 4K, but the frames are choppy, that’s OK for the moment; it just means we need to wait for them to crank out faster hardware. But the crap I mentioned above is a nonstarter.

I guess the workaround is to upload everything to YouTube and play it back. That definitely works, with some damage to the video due to YouTube’s insistence upon destroying most of the signal. But it’s obviously an undesirable solution for numerous reasons.

Super dependent on the content and the device’s capabilities. Both the Librem 13v4 and Librem 15v4 run a Kaby Lake CPU where as the new Librem 14v1 will run Comet Lake. See this chart for more info on VA-API support.

Very dependent on your hardware and software setup. Also can’t say I’ve ever experienced this with mainstream apps like VLC or mpv.

Now I grabbed 2d 4k 60fps Big Buck Bunny from http://bbb3d.renderfarming.net/download.html and watched it in VLC 3.0.11 (latest from flathub). HA was used so thus only 7-10% of CPU from VLC and had no issues with dropping frames, colour or audio syncing. GNOME MPV (from repo) did have issues with dropped frames though as decoded off the CPU. Am currently Librem 15v4 running PureOS 9 Amber. Now remember that I’ve got a 7th gen CPU and a stable distro that runs kernel 4.19 so neither are the most up current.

I do want to say that yes video hardware acceleration in Linux historically hasn’t been the greatest. But! It has been coming together these past few months after years of works.

On Wayland, H.264 is supported since Firefox 75, and other formats since Firefox 76. On Xorg, VA-API Support is first implemented in Firefox 80. Only H.264 is currently supported.

Source: https://wiki.archlinux.org/index.php/Hardware_video_acceleration#Application_support

That’s one major example and win! Before Firefox had VA-API support, we recommended getting folks to use mpv to watch streaming and local content since it ran better there than in browsers. Not at 100% yet but getting there :grin:

2 Likes

Thanks @Richard for the detailed reply.

First of all, I’m not sure if Comet Lake is before or after Apollo Lake – as CPU architectures tend to overlap considerably in time – which seems to be a dividing line for major support improvements in hardware acceleration. Which is to say, I don’t know if Librem 14v1 or 15v5 will have any better video performance apart from the incremental advantages ensuing from more and faster cores.

GNOME Videos has been a complete nightmare on all the machines I’ve tried it on. It skips frames, chops audio, and has a massive color skew problem, probably because the people who wrote it don’t know what pixel values actually mean (no, seriously, as explained below). VLC seems to have the same problem, but subtly so, whereas in Videos, it’s horrendous. Both issues are show stoppers for anyone interested in video production. Therefore, I’ve submitted a bug report to VideoLAN. Unfortunately, due to security issues, I was unable to submit the same report to the Videos issue tracker. It’s far more import that it be solved for Videos, because while hardware acceleration will probably fix the frame chopping in a few years, it won’t fix the color rendering if they use the same broken algorithm, or worse, if the hardware vendors etch it in stone because they don’t realize how it’s supposed to work. (Yes, I realize that 4K60 seems to work for you, but Big Buck Bunny is a “smoothish” movie like Toy Story, which compresses really well due to a lack of real video noise. I wonder how it would do on real video of, say, a jungle. But thanks indeed for the test.)

What the hell am I talking about? This:

https://trac.videolan.org/vlc/ticket/25018

I hate to ask, but given my apparent inability to enter a new issue in the Videos tracker, would you mind copying it over there? Or maybe at least trying to see if you have the same problem on your Purism platform? This is a major issue for any of us “creative” types.

Sometime i was able to play 2K 50 fps VP9 without skipping frames on Librem 15v3. I used Debian Stable with very tiny GUI. But i don’t know why other systems, even Debian with Gnome or Fedora, can play only 2K 30 fps VP9.
Maybe i accidentally installed some non-free package?

Also, Intel have some utilities to get hardware acceleration not only for MP4, but for VP9, HEVC and other formats. But i tried only VAAPI acceleration, and don’t sure that other options is open-source.

https://trac.ffmpeg.org/wiki/Hardware/VAAPI
https://trac.ffmpeg.org/wiki/Hardware/QuickSync
https://dennismungai.wordpress.com/2018/02/06/on-vp8-and-vp9-hardware-accelerated-encoding-solutions-the-age-of-intel/
https://github.com/intel/media-driver

1 Like

@scaled By “2K” I assume you mean 1920x1080? Was the color tone accurate? This resolution at 50 FPS takes maybe half the bandwidth of 4K60, but it’s a good start. Thanks for the hardware acceleration references. I’m not exactly a fan of closed binaries, if in fact that’s what they are, but they might be acceptable under various containment schemes.

By 2K I mean 2560x1440.
MP4 decoding and endocing, looks 100% similar to software decoding. VAAPI acceleration is open-source.

As player i use MPV. If you use Gnome, i reccomend to watch video on fullscreen, because it faster than in window.
Instruction for hardware acceleration in MPV (in short --hwdec=vaapi or --hwdec=vaapi-copy, but first is more stable when system under serious load).
https://wiki.archlinux.org/index.php/Mpv#Hardware_video_acceleration

2 Likes

you’re comparing big (Core) and small (Atom) core architectures. Kabylake (7th-gen Core) and Apollolake are roughly equivalent for video playback capability. Cometlake (10th-gen Core) adds a bit more capability, but all 3 should have no issues with 2160p60 HEVC/VP9 playback under Linux. I ran a KBL Chromebox as a media center years ago and it handled them without issue.

2 Likes

@MrChromebox thanks for the info. What player are you using? I still doubt that the color reproduction is as accurate as YouTube, let alone actually correct under sRGB, but I’ll take what I can get, and 4K60 is pretty good as a baseline.

MPV exploded in pink dots everywhere. What a disaster. Thanks for the suggestion, though. I guess it must work on some machines somewhere.

Thus far, only VLC seems to be of better-than-garbage quality, meaning that’s it’s only awkward to use and slightly off-color but otherwise smooth. It also has over 20,000 open issues, which means it will never really get its act together.

Kodi via LibreELEC :slight_smile:

2 Likes