RSS Feeds

Streaming Quartz Composer

Resources

The streaming of digital imagery, including imagery associated specifically with Quartz Composer, typically involves an integration of several related but separate items of third party software, third party services and a variety of broadcasting motivations and techniques. The purpose of this topic is to aggregate appropriately related internet broadcasting resource information and to provide a discussion venue for Quartz Composer streaming advocacy and activities, with a focus on Quartz Composer related internet broadcasting activities which showcase software from kineme.net.

Regarding streaming on OS X in general: It should be clearly understood that high definition streaming is processor intensive. Common application requirements for high definition streaming on OS X may well include the simultaneous use of an audio routing utility, a virtual camera and an HD capable broadcasting encoder as well as whichever application(s) may be involved in initial imagery and audio generation.

Broadcasting Encoders

Third party software which does the actual streaming. These tools access imagery provided by external cameras and built-in webcams, but they can also access output from virtual software cameras which are acting as hosts for Quartz Compositions and/or which are acting as capture tools for Quartz Composer related imagery generated by other applications.

Wirecast Commercial broadcasting software from telestream.net. Includes support for screen captures.

Regarding Audio: Broadcasting encoders for OS X handle audio and video as separate entities. Audio from microphones is normally recognized by default but audio from other sources usually needs to be made available by either feeding the audio through the microphone or by utilizing an audio routing utility such as Soundflower (see Streaming Related).

Virtual Cameras

Virtual cameras are software applications that simulate hardware camera output. They are recognized as a camera source by most broadcasting encoders and by many other applications. Acting alone or as intermediaries between hardware cameras and other applications, virtual cameras can be used for screen captures and for the addition of video, still images and various digital effects. Some are capable of realtime presentation of live Quartz Compositions either by hosting the compositions as effects, in which circumstances they can also be utilized as stand-alone hosts for Quartz Compositions, or by frame sharing with other applications via Syphon (see Streaming Related).

All the virtual cameras for OS X rely on a specialized QuickTime Component to perform their mimicry of hardware camera output. It's worth observing that the need for stand-alone virtual camera applications seems to be primarily attributable to issues of non-viability, for most developers, of directly integrating a similar camera mimicing functionality into their own individual applications. That said, it's also worth observing that if there's a need to stream imagery other than output from a hardware cam or dedicated audio/video conferencing client, the use of a virtual camera will probably be required.

Live Video Broadcast Hosting Services

Broadcast hosting services receive the stream and make it available online for viewing, typically by rebroadcasting output from the browser based Adobe Flash Player. Most hosting services also accept high definition streams from Flash Media Live Encoder and/or QuickTime Broadcaster and Wirecast. Links to host-specific encoder instructions, if known, are noted for each service:

Audio Video Conferencing Clients

Using the virtual cameras listed above, live quartz compositions can also be streamed from the Mac via most common AV conferencing clients. iChat is an exception in that it utilizes a private application programming interface to access camera imagery. iChat therefor does not currently access virtual cameras directly, but there is potential for a work-around using the ManyCam plugin.

TinyChat.com There is a plethora of browser based, cross-platform, multi-party conferencing sites on the web. They come and go. Some allow for substantial numbers of participants in a single conference. Audio latency is an issue with many. TinyChat is listed here as a typical, currently existing example.

QC Capable Visualist Accessories

While these tools don't directly input to broadcasting encoders, they are nonetheless capable of hosting and presenting live Quartz Compositions and are accessible for streaming via virtual camera using various screen capture techniques and/or Syphon:

Quartz Composer Freeware Xcode Developer tool from apple.com. Quartz Composer is now distributed as a supplementary download to Xcode. It is bundled into the Graphics Tools for Xcode package on the Downloads for Apple Developers page (developer login required). The Downloads for Apple Developers page can also be accessed from within Xcode itself. Syphon compatible.

Streaming Related

Additional resources which may be useful in association with web broadcasting:

Syphon Open Source technology that allows applications to share frames with one another in realtime. QC integration, amongst many others. Syphon's homepage contains a useful list of links to numerous Syphon compatible applications.

Syphon Recorder Beta. Record video in realtime from any Syphon-enabled application, and capture stills.

v002 Media Tools Contents include a CGDisplayStream based screen capture for OS X 10.8, reportedly based on a new API for that version of the operating system. It appears to require compilation in Xcode, as of this posting. Should probably be considered beta-ware for now.

Soundflower Open Source audio routing utility that allows applications to pass audio to other applications. Capable of making system audio available as an audio source to broadcasting encoders and other applications.