Hello friends
After my Pi 2 broke recently I decided to get the new Pi 3 Model B+.
After a few modifications OpenADK is now running on it really well.
So I thought I would run some video performance tests to see how well it
can play back 1080p material. As a reference I also looked tried
libreelec. I guess this should show 'what is possible' on the device.
First of all, blu-ray style 1080p is working really well in adk! :-)
With the license keys for VC-1 and MPEG2 purchased and installed, all
the relevant codecs, H264, VC-1 and MPEG2 play smoothly with negligible
CPU load.
Kodi shows what codec is being used for decoding. So here is what it is
showing in adk (with the license keys installed!):
H264: mmal-mvc (HW)
VC-1: mmal-vc1 (HW)
MPEG2: mmal-mpeg2 (HW)
Not that in libreelec, the same codecs are shown with the exception of
H264, where 'mmal-h264 (HW) is shown. Playback is smooth for all cases.
Let's look at H264 a little more closely. This site
<http://jell.yfish.us/> offers test files with various bitrates.
It turns out the files with bitrates up to 70 mbps play smoothly on adk.
At 80 mbps it begins to stutter, anything higher is hopeless. CPU load
stays low though, so this might be related to memory bandwidth.
Libreelec can play even the 80 mbps smoothly, but beyond that it gets
very stuttery. Maybe the difference between the two is due to a
different codec being used. However I don't think this difference is
relevant in practise, as most 1080p material has much lower bitrates.
Maybe it gets some more importance with 4k material (which I didn't test).
So my conclusion for H264 is that the Pi3B+ plays it really, really well
both on adk and on libreelec.
Now what about H26*5*?
Unfortunately the Raspberry Pi does not support hardware acceleration
for decoding H265. From googling and reading some forum posts I learned
that it support for using some neon features for H265 decoding is
apparently implemented in newer versions of openelec and libreelec,
though I could not find the details.
Luckily the site linked above also offers the test files in H265, so I
tested these as well.
On adk none of the H265 files play anywhere near smooth (revision
44cbb78fa that includes ffmpeg libx265 support). The decoder shown by
kodi is:
ff-hevc-mmal (HW)
which can't be right, because hardware decoding is not supported. The
CPU load is at 100% constantly on one core and not much on the others.
So at the time of writing, H265 playback is not possible in adk-kodi.
How about libreelec (8.2.4)?
On libreelec both the 3 and 5 mbps files play smoothly! The latter with
significant CPU load (40-70%) on all cores. The 10 mbps sample is not
smooth anymore, with 90%+ load on all cores.
The decoder shown is:
ff-hevc-mmal (SW) which makes sense.
So bottom line it seems possible to play moderate-bitrate H265 material
in the B+.
From what I read online the Pi3B also works relatively well when
overclocked, but is likely to run into thermal problems then, while the
B+ works well and has much less thermal problems (having a higher clock
than the 3B from stock). I don't now if this information is trustworthy,
and I did not look at temperature at all (but I do have a heat sink on
the CPU).
What's next?
Obviously it would be great to have kodi on adk use the decoder as does
libreelec. Does anybody have an idea how to do this/where to look?
Other test results, e.g. from a Pi3B or a Pi2 would also be interesting,
and any ideas or comments are highly welcome! :-)
Hope to have inspired some folks!
All the best
Oliver
P.S.
Please note I did not (yet) do any long term playback testing or look at
dropped frames etc. What I did was rather a first test using the files
mentioned and a few more judging the playback quality by eye.
Show replies by date