QuickTime movies are supported by PFClean on macOS.
PFClean may be able to read or write QuickTime movies on other platforms as described below. This ability comes without support or guarantee.
On macOS, PFClean uses Apple's AVFoundation framework to handle QuickTime movies, and as such only supports the codecs available through that framework.
On Windows, PFClean uses Apple's QuickTime library to handle QuickTime movies; support for QuickTime is not directly written by The Pixel Farm. This library in turn use plugins to handle movies encoded with various codecs. As such it is not possible for us to give a complete and accurate list of what formats/codecs of QuickTime movie PFClean will support since obviously this list can not reflect any 3rd party codecs you have installed on your system.
A general rule-of-thumb is if the movie will play in the desktop QuickTime movie player, then it can be used in PFClean. However, there are several subtleties you should be aware of that are listed in the next few sections.
On Linux, PFClean uses the open source library libquicktime, if it can be loaded, to handle QuickTime movies. As with Mac and Windows, it is not possible for us to give a complete and accurate list of formats/codecs which are supported since that will depend on libquicktime on your system.
PFQuicktimeServer (Windows only)
PFClean is a 64-bit application and so it can not directly use Apple's QuickTime library on Windows since that is 32-bit. To workaround this situation a 32-bit helper application, PFQuicktimeServer, is supplied through which 64-bit PFClean routes all QuickTime operations. PFClean and PFQuicktimeServer communicate via shared memory for maximum efficiency.
The use of shared memory leads to a number of potential issues:
Shared memory size: A 64Mb shared memory segment is used by default for PFClean and PFQuicktimeServer to communicate. This is sufficient to handle 4K 10-bit RGBA movies. If your movie is larger than this then it will not be supported by default, but will lead to the following entry in the application log:
QuickTime movie too large for PFQuicktimeServer...
The shared memory size can increased by setting the
PIXELFARM_QUICKTIME_MEMORY environment variable. The size needed will be shown in the application log.
Setting environment variables can be tricky on some operating systems so PFClean provides a means of easily doing so by creating an
environment.txt plain text file in
C:\Program Files\The Pixel Farm containing the line:
PFClean needs to be restarted after making this change.
As with all default configuration settings, no single value we choose would be appropriate for everyone. The 64Mb size we have selected is a balance between reasonable resolution support and not hogging resources.
- Resource leaks: If PFClean is not cleanly shut down then the shared memory may not be released. This leaking of resources can, over time, use up all available shared memory preventing new segments being created with the effect that QuickTime support in PFClean fails. A simple reboot fixes this problem.
The frame rate of the QuickTime movie must be one supported by PFClean. PFClean supports all popular frame rates but if the movie has an obscure frame rate then it will show in PFClean's file browser but be labelled with Unsupported FPS. Such a movie can not be imported.
The QuickTime library does not allow PFClean to query the bit-depth of
data in the QuickTime movie file. As such, PFClean would not normally know whether a particular movie contains 8-bit, 10-bit or 16-bit data. To enhance PFClean's ability to deal with bit depth appropriately, a set of codec and bit-depth definitions are defined in the configuration file
quicktimePixelTypes.xml located in
C:\Program Files\The Pixel Farm\PFClean 2018.
We have tried to accommodate the most common codecs and the appropriate
bit depths for those codecs, but there is always the possibility that an
unknown codec is being used. If that codec is not known, and is not defined in the configuration file, then a common fallback default pixel type will be used. This is defined in the
quicktimePixelTypes.xml file as the codec type
default, as an RGB 8-bit pixel type.
If an alternative pixel type is required for a specific codec, simply edit the
quicktimePixelTypes.xml file and add a new entry (or modify an existing entry) for the codec you are using. Once changed, restart
PFClean so that it recognises the change.