4*1024x768 fullscreen outputs
Hello, I'm wondering what the best approach would be for the playback
of 25 fps video on 4 fullscreen 1024x768 resolution vga screens,
using one of the new g5s with pci-express bus architecture. The video
(s) displayed will be different on each screen, but should run in sync.
One approach would be to render a strip of 4x1024 wide and strech a
jit.window horizontally over the four screens.
Another approach would be to render a block of 2x1024 and 2x768 and
strech one jit.window horizontally and vertically over the four screens.
Third approach would be 4 seperate clips to four seperate
jit.windows. Or a combination of the options above ;)
I will try this all out over the weekend, and report back. My main
concern is the disk speed / data rates required to make it work.
I'm never quite sure how to calculate datarate <> bus speed <> drive
speed stuff.
I'll be using the standard 7200 sata hd that comes with the g5. I
will start by preparing 3 different formats of photo-jpeg quicktimes :
- 4 seperate 1024x768 quicktimes
- 1 4096x768 quicktime clip
- 1 2048x1536 quicktime clip
Will the drivespeed be sufficient for 25fps playback of these clips ?
Thanks !
Gideon
doesn't do photo-jpeg but useful for working out data rates.
might be of some use.
I'd say that the internal drive won't be fast enough. My advice would be that you shouldn't run this kind of video off your internal drive anyway. Becuase when the data rate suddenly kills a drive, it's usually better if it's the one without all the important stuff on it.
sata raid kit from macgurus.com might be the way to go....
can do an internal mounting thing, but I've heard the drives don't like the temperatures in the g5..
good luck....
Hi Gid
I've had a number of experiences with mutlichannel hi-res, here is
some advice:
> One approach would be to render a strip of 4x1024 wide and strech a
> jit.window horizontally over the four screens.
> Another approach would be to render a block of 2x1024 and 2x768 and
> strech one jit.window horizontally and vertically over the four
> screens.
negative. one cardinal rule, you cannot span a single window across
different cards. i've always experienced a big loss of framerate on
agp/pci-x setups. there is a small possibility it might work with
pci-e, but i tend to doubt it, i believe it is an OpenGL/driver issue
not a bus-bandwidth.
> Third approach would be 4 seperate clips to four seperate
> jit.windows. Or a combination of the options above ;)
this is much more likely to work. spanning across the two ~heads~ of
a single card has worked well for me - i just did an opera at
2048x768 on a single card with two projectors. so you might try, 2
cards, with 2 2048x768 movs. (well and a third card for your
interface maybe)
> I will try this all out over the weekend, and report back. My main
> concern is the disk speed / data rates required to make it work.
as suggested, it will be nice to have a sata raid. a single drive
for each movie will probably work with compression (photojpeg 75%
quality is what i used, a balance between datarate and fast
decompression on the CPU)
one strategy to save on on datarate is to use half res movs... its
nice to be 1 to 1, but in higher resolutions, the quality difference
is much less (especially depending on your projection situation). so
for example, in the hi-res show i did recently, I used source
material at 1024x384 -- scaled exactly double and you get 2048x768 -
and it was very hard to see any difference (at all) between this and
a native 2048x768 movie.
so if you choose this method, you would only need two playback
drives. (one for each 1024x384 movie) btw, the machine i used for
the dual xga show was G5 dual 2g, ATI X800 agp, (and a radeon 9200
pci for monitor/interface)
Oh I have to mention -- i was displaying via jit.gl.slab and
videoplane (so i could mix 2 streams and run gpu fx) rather than
using the 'direct to window' method. It would be interesting for you
to try both and see if one is better than the other. since it sounds
like you only need playback.
cheers Gid!
deKam
Hi
I had a similar performance problem with a video installation i've made
two months ago, in Milan: i digitized 20 hours of video that Alberto
Grifi shot in the 70s, and i had to manage 7 video outputs (640x480) of
the footage simultaneously and in real time. And i also needed a video
input for tracking the movement of the people.
After a lot of testing and patching, i realized i could do it with a
single G5, dual 2.7 Ghz and two standard 7200 sata, BUT i had to render
all the 6 video sequences with a resolution of 320x240, PhotoJPEG. Then
i used two video cards (4 video outputs) and the Datapath's VQS01
videowall controller to split the 4th output into four different images.
In this way, i had a main projector in front of the room, that showed
one of the 6 different sequences, and i could use 6 more LCD monitors to
show, as a reference for the user, all the sequences simultaneously:
every monitor displayed one of the 6 sequences, and the user could move
and choose which video sequence had to be shown on the main projector.
In brief:
Input 1 - (video tracking) - jit.qt.grab, 640x480
Output 1 - (the main projector) - jit.window, 640x480
Output 2 - (sequence/monitor 1) - jit.window, 640x480
Output 3 - (sequence/monitor 2) - jit.window, 640x480
Output 4 - (sequence/monitor 3, 4, 5, 6) - screen resolution of 640x480,
with 4 jit.pwindow, 320x240 each. The 4 outputs of the VQS01 showed 1/4
of the DVI image, in a 2 x 2 format
Why did i use, ONLY for the 4th output, the jit.pwindow rather than the
jit.window objects? Well, i thought the problem was somehow related to
the hardware acceleration of the video card, but i wouldn't bet a dinner
on it. Actually, the video played smoothly when i used 4 jit.windows,
but after about 15/20 minutes the frame rate scaled down, from 25 fps to
1 or 5 fps. At first i thought it was a RAM or a disk speed/data rate
problem, but as soon as i replaced the 4 jit.window objects with the 4
jit.pwindows, the problem disappeared. And the video installation has
run smoothly for two weeks.
I didn�t try your first suggestion (render all the videos to a single
matrix, and strech a jit.window horizontally over the different
screens), and all my video was 320x240, but i hope my long account can
give you some hint!
Marco
Hi there,
Thanks for the replies ! very very helpfull indeed.. Another thing
which i forgot to mention is that apart from the 4 1024x768 clips
playing in sync, they also have to play in sync with a 4 mono
audiotracks, playing from the same machine to four seperate audio
outputs.. This complicates things a bit in the synching department.
I did some basic testing this weekend on a new dual 2.3 g5 machine
(pci-e), 1.5 gb ram, standard harddrive, 2 nvidia 6600 cards. (Forgot
to test the 2x 2048 768 option btw.) :
Spanning a single window across different cards definetely doesnt
work (yet). I split a quicktime with audio track into two seperate
tracks, one audio and one video. Made the resolution of the video
1024 768 and used the photo jpeg codec 25fps no fields. Made 4
jit.qt.movie 1024 768 objects, connected to 4 jit.window objects
which do one screen each by opening in the right size with border 0.
Resolution on all 4 monitors is 1024 768. Also installed shadowkiller
app btw. Straightforward playback on this system without drawing to
window directly is about 10 fps. When drawing to window is on, speed
and quality (?) improve dramatically. It's hard to measure the fps,
because the standard fps object doesnt work when drawing to window is
on, but it doesnt look like its playing at 25fps. To be able to do a
proper test we'll need to install a RAID, which will hopefully happen
somewhere the coming week. I'm thinking a 4 disk SATA system (one
disk for each output). Problem is a SATA host card for PCI-E, mac
gurus don't ship their PCI-E host card until february it seems. The
other problem is synching to the 4 audio streams. I've done a quick
test, loading the soundfile in a sfplay object, taking the [current
position] and passing it through to the quicktime players with the
[time $1] command. This works ok, but makes the playback less fluent,
it's stuttering a bit. Haven't done a lot of tweeking on snapshot and
trigger bangs, might turn out to work fine. Other options/ideas much
appreciated.
To conclude, it's not working yet ;) Next step will be expanding
storage options by adding the SATA external drives and possibly
upgrading to a quad g5. Wondering how much the upgrade to quad will
help though ? Decompressing the movie through CPU ?
That's it for now, more later. Any thoughts much appreciated.
Thanks again !
Gideon
On 20-jan-2006, at 16:13, deKam wrote:
> cheers Gid!
For syncing sound and image, you could see if my tl.metro might be of
help:
This is a metro driven by phasor~ whenever audio is on.
For jit.wt.movie there's an @unique attribute to avoid repeating the
same frame. Might improve performance in case you didn't test/use it
already.
Below is a patch that might give you some additional ideas towards
syncing video and sound as well as monitor framerate when using
direct to window.
Best,
Trond
Since decompression vs datarate is your bottleneck, i would spend
extra money on extra raid before quad processor. If your raid is
strong enough, you could do uncompressed yuv. then your cpu is
dedicated to traffic control instead of decompression. with sata
still a missing piece, you could use apple's fiber channel solution,
or for the same or less GVS has released their dual core custom macs,
with up to 16 drive internal raid http://store.yahoo.com/gvstore/
g5dualcorespec.html great machines!
the 'ideal' raid would be 4 channels of raid 0 striped pairs (total 8
drives)
next best would be say one big 6-8 drive raid 0.
and try the mov resolution 512x384 per channel
--deKam
Interesting, interesting. I just spent an allnighter in the world of
RAID systems. Learned a lot, will spare you most of the details as
the topic is becoming more and more OT, still i think it might be an
interesting contribution for the archives. Also, I went through the
archives a bit and dug up some not so very old stories about YUV and
the playback of large quicktimes. It seems the case we're dealing
with here nicely pushes the envelope a bit further again, an upgrade
to the old thread completely in line with the upgrade of the latest
g5 powermac series ;)
Allthough only the first PCI-E Raid systems are being developed as we
speak and solutions are a bit crummy, this seems to be a setup that
could work ?
1 x Highpoint Tech RocketRAID 2320 (http://www.highpoint-tech.com/PDF/
rr2320/RR2320_DS_EN_1.0_111505.pdf)
1 x Granite Digital PCI Cable bracket Assembly (http://
www.granitedigital.com/_downloadfiles/acrobat/SATA_8%
20Channel_Installation.pdf)
1 x MacGurus 8 Bay Burley (http://www.macgurus.com/productpages/sata/
satakits.php)
8 x Hitachi T7K-250 SATA II (http://www.macgurus.com/cgi-bin/ccp51/cp-
app.cgi?pg=prod&ref=0A31636)
This setup in a RAID 0 configuration should provide a datarate of
about 500 MB/sec. Correct me if I'm wrong please.
When drawing to window directly a quad core g5 probably would make
that much of a difference, when using Apples Component Video codec.
I ran a small test just now, quicktime info reports a datarate of
about 230 Mbits/sec.
BTW: The new quicktime size is 1024 x 576, wide(r)screen, instead of
the 1024x768 mentioned in the topic. The screen resolution will
remain 1024x768 of course.
Question is, will this RAID setup be sufficient for playing back four
simultaneous 1024x576 Component Video quicktime streams at 25 fps ?
Thanks again !
Gideon
On 23 Jan 2006, at 06:43, Gideon Kiers wrote:
> This setup in a RAID 0 configuration should provide a datarate of
> about 500 MB/sec. Correct me if I'm wrong please.
>
> On 22-jan-2006, at 21:08, deKam wrote:
>
>> the 'ideal' raid would be 4 channels of raid 0 striped pairs
>> (total 8 drives)
>> next best would be say one big 6-8 drive raid 0.
If you have one huge RAID 0 array, seek times will spoil the throughput.
I understand that you want to play 4 movies simultaneously.
each movie will be on a different part of the disk.
so the disk heads have to move to the location of the next frames of
movie 1,
then movie 2, etc.
My guess is that you are better off with 4 independent disks, each
playing one movie at a time.
the price to pay is that you have to put all your movies on all 4
disks, but given disk
prices, that seems acceptable.
Of course, you may speed up the disks by building them as 4 pairs of
2 disks of RAID 0.
I think that is what deKam meant by 4 channels of raid 0 striped pairs.
An advanced RAID controller should be able deliver a 4x2 configuration.
HtH
-jennek
Instead of running separate movies, how about making one qt with all four laid out 2x2.
Output through DVI port. Then use an external videowall-style processor to split the image externally.
Something like this...(although I don't know if this one's any good)
That gets rid of the disk seek time problem and gives you perfect sync.
If you went 1920 x 1080 resolution for the movie, you'd be able to use all the HD settings in editing software like FCP. Might help a bit.
Seek times on disks can be a problem. But I can run two PAL size uncompressed movies off a Firewire 800 drive, so running 4 movies a little bigger shouldn't be impossible from a raid.
yes, and even cheaper than a video wall processor, you can take a
single vga, to 1x4 DA, then a scaler on each channel to zoom on each
quadrant - this works very well for making 4 channels of ntsc/pal
from 1280x1024 channel, but to upscale the resolution to Gid's you
would need to send QXGA 2048x1536, which limits your choices (as most
scalers are limited to SXGA+ or 1080i)
assuming you find the right scalers, this helps the sync problem, but
2048x1526 datarate adds up to the same anyway you slice it. or
(again) downres your source by 1/2 then you are back down to 1024x768
in four quadrants, which all off the shelf scalers can handle.
but then again, why pay for external scalers or video wall processors
when your opengl GPU has a perfectly good scalers built in? (except
to simplify the sync)
-deKam
I am amazed when I see to have a Quad-screen video playback in full size
full speed be possible in a computer.
I have also been working on a project need multiscreen playback while the
platform is on PC. It is very hard to have all the video in-sync when they
are playing in different players. So, I try to use the "stretched" way and
compose a large video.
And I've found that not every codec works, some of them could not display on
the non-primary screen and leave blank. I guess it is because video playback
make use of different hardware acceleration rather then the openGL (or
directX in Windows).
So, except a fast disk we have been talking so far, how can we make use of
the GPU throughly on video playback ? Especially when we are working with
multiple display card ? (And what is the advantage of the dedicated video
payback mechines?)
(^_^)
William
Gideon,
going back to you original post, I understand that you do not switch
movies.
You start the playback on the four screens and let it run - in sync
that is.
effectively this is one movie with 4 video and 4 audio tracks.
There are various ways to let the quicktime format help you.
you could combine all four video and four audio tracks into one movie,
and the quicktime playback code would do the syncing for you.
moreover, I think that quicktime also tries to lay out the tracks
onto the disk intelligently, to reduce seek times (interleaving the
tracks).
disclaimer: I have not tried it myself, this is what I remember from
reading 'inside macintosh - quicktime chapters' but that was quite
some time ago.
If multiple tracks won't work, you may do the interleaving yourself.
use a codec that does not use temporal compression. create a movie
frames from movie 1,2,3,4,1,2,3,4.
Alternatively, glue the four frames together as 1024*(4*768)
and split them as they come out of jit.qt.movie (depending on the
implementation
of the splitting, (4*1024)*768 may be faster).
This is what you already mentioned, but that was in view of using one
or more
jit.windows. I think that the quicktime and opengl design choices
are indepenent here.
This does not reduce datarates, it just helps in the syncing and disk
layout department.
regarding disks, I replaced my 7200 rmp drive with a WD raptor disk
at 10.000 rpm.
this makes a significant difference. sustained data transfer is
proportional to
the rotational speed, as more bits pass under the read heads per second.
HtH
-jennek
Hello there, I'll restate my question for clarity.
I think I first need a disk solution that will allow me to play 4
quicktime streams in sync, each a resolution of 1024 x 576, in
Component Video codec, at 25fps, on four VGA/DVI outputs with a
resolution of 1024 x 768 each, using two nvidida 6600 cards on a new
dualcore G5 2.3 mhz. The 4 quicktime streams need to be played in
sync with each other, but also in sync with a 4 channel 44.1 khz AIFF
file. There will be more than one block of 4xQuicktime and 4xAiff to
be played. I believe I need a disk system that is capable of at least
200MB/sec.
The Highpoint Rocketraid 2320 is the only Mac compatible PCI Express
SATA host at the moment, according to barefeats. (http://
www.highpoint-tech.com/USA/rr2320.htm) It features 8 (internal)
ports, up to 300 mb/s for each port. This i can then hookup to an
external SATAII raid system comprised of either 4 or 8 disks. This
should probably do it ?
Then, there's also the possibility of using Firewire 800. There are
not a lot of firewire 800 PCI-E cards on the market yet. Aaxeon has a
2 port fw800 card, the FWB3414. (http://aaxeon.com/products/
Productdetail.aspx?cate=8&modelno=FWB3414). I could stick two of
these things in and hook up 4 7200 rpm FW800 disks. But am unsure if
that will get me the speed I need ?
Next thing is to fix the synching of it all, but i feel much more
comfortable with finding a solution in software if I know the
hardware department is taken care of sufficiently. There are various
ways of synching the streams, i'm allready quite close i think, the
biggest problem is that i can not see if they sync because my
harddrives are not up to speed ..
Scanconverters are not an option indeed, because of the need for
hiresolution outputs, with as much quality as possible.
btw. 4 x dmx controlled blu-ray dvd players might be an option as
well, if only they would exist ;)
thanks again !
Gideon
> Scanconverters are not an option indeed, because of the need for
> hiresolution outputs, with as much quality as possible.
not a scanconverter, but a scalar, such as: http://www.tvone.com/
c2-4100.shtml
this is the only one i know that is rated to 2048x2048
> There are various ways to let the quicktime format help you.
> you could combine all four video and four audio tracks into one movie,
> and the quicktime playback code would do the syncing for you.
The one problem with 4 track audio in Quicktime is that there is no
solution to have QT extract 4 tracks to 4 discrete audio outputs. On
the PC there are some over-complicated hacks to make this work, but
none that i know of on Mac. (Perhaps the only one is using a 5.1
encoded stream, but then dolby is not symmetrically compressed and
lossy, so you may end up with problems in the mix)
> 4 x dmx controlled blu-ray dvd players might be an option as well,
> if only they would exist ;)
hmmm well, there are sync capable HD players. again pricey, but rock
solid:
--deK
On 24-jan-2006, at 15:34, deKam wrote:
> not a scanconverter, but a scalar, such as: http://www.tvone.com/
> c2-4100.shtml
> this is the only one i know that is rated to 2048x2048
interesting
> The one problem with 4 track audio in Quicktime is that there is no
> solution to have QT extract 4 tracks to 4 discrete audio outputs.
> On the PC there are some over-complicated hacks to make this work,
> but none that i know of on Mac. (Perhaps the only one is using a
> 5.1 encoded stream, but then dolby is not symmetrically compressed
> and lossy, so you may end up with problems in the mix)
Exact.
> hmmm well, there are sync capable HD players. again pricey, but
> rock solid:
True indeed.
Thank you and the others very much for all the help and information,
much appreciated !
Gideon
Ah one more question while we're at it. Have you seen a recording
deck with a vga or dvi input, capable of recording straight from a
dvi computer output at, say, 1024x768 ? thanks, gid.
On 24-jan-2006, at 15:34, deKam wrote:
> hmmm well, there are sync capable HD players.
google led me here, though I think a pvs thread some time ago mentioned
it as well...
http://www.epiphan.com/products/vgarecorder/index.php?gclid= CKzGiP-c5IICFRpaDgodz2-viw
-0-0-0-0-0-0-0+0-0-0-0-0-0-0-
The Thanksgiving Cocktail
2 oz rye
1/2 oz cranberry juice (pure, unsweetened)
1/2 oz lemon juice
1/2 oz maraschino
1/2 oz simple syrup
Shake with ice and serve
in a chilled cocktail glass
-0-0-0-0-0-0-0+0-0-0-0-0-0-0-
Yes sorry, i should have been a bit more specific. I'm (still)
searching for a solution to capture VGA (or DVI) at a high resolution
(pref. 2048 x 1536) at 25 fps.
Recently Vade posted his thoughts on this subject, though i'm not
sure yet how to get the VGA/DVI signal either into the Kona, Decklink
or into the Sony... ? :
there was a long thread recently where i spewed alot of info about
high-res recording.
to answer your question, there are very few, and those which exist
are built for security/military with limited (slow) frame rate. the
thread is mostly about how to record using HD resolution from one
machine to another, and various other recording hi-res recording
strategies
--deK
I am also looking for a way to record 2048x1536 dual-link DVI from
one computer into another. I do not know of any DVI input capture
cards, but if I find one I'll post info on it and I would certainly
appreciate hearing of any you find. In the meantime I am looking at
converters.
Miranda makes a product called the DVI-Ramp which will convert DVI to
HD-SDI, which you can then record through a DVS or AJA or Blackmagic
or whatever HD capture card. However the Miranda product is not a
scaler, so it does a 1920x1080 crop.
Vista Systems (http://www.vistasystems.net) makes a product called
the Spyder which can do a whole bunch of stuff including, I think,
scaling 2048x1536 DVI to 1920x1080 HDSDI. Haven't tried one yet.
not to nitpick but good luck finding a Sony D5, let alone an
uncompressed one. Sony makes HDCAM; Panasonic makes HD-D5. they are
both compressed hd formats.
-Alex
It seems we're stuck at 1920 x 1200 or 1920 x 1080 at the moment.
There are two more converters i've found so far :
http://www.gefen.com/kvm/product.jsp?prod_id=2566 and http://
www.doremilabs.com/products/XDVI-20.htm
in a bit lower resolution i've found also this 'solution' :
http://www.ems-imaging.com/catalog/modules.php?
name=catalog&file=product_info&cPath=39&products_id=52&osCsi d=12ee9785af
b165d4123e5eee4f11f54c
"The Phynx RGB has 6MBytes of video capture memory per channel and
can capture data at 640 x 480, 800 x 600, 1024 x 768 and 1600 x 1200
resolutions. Custom resolutions are possible if they are within the
bandwidth limits of the Phynx RGB. The Phynx RGB captures data at a
maximum rate of 280 Mpixels per second. Once captured, the data is
converted to either 555, 565 or 888 pixel display formats and then
transferred over the PCI bus to host memory, for display on the
desktop."
No luck finding DVI capture cards, yet ..
On 25-jan-2006, at 1:39, Alex Stahl wrote:
> In the meantime I am looking at converters.
Hi all
well Gid's project inspired me to write this example patch showing
how you could synchronize one (or more) movies to a master sfplay~ --
i haven't fully tested it for accuracy, but visually it seems the
video is following the audio very well.
you'll need a movie that has its audio extracted from the movie into
an .aif file to test
enjoy!
deKam
>
> negative. one cardinal rule, you cannot span a single window across
> different cards. i've always experienced a big loss of framerate on
> agp/pci-x setups. there is a small possibility it might work with
> pci-e, but i tend to doubt it, i believe it is an OpenGL/driver issue
> not a bus-bandwidth.
We've just put together a system with these specs:
OSX PPC 10.4.4
2 x 2.0Ghz G5, 8GB RAM, 240GB RAID-1 disk
4 x Nvidia GE Force 6600, 256MB RAM
8 x Dell 2405FPW 1920x1200 LCD
Quicktime playback across two screens attached to a single card works
great, even at high resolutions. Dragging a QT window across two
screens attached to separate cards is a disaster - 1 fps if we're
lucky. If we reduce the resolution to 640x480 or so things work fine,
but that defeats the purpose of this hardware.
I'm new to this list and have never used Jitter (I just downloaded the
app and docs five minutes ago), so please excuse the rudimentary
nature of my questions. Can I use Jitter scissors to split an existing
high res QT movie into four vertical stripes, then use jitter to play
these stripes back in sync? Will Jitter handle the alignment of the
tiling of the stripes to ensure each stripe is confined to a single
video card and its pair of screens?
If so, I think that'll solve our problem - a godsend to find such a
simple solution to salvage a relatively expensive hardware purchase.
Thanks!