[mythtv-users] HEVC/H.265 playback

Stephen Worthington stephen_agent at jsw.gen.nz
Wed Apr 21 18:26:27 UTC 2021

On Wed, 21 Apr 2021 11:45:27 -0500, you wrote:

>I briefly did some experimenting with transcoding recordings using
>libx265+ffmpeg in an mpegts container.
>While the transcoding was fine and playback is fine over my lan using
>ffplay on my (old, slow) laptop, on my dedicated frontend only cartoons
>playback ok; other transcoded recordings have a lot of stutter and are
>unwatchable. I will guess that this is because the dedicated frontend is
>about 8 years old and has a slower cpu [*,**].
>I wonder if anyone has experience in these matters? Would a graphics
>card be an option (the frontend has a couple low profile pci-e slots
>available)? I am using ubuntu 20.04 and v0.31/fixes from the mythbuntu
>ppa, if that matters.

Playing H.265 using just the CPU takes a lot of CPU, and I suspect
that it needs to be mostly one core only doing the work.  I had
similar problems to yours with my main MythTV box which was using an
Nvidia GT220 card, which is far too old to do H.265.  After I upgraded
it to an Nvidia GT1030 which has native H.265 support, and also
upgraded MythTV to v31 which has the big rendering changes that
brought support for H.265 offloading to the GPU, I have no problems
with H.265 videos.  And also as a bonus I found that playing 4K video
in H.264 and H.265 worked on my 1080p only screen - the GPU seems to
be doing the downscaling.

Depending on how old the frontend box is, it is likely to be only PCIe
2.0 or 2.1.  Pretty much all modern graphics cards are now PCIe 3.0
(or better).  The low end ones are typically PCIe 3.0 x4, even though
they still are built for a x16 socket.  They just do not use the other
12 PCIe lanes - the pins are not connected.  A rare exception is an
EVG card with an Nvidia GT1030 that I bought which uses a x4 socket
for its x4 connection, and can be used in any x16, x8 or x4 socket.

This has come about because with PCIe 3.0, a 4 lane (x4) connection is
fast enough to max out the transfer rate of the GPU.  But if you plug
these cards into a PCIe 2.0 or 2.1 motherboard, since they have only 4
lanes, they can not max out their transfer rate at PCIe 2.0 or 2.1
speeds and so potentially will not perform as well as an older
graphics card that is PCIe 2.1 x16 and uses all 16 lanes.  This only
matters for things other than MythTV though - heavy graphics programs
and games where there is a huge amount of data being sent to the GPU.
For MythTV where the rendering is being offloaded onto the GPU, the
data transfer rate is very low - the same rate as the video stream in
the recording or video file.

So, for upgrading your frontend, as long as it is not being used for
other graphics intensive things as well, I would recommend the
cheapest modern Nvidia card, a GT1030 model.  There are several that
are fanless which is a bonus as they will last forever - I have yet to
have any fanless Nvidia card die.  Cards with fans usually die much
earlier when the fan(s) fail.  The downside of the GT1030 is that its
4K support is limited, but they are reasonably cheap.  There is likely
a similar spec Radeon card available also, but I have never used
Radeons so I do not know anything about their current range.

The Asus and EVGA silent GT1030 cards I have all came with an low
profile bracket in the box.

More information about the mythtv-users mailing list