ffmpeg's swscale should do the trick. Alternatively, it's very easy to code this yourself. Look at the definitions of the formats:
I420 is exactly the same as YV12 except that the order of the U and V planes is reversed. Three memcpys are you're done.
and, the file writer part of sample code can be changed to write YV12 instead of I420, as the actual MediaSDK API is 3 pointers to the 3 planes (allowing direct support for all YUV420 variants), and the only thing making it a "YV12" file is the code that writes it out in that order.