The way I do it is with a command-line program called avconv (a mostly-compatible fork of ffmpeg); I use the version from the medibuntu repository. There are GUI programs that can do the same thing: winFF and Avidemux are two that are often suggested, though I don't use those & so can't really give you any suggestions. Start a specific thread and I'm sure that others will pop in and help you.
For video there are container formats (MP4, AVI), which can contains several video (h.264, MPEG2, XVID) and audio tracks (AAC, MP3, Ogg Vorbis). Sometimes there is a problem with a container, but the actual video & audio tracks inside are perfectly fine; in this case, you can simply remux the video - take the tracks and put them in a new container. I would use the MKV file format for this. In a terminal:
With this method, you won't lose any quality. Again, there are GUI ways of doing this, but I don't know them. If you are unfamiliar with the Linux command-line, but willing to learn, this site will teach you the basics. If you don't want to learn (it's seriously not as hard as it looks), then you'd be better off using one of the GUI options.
avconv -i input.wmv -c:a copy -c:v copy output.mkv
If that avconv command doesn't work, then you'd have to actually transcode to video - that affects the video track (more properly called a stream) rather than just the container, and inevitably loses some quality - though not a noticeable amount, if you do it right. I would be happy to go into that a bit if you want/need it. But between using a different player and the above command, you probably won't.