[mythtv] dynamic transcoding / multiple simultaneous quality
levels
Joseph A. Caputo
jcaputo1 at comcast.net
Tue Feb 22 15:32:49 UTC 2005
On Sunday 20 February 2005 8:03, Ed Wildgoose wrote:
>
> >Unfortunately, the current requirement for a fairly heavy-duty system
to
> >decode HDTV means that front ends connected to standard televisions
will be
> >comparatively expensive as well as ruling out some very interesting
> >possible front ends (such as the Mac Mini).
> >
> >
>
> I could be wrong, but I think it's mainly heavy duty because you are
> decoding to such high resolutions. I suspect that if you run the
> frontend at a low resolution then it will need far less CPU?
>
> I don't have HDTV so can't offer to test. But depending on the
> implementation of the decoding it seems likely that there is a CPU
> saving if you drop the resolution...
Nope; regardless of your display resolution, you still have to decode
the full HD stream, *plus* you have to scale it (though the scaling is
done in hw if you're using Xv, the norm). The only way to reduce the
effort it takes to decode the video in software (we're assuming a
frontend w/out HD-capable hw-assisted decoding) is to transcode the
stream down to a lower resolution in advance. Since transcoding from
HD -> SD in real-time is not currently viable at the consumer level,
other options must be explored.
I like Paul's idea of multiple simultaneous 'quality copies' of a
program. Basically, the automatic transcoding function would be
extended to allow a single source program to be transcoded into
multiple different recording profiles, optionally keeping the original
as well. The 'Watch Recordings' screen would filter out the
duplicates, and when playback is requested would select the
maximum-quality copy that the current frontend is capable of decoding
(or capable of streaming, say for remote frontends with lots of
horsepower but limited network bandwidth, like 802.11b). Obviously the
drawbacks to this approach are (1) some frontends will not be able to
watch a program until transcoding is finished, but that's not really a
problem since presumably they couldn't watch the program at all without
this capability, and (2) multiple copies of programs eat up disk space.
As an initial step, it would probably be relatively trivial to add the
following: add an option to keep both the original and the transcoded
copies of a program and insert metadata for *both* copies into the
database. Update the recordings screen with a method to view info
about a program's recording parameters (resolution, bitrate, codec).
As for allowing transcoding into multiple targets, this should also be
easy with the new JobQueue facilities.
The final piece of the puzzle would be the UI modifications for things
like: delete (does delete remove *all* copies of a program?) and
'clutter' (i.e., a mechanism to filter duplicate programs from the list
and only show the single 'best' copy a frontend is capable of).
So, now someone just needs to volunteer to code it... I only have a
single combined frontend/backend, so it's not my itch to scratch :-)
-JAC
More information about the mythtv-dev
mailing list