Estimate camera generalized velocity from consecutive frames
It's possible, but it takes some sophisticated processing to do it effectively in a general environment.

First of all, you can only detect motion relative to what you can see in the field of view. This requires good foreground/background separation to eliminate objects that might themselves be moving relative to the background (which is presumably what you want to measure the camera motion against).

Second, the background must have enough features (edges) in it to make all six degrees of freedom unambiguously observable.

It boils down to figuring out what the trajectories through the viewspace are of all the features in the scene, and then doing a cluster analysis of those trajectories in order to assign them to distinct objects. Finally, pick the cluster that most probably and most consistently represents the background. The inverse of this trajectory is the camera's trajectory.

Once you have the geometry of the situation squared away, you still need information about the size of objects in the field of view in order to scale the results correctly.