Here is a way to estimate your serve speed from digital video footage of the serve using the following 3 pieces of information:

1. The frame rate of your camera. It is usually 29.97 frames per second in USA, unless you used some special feature like the 240 fps "smooth slow motion" in some Sony camcorders.
2. Estimate of the distance traveled in the air by your serve. The distance from the middle of the baseline to the cross of the service T is 60 feet; the distance from the middle of the baseline to the wide coners of the service box is 61.5 ft. The fact that the serve is hit from a height of 8 or 9 feet increases the distance by 0.5 ft. But typically serves are struck a little inside the baseline, so you have to reduce by that distance. If your serve lands about a foot inside the service line, you have to estimate and subtract that distance as well.
3. Number of frames. Play the video in frame by frame mode, count the number of frames between contact with racket and subsequent contact with the floor. You may have to estimate partial frames.
4. An example of an Andy Roddick serve from the 2007 AO is included for those who wish to calculate an accurate calculation or who wish to verify the validity of the Speed Calculator. Click Here for Example.

The calculation below relies on the reported finding that a serve with an initial speed of mph slows down to mph over a distance of feet
Serve Speed Calculator
 Frame rate of your camera frames/sec Distance traveled in air feet Number of frames

 Initial Speed mph kph Final Speed mph Avg Speed until bounce mph Distance(recalc) feet Travel Time sec Fall due to gravity ft

### Formula used in the above calculation

$$Speed_{mph} = \frac{e^{K \times distance} - 1}{5280 K \times FrameCount} ( FrameRate \times 3600 )$$

$K = \frac{\ln(V_i/V_f)}{S}$
$V_i$ = Initial velocity of a known serve, measured in other ways, in mph
$V_f$ = Final velocity of this known serve, measured in other ways, in mph
$S$ = Distance traveled by this known serve, in feet
5280 = number of feet in one 1 mile
3600 = number of seconds in 1 hour
$e$ & $ln$ : Anyone who would bother to read this far should know what they are

Python:


import math
KNOWN_SERVE_SPEED= 120.
KNOWN_SPEED_AT_BOUNCE= 87.0
DISTANCE_TRAVELED=60.

# A constant for formula:
K= math.log(120./87)/60

def init_speed(nf, d=60, fps=29.97):
speed = ( math.exp(K*d) - 1) / (5280.*K * nf) * fps * 3600
return round(speed*100)/100

def avg_speed(nf, d=60, fps=29.97):
speed = d / (nf / fps ) * (3600./5280.)
return round(speed*100)/100


The main assumptions are :
1. The motion of the ball after the hit is only affected by the drag force of the air alone, which is assumed to be proportional to the square of the veolocity. There is the obvious force of gravity, but being a vertical force, it doesn't significantly affect the calculation.
2. A $V_0$ mph serve slows down to $V_f$ mph over S feet. We need these numbers from some external source such as this website (unfortunately, it no longer works) reporting a study done on Sampras' serve

### Deriving the Speed formula (requires Calculus)

#### In words

A Tennis ball is slowed significantly by air resistance. Therefore a simple formula of $speed = \frac{distance\ traveled}{time}$ , will be a poor approximation of the initial speed immediately after impact, which is what we care about. The air resistance, or drag force, is known to be proportional to the velocity of the ball. Applying Newton's second law gives us a simple differential equation. Then we just need to determine the values of constants that arise. To do that, we use an initial condition and some data from a now dead website - a Pete Sampras serve clocked at 120 mph slowed down to 87 mph after traveling 60 feet.

#### The math

Applying Newton's second law ($F = m a \implies a = \frac{F}{m}$) to the motion under a drag force,

$\frac{dv}{dt} = \frac{-kv^2}{m}$

Drag force is $-kv^2$ where $k$ is a constant related to the drag coefficient. since $m$ is essentially a constant (mass of a tennis ball), Let us combine the constants $c$ and $m$ into one constant: $c = k/m$ to simplify our job

$\frac{dv}{dt} = -c v^2$

The above first order differential equation is separable (the easiest kind) and therefore can be written
$\frac{dv}{v^2} = -c dt$

By integrating both sides and rearranging a little, we get
$v = \frac{1}{ct + D}$

D is the constant of integration, and when you set t=0 above, you can see that D must be equal to $\frac{1}{v_0}$

Therefore

$v = \frac{1}{ct + \frac{1}{v_0}}$ .....(1)

where v0 is the initial velocity, the velocity immediately after contact with racquet.

Integrating the solution for v, we get distance s

$s = \frac{\ln(ct + \frac{1}{v_0})}{c} + E$

E is yet another constant of integration. Knowing that the distance s is 0 when time t=0, we calculate $E = -\ln(1/v_0)/c$

Substituting for E,

$s = \frac{\ln(ct + 1/v_0)}{c} - \frac{\ln(1/v_0)}{c}$

$s = \frac{\ln(ct + 1/v_0) - \ln(1/v_0)}{c}$

$s = \frac{\ln(ctv_0 + 1)}{c}$ ...... (2)

$e^{sc} = ctv_0 + 1$

$v_0 = e^{sc}/ct - 1$ ...... (3)

This $v_0$, the initial velocity immediately after racquet impact, is what we are after. From our camcorder experiment, we know s, the distance traveled and we know t, the time it took to travel that distance; t = (frames * FrameRate). The only unknown in the above formula is c, the modified drag coefficient for a Tennis ball. Time to calibrate our model using a known fact about Sampras' serve - that a 120 mph serve slows down to 87 mph over 60 feet. Substituting the numbers into Equation (1),

$87 = \frac{1}{ct_1 + 1/120}$

$t_1$ above is whatever time that 120 mph serve took to travel 60 ft(= 60/5280 miles). Therefore,

$ct_1 = 1/87 - 1/120 = 0.00316092$ ....... (4)

Now applying Equation (2) to the point of the bounce,

$60/5280 = \frac{\ln(120ct_1 + 1)}{c}$

We can plug in the expression for ct1 from Equation (4)

$60/5280 = \frac{\ln(120 \times 0.00316092 + 1)}{c}$

$c = \frac{\ln(120 \times 0.00316092 + 1)}{60/5280}$

$c = 28.3$

We plug this c into Equation (3) to get
$v_0 = \frac{e^{28.3 s} - 1}{28.3 t}$

We want to be able to express the formula in terms of number of video frames rather than time.
t = (F / frame_rate_sec) / 3600
The 3600 is to convert time to hours. If distance s is expressed in feet want to convert the distance s to miles by dividing by 5280. Thus we finally arrive at the formula:

$v_0 = \frac{e^{28.3 s/5280} - 1}{28.3 F} (FrameRate \times 3600)$

where
$v_0$ is the initial speed of the serve,
s is the distance traveled by the serve during the observed interval
F is the number frames of video it took the ball to travel this distance
frame_rate is usually 29.97 with most camcorders.