Stuttering Layers and Audio Delay

Short: audio is BEHIND video by 1-4 frames. Some (but not all) video layers stutter.

Long:
Here’s the setup - Hardware: Sony PD-150 camera (720x480 30i, audio 48K) FW out to MBPro Core i7, 8GB RAM, BoinxTV output to external monitor via DisplayPort of MBPro. Additional monitor connected via USB/HDMI display adapter. Audio comes into Boinx via audio input on PD-150 camera

Software: BoinxTV 1.8.3, QuickTime Player X, MAMP, and some Applescripting to automate Boinx and Quicktime.

BoinxTV Setup: 854x480 (NTSC Widescreen), 24fps, recording to AIC.
Layers (top to bottom) and the HDD where they are located:
Layer 1 / HDD 1 - 1:20 video clip, 854x480 30fps, Animation codec (this layer uses an alpha channel)
Layer 2 / HDD 1 - still image PNG with alpha channel
Layer 3 - PD-150 camera + Veescope ChromaKey filter
Layer 4 / HDD 1 - 854x480 video clip, :09 loop, AIC codec

Recording is to HDD 3, a 7200rpm drive on the FW bus, using AIC codec.
HDD 1 is a 7200rpm internal drive.
HDD 2 is a 7200rpm hybrid HDD/SSD internal drive.
All clips are linked as absolute reference files into the BoinxTV project.

Additionally, while the BoinxTV project is running we also playback another video (854x480 30fps h.264) in Quicktime. Audio from that file is taken from the headphone port on the MBPro, passed to an external mixer where the talent mic is added, and the mixer output passed into the PD-150 audio input. The BoinxTV audio passthrough is muted.

As mentioned above, we have two key problems. Both issues are seen in the live output as well as on the recording. The processor percentage in Boinx does not exceed 70%, except at the beginning of the session where it will momentarily spike to 115%. BoinxTV WILL indicate intermittent dropped frames, but they do not coincide to the video stuttering.

The first is that the camera video is 1-3 frames AHEAD of the audio. So using the audio delay setting under the video device just makes things worse.

The second is that Layers 1 and 4 will occasionally stutter, but it isn’t consistent. At least BoinxTV seems to prioritize keeping the live source (layer 3) running along.

Any help on solving these two issues would be greatly appreciated, as would any general guidance on optimizing codecs and hardware for best performance.

  • The displayed percentage is the rendering load in the graphics card, but not the processor load. Please also take a look at the processor load with the Activity Monitor application by Apple. I guess all the videos playing back simultaneously causing the CPU to stall and generating frame drops while playing back the videos. Please check the CPU load for each video file individually by playing them back in QuickTime Player so see which one causes the biggest performance impact and try to find another codec for playing back.

  • Very unusual is that the video is ahead the audio. but this could also be caused by dropping frames on both sides, playback in QuickTime or BoinxTV overload.

From the point of view of Boinx, are are the best formats/codecs for our sources?

Particularly for our need of an alpha channel, is Animation preferred over ProRes4444? And for the straight video, is AIC preferred over something else?

Is there a different format we should be running our Quicktime files in other than h.264?

Just trying to get this as perfect as possible.

As for the audio delay, I believe we also saw the same delay when the only active layer was the live camera + key.

This is about 85% of where I want it to be, and very impressive for being a $500 piece of software on a laptop - I just need to get the other 20% so I can go beyond my client’s expectations.

Also, and I know I’ve made the request elsewhere, but a PDF manual & best practices guide really needs to be made available. For a $500 piece of software there is no excuse for not having good documentation, and a series of videos is useless when trying to troubleshoot things on site.

Lastly, Applescript support (and a couple other UI tweaks) would really make this a lot more extensible. I’d be very happy to discuss my specific applications and Applescripting/UI needs outside of the forum.

Cheers - and thanks for the fast response,

Ben

A brief update:

upgrading to a quad-core i7 MacBook significantly improved everything. In the process our video ahead of audio issue went away (God only knows why).

Also, ProRes4444 - despite the drastically larger file size - works much better than Animation codec for video overlays.

Distributing the HDD tasks among multiple disks also helped. I think most of our initial issues were related to disk I/O more than anything. If you are building a laptop-based Boinx rig, you definitely want 7200rpm or better drives, and I highly recommend the OWC “data doubler” kit to replace the optical drive with another HDD. Then add on a FW or eSATA drive as well. Eagerly awaiting more Thunderbolt products to arrive so we can get rid of all that :wink:

Cheers,

Ben

Hi Ben, thanks for the update. Interesting that Prores4x4 works better, we were recommending Animation before but I’ll verify these findings and probably change our recommendation.

Animation worked, but was giving too many artifacts at the compression ratio that would yield a similar file size to ProRes. Artifacts were in the original file, nothing to do with Boinx. ProRes also has some workflow advantages for some of our projects upstream of Boinx.

Send me a private note and I’ll tell you some more about the project and some of the features we would like to see added in Boinx.

Cheers,

Ben