For the last few weeks I've been developing a python library to provide DVB support for boxstar. I decided to make something useful out of my testing tools so I wrote a channel scanner which can output in VDR format. Its advantages over the scan tool in linuxtv-dvb-apps include:
It has a Freesat option and it can get channel numbering for that as well as for Freeview. It needs a bit help to deal with regional channels though.
It doesn't round DVB-T frequencies to KHz, getting VDR confused about whether channels it's found in its own scans are new.
There's also a companion tool which merges channels.conf from Freeview, Freesat and BSkyB FTA, and probably others which I haven't been able to test, making sure all LCNs are unique, removing channels duplicated in Freesat and BSkyB, and sorting remaining channels alphabetically.
If anyone's interested, I've checked it into git at boxstar.git.sourceforge.net/gitroot/boxstar in branch "pydvb".