[FFmpeg-devel] [ANNOUNCE] New Commercial Product Using FFMPEG - Thanks To Developers.

ffmpeg-devel at ballcam.com ffmpeg-devel at ballcam.com
Fri Nov 23 08:59:55 CET 2012

BallCam Technologies Incorporated would like to thank the FFMPEG developers
for their contribution.

The BallCam (http://BallCam.com) Uses FFMPEG as part of its image processing 

This message is being posted to this list, since new functionality was developed,
and the FFMPEG team may at its interest include that software as part of the
libavfilter system, as described below.

Functional Description of the BallCam:

1) Hardware is a Gumstix Overo, Mounted on a Thumbo carrier
board, with a Gumstix Caspa image sensor. It is running
Linux, Overo-Angstrom, 2.6.34 Kernel.

2) The image sensor is an Aptina MT9V032, and it returns
a raw image as YUYV422, 752x480.

3) The angle-sensor (accelerometer) is a LIS331HH on
a breakout board purchased from SparkFun.com, and
is read using functions from the i2ctools suite.

4) Prior to each frame, the rotation angle of the ball
is measured. Then a frame is grabbed, and another angle
measure taken. The average between the two is the rotation
angle the ball was at when the frame was grabbed.

5) After the frame is grabbed, sws_scale() is called
to convert the PIX_FMT to whatever is needed by the 
output codec. (Currently, H264, MPEG2VIDEO, MPEG4, FLV1, 
and MJPEG output can be generated, although for some
reason the FLV1 codec seems to be generating invalid output data).

6) After the sws_scale() is done, the image is converted to
MJPEG, and pixRotate() from the Leptonica library,
(http://www.Leptonica.com) to "unrotate" the image using
the angle data from the accelerometer.

7) After the image is unrotated, it is then transcoded
to whatever output format, and saved to SD media, or
transmitted/streamed over WiFi. The MPEG4 output codec
seems to work fine for live streaming, and it is believed 
at least, that the FLV1 codec will work as well, as live 
video can be streamed from the device using FFMPEG/FFServer,
using the "swf" Format declared in ffserver.conf.

libavfilter was originally considered to do the unrotating,
but as far as it is understood at this time, the rotate
filter only works in 90 degree increments. (Currently
FFMPEG-1.0 is used, and unless there is a need to use 
a later commit, point-releases will be used).

If the FFMPEG team would like to include arbitrary angular
rotation as part of the rotate libavfilter, please respond as 
such to this message, and BallCam Technologies Inc. may
pursue that as part of its contribution.

In addition, we have published a PERL Module, FFMPEG::Effects,
that is an Object-Oriented PERL interface to libavfilter functions
used for titles, overlays, and fades. It was developed some time
ago when libavfilter was still part of the SOC, and will eventually 
be updated to work with the more complete libavfilter that
currently exists.

BallCam Technologies Inc.

More information about the ffmpeg-devel mailing list