In the upstream area of a river, where the water isn’t too deep, you can more clearly see what is happening on the river bed.
Here on the River Severn you can see the underlying rock layers tilted at an angle.
In other sections the bed is entirely covered by loose material – pebbles and stones of various sizes.
Most of these stones, especially the biggest ones, will just sit there, but in times of fast flow the river will have enough energy to pick up the smaller stones and jiggle some of the others. The biggest ones might not get moved, but the ones that are moving will swirl about and crash into them and bits will get broken off.
This is called attrition. It results in the pebbles becoming smaller, smoother and more rounded.
Eventually the big stones will have become small enough to be moved downstream by the flow of water.