I am not familiar with Mathematica video processing capabilities. However, this does seem like a very interesting problem.
I do not know if standard image descriptors would be enough to reliably track the motion of ripples in the water, but maybe one of the algorithms in ImageKeypoints could be used to estimate flow in pixel space by tracking the movement of descriptor features. Pixel-space motion could be converted to real-world speeds if you know the distance of the camera from the water and the camera's calibration parameters.
To use machine learning, I believe you would need a diverse dataset with hundreds --or perhaps thousands-- of flow measurements and videos of different rivers. If you built a large dataset, you might be able to use the audio from the video to improve the flow rate estimate as well.
I have done some basic filtering and data exploration in the notebook below.
I do not know enough about turbulence to even begin to estimate the flow rate just from frame-to-frame differences in the water's surface. I would try to collect more data and see what accuracies can be achieved using standard image regression algorithms like wolfram's Predict - which uses gradient-boosted trees, neural networks, etc.
Frame-to-frame difference after image blur:
Frame-to-frame difference after GaussianFilter:
Frame-to-frame difference after LaplacianGaussianFilter:
Sorry that I have no definitive solutions, this is a challenging problem!
Best of luck, Mr. Ghorbani. Be sure to write a reply if you think of any interesting solutions yourself!