The following FFmpeg filter will populate the red channel of a video with the hue of the video:
geq=r='if(eq(st(3,max(max(st(0,r(X,Y)/255),st(1,g(X,Y)/255)),st(2,b(X,Y)/255))),ld(0)),(ld(1)-ld(2))/(ld(3)-min(ld(1),ld(2))),if(eq(ld(3),ld(1)),2+(ld(2)-ld(0))/(ld(3)-min(ld(0),ld(2))),4+(ld(0)-ld(1))/(ld(3)-min(ld(0),ld(1)))))*42*ld(3)'
You can make a grayscale video by appending the following:
, geq=g='r(X,Y)':b='r(X,Y)'