Video Pitcher

Video Pitcher is an IP Camera monitoring application with special features for easily connecting to XTension and providing the ability to record snippets of video in response to motion or other commands. It automatically creates video streams within XTension which can be used in views and also automatically appears on the list of available video streams to be viewed though the X2Web interface.

The streams and the recorded archive movies are available through the new WebRemote interface:

Video Thumbnails Video Archive Live Video Control

Whats New

  • build 63:
    • added support for any generic RTSP camera. Anything that you can load through quicktime should now work with Video Pitcher.
    • added the “info” parameter for the record from verb. This lets you send a date and time and a reason that the recording is happening. For example you might send the time string and the name of the motion sensor that triggered it. This will be displayed next to the video archive in the web remote. I use this like this:
set theTime to time string of (current date)
ignoring application responses
  tell app “Video Picture” to record from “backyard cam” for 30 info theTime & “ Backyard Motion”
end ignoring
  • when launched Video Pitcher creates temporary units in XTension with the names of the streams. You can now control them to turn the streams on and off in Video Pitcher. This is useful if you have lots of wifi cameras and need to protect your bandwidth, but it can take several seconds for a stream to become active so you may miss the event that you wish to record if you turn the camera on and off in your motion scripting. But there may be times you wish to disable cameras completely. (note: the IP9100 video servers will not let you turn off all 4 of the streams, if you try this they will turn the first one back on by themselves.)
  • build 48:
    • fixed a failure to reconnect for mjpeg streams. mjpeg streams will now resume after a power hit or other intermittent drop in communications to the camera.
  • build 44:
    • Fixed an occasional hang when creating a new movie capture.
    • Fixed a memory leak associated with flattening a captured movie to disk.
  • build 40: I've revamped the setup for saving movies in response to actions in XTension. Instead of manually managing output movies and opening and closing them a single verb you can run in the ON script of a motion or other sensor will record a snippet.
ignoring application responses
  tell app "Video Pitcher" to record from "stream name" for 60
end ignoring

would cause a minute of video to be recorded from “stream name” to a new snippet quicktime movie. As of this writing it will be h.264 encoded quick time file, date stamped in the directory. The Ignoring Responses block is not vital, but will keep XTension from hanging up if there is a problem with the beta or if things just get bogged down. At the end of the timeout the snippet will be finalized, flattened and prepared for serving up to the web automatically. If the record from verb is issued again for the same stream while it's already recording, the timeout is just advanced forward and it will keep recording to that snippet until the timer is allowed to run out. The program can record from multiple streams at the same time. Recording for a long period of time may result in long finalization and flattening times on slower machines, but no frames should be lost on other recordings that might be going on.

The new Video Pitcher module for X2Web provides a front end as shown above to the saved snippets so that you can scroll through them after they are finalized.


Video pitcher can be used by itself to view and record from IP cameras but is better suited to being a video injector for Xtension and using X2Web as the internet viewer for the video streams and captured movies.

Supported Cameras

  • Anything that provides a jpeg refresh link that serves up a single picture
  • Should be anything that serves up a motion jpeg, or mjpeg stream. These are not really a standard though and some cams might not function, let me know if you find one that doesn't work.
  • The Hawking netcams
  • The IP9100 series of 4 input analog video IP servers
  • The iGuard series cameras and external USB cams plugged into them.
  • The Schlage wired IP cams that Radio Shack is still selling work too: Schlage Cam
  • Almost any camera using an RTSP stream with the exception of the Foscam C1 cameras that use a non-standard streaming format that isn’t supported by any quick time systems on OSX though can be viewed with VLC.

Computer Requirements

Monitoring and recording a video stream requires a not insignificant amount of CPU power, especially for recording video. Though the program can run even on a 1ghz PPC machine running OSX 10.3 or later, a modern Intel chip and 10.5 is recommended. Video also takes up a lot of disk space, in the betas there is no provision for deleting old movie captures, you must monitor your disk usage manually during the beta phase.


Inside the current beta zip file you'll find the application and the replacement X2Web module that includes the video snippet archive pages.

  • Copy the program to anywhere convenient on your hard drive, it will run happily from inside the applications folder.
  • In the preferences window select a folder to store recorded movies in.
  • if you’re using the program with the newer WebRemote no further configuration is necessary, if you’re using it with the older X2Web interface then continue:
    • place the “videoviewer” folder inside the “modules” folder inside your instantx folder. This will replace the videoviewer folder that came with the X2Web that you're currently running. It will be included in the next official release of X2Web.
  • Lastly if you're running the program for the first time you'll need to setup any cameras by using the “new” menu item to create them.
  • If you created scripts to use the more complicated method of recording video available in earlier versions those verbs are still available in this version and will not be removed as they provide a lot of functionality for advanced users.


Video Pitcher is in free for use with XTension.

Build 71 3/25/2016

Download Build 071

NOTE: this version of video pitcher requires at least XTension build 922

  • Video recordings in the automatic save folder will now be deleted starting with the oldest one from all cameras when the disk fills up. The minimum space before deletion begins can be set in the preferences window under the Movie Capture tab. The default is set to 100 meg and the minimum setting is 50 meg. Even if you’re storing your video on a separate drive from the system some space is necessary for the temporary movie files and workspace for flattening that occurs when saving a movie. Disk space scanning is done every 5 minutes or when you press the “reap files now” button on the preferences window. You cannot turn off automatic disk space deletion at the moment. All folders and files that are within the automatic recording folder will be considered for deletion.
  • Each camera now has an optional setting to delete recordings that are more than a certain number of days old. This is off by default but can be turned on in the setup dialog for any camera. You may wish to save some cameras for longer than others. The camera capture folders are scanned just after midnight each night. This is in addition to the disk space maintenance, both can work together to make sure that some cameras are limited to some time limit, while others are left available until the disk fills up.
  • Some good optimizations in internal frame handling. Less CPU is wasted decoding images when no view window is open, no video is being recorded or no other interface in XTension or web remote is watching a stream.
  • Known Bug: There is a problem in this version where the generic JPEG refresh stream won’t draw the timestamp until a view window is open in the application. This will get fixed for the next build.
Build 68 2/22/2016

Download Build 068

  • Build 68 requires, and is required by, XTension build versions 922 and newer.
  • New communications with XTension allows lower latency and better frame rates in XTension views and when embedded to the web interfaces.
  • Added some options for flipping the picture to some of the camera types. If you would like the same features added to other camera types please let me know.
Legacy Build 66
  • This version of Video Pitcher can be used with any XTension build prior to 921.

video_pitcher.txt · Last modified: 2016/03/25 17:58 by James Sentman
CC Attribution-No Derivative Works 3.0 Unported Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0