Mailing List Archive

Thoughts on CD/VCD/SVCD burning
All,

I've spent the last 4 or 5 days trying to figure out a workable way to burn
disc's of video content from MythTV. I have cobbled together some code to do
it, but it's far from ready for primetime.

So .... before I fold anything back into the tree, some thoughts/questions
for open discussion:

1. To burn a VCD and/or SVCD compliant disc (ie. something yu can stick in
another computer, stand-alone DVD player, etc), the machine will need
processor time. The former requires strict MPEG-1 (video) compliance, and
needs specific resolutions (NTSC or PAL) to be compliant. The latter also
requires adherence to standards (MPEG-2) that demand even more processing
time.

2. The tools to do this are all readily available. In particular, the
mpegenc program from the mjpegtools effort will swallow a myth-style
Nupple-encoded stream and spit out a compliant mpeg-1 or mpeg-2 (for VCD or
SVCD) stream.

3. Compliance is not the problem. CPU time is the problem. The logic of "Fix
Scheduling Conflicts" gets a heck of a lot more complicated when you need to
allocate CPU time to re-encode content/burn discs. Do you want to not record
a program because the CPU needs time to encode something you (Nuppel)
recorded two weeks ago?

4. One workaround would be to be build a nice web interface to the Myth
mysql system, and let all encoding/disc-burning happen on another machine.
That's nice for performance, but greatly hinders end-user simplicity.

5. Another option would be to let users burn well identified "multi-session"
CD's that just contain the raw Nuppel-codec'd video. You'd need 1-2 discs per
half hour, so the whole thing would be more like an offline backup and
restore operation than a "watch from disc" way of operating.

The knee jerk reaction is, of course, to allow all of the above. But, if
Myth is ever (eventually) going to get taken seriously, then the end-user
options need to be constrained. This is not about power hacking, it's about
controlling streaming media with a remote that only has 20 or so buttons.

I am happy to work on the logic that would extend mythfrontend to the point
where it understands its computational (as well as time slot) constraints,
but I'm interested in feedback w.r.t whether this is a good idea before I
plunge in.


BR,

Thor





--
----------------------------------------------------------------
Thor Sigvaldason <thor@sigvaldason.com>
For my PGP/GnuPG public key, send an e-mail to thorskey@sigvaldason.com
----------------------------------------------------------------
Re: Thoughts on CD/VCD/SVCD burning [ In reply to ]
On Friday 23 August 2002 05:30 am, Thor Sigvaldason wrote:
> All,
>
> I've spent the last 4 or 5 days trying to figure out a workable way to
> burn disc's of video content from MythTV. I have cobbled together some code
> to do it, but it's far from ready for primetime.
>
> So .... before I fold anything back into the tree, some thoughts/questions
> for open discussion:
>
> 1. To burn a VCD and/or SVCD compliant disc (ie. something yu can stick in
> another computer, stand-alone DVD player, etc), the machine will need
> processor time. The former requires strict MPEG-1 (video) compliance, and
> needs specific resolutions (NTSC or PAL) to be compliant. The latter also
> requires adherence to standards (MPEG-2) that demand even more processing
> time.
>
> 2. The tools to do this are all readily available. In particular, the
> mpegenc program from the mjpegtools effort will swallow a myth-style
> Nupple-encoded stream and spit out a compliant mpeg-1 or mpeg-2 (for VCD or
> SVCD) stream.

Well, they'll have to be modified -- the original Nuppelvideo didn't compress
the audio, used a different version of rtjpeg. Oh, and didn't use mpeg4 as
an option, either =) But, yes, the framework's there, and those should be
relatively minor changes to the existing tools to get them to grok the
changes.

> 3. Compliance is not the problem. CPU time is the problem. The logic of
> "Fix Scheduling Conflicts" gets a heck of a lot more complicated when you
> need to allocate CPU time to re-encode content/burn discs. Do you want to
> not record a program because the CPU needs time to encode something you
> (Nuppel) recorded two weeks ago?

Obviously, recording something _should_ be more important than reencoding. Do
you think that spawning off a re-encode process reniced to lowest priority
would impact a recording that much? I'm thinking the biggest impact is going
to be to harddrive speed, and that can be fairly easily fixed by limiting the
reencode process to a certain number of frames/sec or whatnot.

> 4. One workaround would be to be build a nice web interface to the Myth
> mysql system, and let all encoding/disc-burning happen on another machine.
> That's nice for performance, but greatly hinders end-user simplicity.

Heh, actually, someone started working on a web interface to the scheduler
(which would be nice to have). Of course, he's since stopped and I'm left
with some half working php. Would anyone be interested in working with me to
finish it up? I just basically need someone with a little more php knowledge
than me (ie, more than none), and the ability to make it look halfway decent.
Or any other of the common scripting languages, just the existing code
(displays a static program grid) is in php.

> 5. Another option would be to let users burn well identified
> "multi-session" CD's that just contain the raw Nuppel-codec'd video. You'd
> need 1-2 discs per half hour, so the whole thing would be more like an
> offline backup and restore operation than a "watch from disc" way of
> operating.

Yeah, that's kind of a waste of CDs, really.

> The knee jerk reaction is, of course, to allow all of the above. But, if
> Myth is ever (eventually) going to get taken seriously, then the end-user
> options need to be constrained. This is not about power hacking, it's about
> controlling streaming media with a remote that only has 20 or so buttons.

'zactly.

> I am happy to work on the logic that would extend mythfrontend to the
> point where it understands its computational (as well as time slot)
> constraints, but I'm interested in feedback w.r.t whether this is a good
> idea before I plunge in.

If you think it's needed, go for it, but I'd think testing a secondary encode
process appropriately rate-limited and re-niced would be the way to go first.

Isaac
Re: Thoughts on CD/VCD/SVCD burning [ In reply to ]
On Friday 23 August 2002 11:01 am, you wrote:
>
> >
> > 2. The tools to do this are all readily available. In particular, the
> > mpegenc program from the mjpegtools effort will swallow a myth-style
> > Nupple-encoded stream and spit out a compliant mpeg-1 or mpeg-2 (for VCD
> > or SVCD) stream.
>
> Well, they'll have to be modified -- the original Nuppelvideo didn't
> compress the audio, used a different version of rtjpeg. Oh, and didn't use
> mpeg4 as an option, either =) But, yes, the framework's there, and those
> should be relatively minor changes to the existing tools to get them to
> grok the changes.
>

It's pretty straightforward.

> > 3. Compliance is not the problem. CPU time is the problem. The logic of
> > "Fix Scheduling Conflicts" gets a heck of a lot more complicated when you
> > need to allocate CPU time to re-encode content/burn discs. Do you want to
> > not record a program because the CPU needs time to encode something you
> > (Nuppel) recorded two weeks ago?
>
> Obviously, recording something _should_ be more important than reencoding.
> Do you think that spawning off a re-encode process reniced to lowest
> priority would impact a recording that much? I'm thinking the biggest
> impact is going to be to harddrive speed, and that can be fairly easily
> fixed by limiting the reencode process to a certain number of frames/sec or
> whatnot.
>

I guess this probably the way to go. The burning menu would have to have a
"Convert Video" option that would let you move content to suitable formats
and would operate very low niced, etc. If there's nothing converted, then
there's nothing to burn. Still .... it just seems a bit cumbersome. Select
"convert", check back periodically over the course of an hour(s), see that
it's finally ready and then burn.

Perhaps there could be a column in the database (with a toggle control on
the interface) that let's users select whether they'll want to be burning
this particular content at some point. Then, as soon as the original
recording is over, the mpeg encoding could spawn in the background.

This would be much easier for people who are grabbing a whole series and
know in advance that they'll want to burn it. Just a thought.

> > 4. One workaround would be to be build a nice web interface to the Myth
> > mysql system, and let all encoding/disc-burning happen on another
> > machine. That's nice for performance, but greatly hinders end-user
> > simplicity.
>
> Heh, actually, someone started working on a web interface to the scheduler
> (which would be nice to have). Of course, he's since stopped and I'm left
> with some half working php. Would anyone be interested in working with me
> to finish it up? I just basically need someone with a little more php
> knowledge than me (ie, more than none), and the ability to make it look
> halfway decent. Or any other of the common scripting languages, just the
> existing code (displays a static program grid) is in php.
>

Send me that. Me and apache+php+mysql go way back :-)

BR,

Thor


--
----------------------------------------------------------------
Thor Sigvaldason <thor@sigvaldason.com>
For my PGP/GnuPG public key, send an e-mail to thorskey@sigvaldason.com
----------------------------------------------------------------
Re: Thoughts on CD/VCD/SVCD burning [ In reply to ]
On Friday 23 August 2002 12:27 pm, Thor Sigvaldason wrote:
> I guess this probably the way to go. The burning menu would have to have a
> "Convert Video" option that would let you move content to suitable formats
> and would operate very low niced, etc. If there's nothing converted, then
> there's nothing to burn. Still .... it just seems a bit cumbersome. Select
> "convert", check back periodically over the course of an hour(s), see that
> it's finally ready and then burn.
>
> Perhaps there could be a column in the database (with a toggle control on
> the interface) that let's users select whether they'll want to be burning
> this particular content at some point. Then, as soon as the original
> recording is over, the mpeg encoding could spawn in the background.
>
> This would be much easier for people who are grabbing a whole series and
> know in advance that they'll want to burn it. Just a thought.

Ok, here's what I'm thinkin, UI-wise:

- The 'Fix Scheduling Conflicts' becomes something like 'Edit Scheduled
Recordings'. It'll let you do the current selecting which recordings to
record, and also allow you to set options for a recording, with the options
being as global as the recording type. So, that way I can add in
per-recording quality level settings, and also an option for automatic
reencodes on completion.

- The 'Delete Recordings' becomes 'Manage Recordings'. Still be able to
delete things, but also be able to do other things like select a recording to
recompress and/or burn. The only problem there is indicating status. Maybe
a little task bar can go across the bottom of the screen, shows up when
you're in any of the Qt dialogs?

> Send me that. Me and apache+php+mysql go way back :-)

I've attached what exists so far. All it does is display the next 3 hours
worth of programming, for all the defined channels. Code structure is
similar to the existing mythepg. What I'd really like is if it had basically
the same functionality as mythepg, and let you select stuff to be recorded,
maybe do some conflict resolution, etc. I'll help in any way I can, but like
I said, my php knowledge level is really low =) I did do most of that
script, though, so I've got a whole hour or two of experience.

Isaac
Re: Thoughts on CD/VCD/SVCD burning [ In reply to ]
Anyone working on this? Did I miss something in the
FAQ's?

Greg
Re: Re: Thoughts on CD/VCD/SVCD burning [ In reply to ]
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Friday 22 November 2002 20.27, swan-1 wrote:
> Anyone working on this? Did I miss something in the
> FAQ's?
I'm working on this right now, should have at least a basic functionality
before christmas. Taking a little longer than expected due to work pressures
not leaving enough private time to both code and keep the girlfriend from
leaving me =)

/Ant
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)

iD8DBQE934DuZspeHb7yoS0RAmWXAJ4mXXJO3fXrEDMdtVVWz8y4JrfLNACcCmXd
QSjjGao0dtUDNYDVWKM/XsE=
=F3/w
-----END PGP SIGNATURE-----