Play your own HEVC videos now
A new major feature has been released today: You can now upload your own HEVC encoded videos. This allows 4K video playback on the Pi4.
You need to update your HD Image/Video player package to the latest version. Additionally you need to enable the next setup editor interface. You can then upload HEVC encoded videos and use them in any HD Image/Video based setup.
There are still some limitations. Some a inherent to the way the Pi4 works:
- Right now only a single HEVC video decoder can be used at once. This means that a HEVC video cannot be preloaded while another video is playing. Instead the video loading process can only start once the current video has finished. As a result the HD image/video player now has a 0.5s gap while switching to HEVC videos.
- Some HEVC videos cannot be rotated by 90 or 270 degree due to limitations (or a bug?) in the Pi4 firmware. It seems this only affects 10bit videos, but further investigation is needed. Unrotated or 180 degree rotated videos work fine.
- HEVC videos cannot completely replace H264 videos. For example HEVC videos cannot be arbitrarily rotated, as needed in the magic video wall player for example.
More packages soon
The HD player is only the beginning. The new abilities of info-beamer hosted will soon be added to more packages. Stay tuned…
Some technical information
The new HEVC feature of the Pi4 complicates configuration a big. Up to the Pi3, all Pi devices were compatible with each other. Configuration was easy as a result. With the Pi4 this changes. The HEVC video codec is only supported on the Pi4. A setup using a HEVC encoded video cannot run on a Pi3 for example. The result is the new features
information added to assets, configuration options and devices. The new setup configuration editor uses this information to ensure that setups you create can only be assigned to devices that can actually play them. And of course prevents adding an HEVC video asset to a setup if it’s already assigned to an older Pi.
Similarly an HEVC encoded video cannot be used in all setups that previously only supported H264 videos. It’s for example not possible to use HEVC video in the magic video wall, as HEVC encoded videos cannot be rotated freely. This limitation can now be expressed using the features
value for resources.
The asset list API call now returns a features
list value for each asset. This list describes which technical feature on a playback device is required to play this asset. Here is a full list of features. Similarly each device returned in the list devices API call now returns a list of supported features in .hw.features
. Assets are not directly assigned to a device. Instead they are part of the configuration of a setup. A setup is based on one or more packages and each configuration option that allows the user to select an asset can now also specify which features are supported by the code using that asset. Check out the change that added HEVC support to the HD player as an example of how all that works together: The listed "hevc"
feature indicates that the user can choose HEVC videos in addition to H264 videos within the playlist. The Lua code that plays this asset on a device as been updated to handle the new "hevc"
format.
Feedback welcome
This is a complicated change and the way the new setup configuration interface present the various limitation when working with HEVC videos can probably be improved. But it’s a start. Feedback on the new HEVC feature is very welcome. If you run into problems with videos that cannot be played, place get in contact!