I'm using QGIS 2.16 and I'd like to extract a river profile from a DEM applying user-defined intervals (e.g. every 100 m of horizontal distance). I get profiles using both the "Profile tool" and the "Profile from lines" SAGA process. However, I cannot control how those profiles are generated.
If you have a river centreline you could convert the centreline into spaced points using for example the Qchainage plugin to create points spaced at the desired interval.
Then use the point sampling plugin to add the DEM elevations to the points.
Then export the attribute table out into excel or R or somesuch programme and plot the profile.
Be careful of the direction of your centreline so that it calculates the points from upstream to downstream.