On Tue, Jan 04, 2005 at 10:36:01PM -0500, sean wrote:
> I'm trying to run an atsc ( over-the-air hdtv ) signal out the ieee1394 
> port. I have the pchdtv card which gives me the mpeg.ts stream. i have a 
> avdc300 which will take dv input and give me component output for an ntsc 
> panasonic hdtv.

Bear in mind that some of this is just guesswork and I might be wrong...

Are you intending to display high definition content?  Skimming the
spec of that Canopus device reveals no mention of HDV, so it's
probably limited to regular standard definition DV.

Also, I think MPEG-TS over IEEE1394 and DV over IEEE1394 are both
special, different protocols.  You probably need something more than
simply redirecting the data to /dev/raw1394 to get it to work.

For MPEG-TS, I think the protocol is called AV/C and is what things
like D-VHS decks and set-top boxes use to communicate.  If you have a
TV with 1394 input, you could probably use that to pipe the data from
the pchdtv card to the TV.  You might have to filter the the stream to
adjust the PIDs or insert null packets (I think some receiving devices
are picky about the bitrate).  Since this shouldn't involve any actual
MPEG decompression on the PC, it would probably not be very
CPU-intensive.  There's:

  http://sourceforge.net/projects/libavc1394

which claims to support the AV/C protocol in Linux, though I don't
know anything about the state of tools using that library to actually
move data around.  Just FYI the best-known application for processing
AV/C this way is probably VirtualDVHS, which I think is only for
MacOS X.

Assuming you do _not_ have 1394 input on your TV, then you do have
to somehow get the data into analog format first.  If you want HD
video, your best bet may be something like this:

  - a _REALLY_ fast machine.

  - a video card with drivers supporting XvMC.  Some NVIDIA cards do this
    if you use NVIDIA's drivers.  I don't know about ATI.  If you want to
    stay with open source drivers, then I don't know if there's any
    solution; perhaps a _REALLY_REALLY_REALLY_ fast machine could do it.

  - mplayer, xine, or some equivalent, with XvMC support, to decode and
    display the MPEG-TS full-screen.

If you have RGBHV (VGA) input on your TV, then just attach the TV to
the computer and work out the video timings on the card until they
seem to be right.  If your TV does not have RGBHV, then you can try
setting the video card to use ATSC timings and use an external
RGBHV-to-YPrPb signal adapter.

An alternative might be something like the Roku HD1000, which can in
theory accept MPEG-TS over TCP/IP (using various protocols including
NFS, SMB, and some streaming stuff) decode it, scale it, and output
analog video.  From a hardware standpoint this definitely works and
the Roku has no problem chewing through even high bitrate HD content;
however the software might still be very rough and might not do
exactly what you need even if it exists.  Roku has some forums where
you might be able to find out the current state of the software:

  http://www.rokulabs.com/forums/

If your goal is just SD video, then your original idea might work
if you can get all of the pieces in place.  There are a couple of
things that come to mind, though:

  - you need to select the proper PIDs, demux the stream, and so on,
    to get the MPEG program that you want.  With over-the-air ATSC
    there's frequently more than one program in the raw transport
    stream; even if the broadcaster isn't sending out HD they might
    have a second SD program with a weather map or some such thing.

  - you will need to decompress the MPEG stream and then (I assume)
    recompress into DV.  This may require a pretty fast machine.  I
    don't know what tools are available to do this on Linux.  Something
    like ffmpeg might be able to accomplish it with the right
    command-line arguments.

  - you need to get the DV out on the wire in a format that your
    Canopus device understands.  I'm guessing that it uses the
    same protocol as a DV camera.  Most of the software I found in a
    quick search is more concerned with getting DV _in_ to the computer
    than sending it _out_.  The Kino sourcecode seems to mention a
    video1394Writer class which probably does the correct protocol,
    but I don't know if there's any tool included that actually uses it:

      http://kino.schirmacher.de/

Anyway, that's just some random thoughts on the subject.  I've worked
a bit with a pchdtv card, and tried some of the above techniques
myself with mixed results, but have never done anything with DV.

                                                  -Dave Dodge


-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
Mjpeg-users mailing list
Mjpeg-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mjpeg-users

Reply via email to