Skype released a new "hotfix" version yesterday (12 Dec 2007), which restores the ability to specify the video resolution and frame rate by editing their config.xml file. The purpose of this special blog entry is to provide instructions on exactly how to do that editing. As usual, however, I have several things to say before I actually get down to the instructions.
Almost all of the discussion about editing the Skype config.xml file has concentrated on increasing the video resolution and/or frame rate for cameras other than the "chosen three" Logitech High Quality Video models, so that owners of other cameras that are just as good (or better) can benefit from improved video quality. However, this can also be used to reduce the video resolution or limit the frame rate. There are a number of situations where this can be very useful. One common one is if you have a volume-based price on your internet connection, and you want to use video calls but limit the amount of data they transmit. Another is when a company doesn't want Skype users to flood its network with video call data. The new High Quality Video mode is likely to make this even more important - if your camera, computer and bandwidth are good enough, you are going to get High Quality Video, and produce as much as four times more video data, whether you want it or not. By editing the config.xml file and setting the video resolution to 320x240 (or less), you should be able to stop High Quality Video mode from kicking in. Note that I say "should", because I haven't been able to verify this yet, I do not have either a camera or a computer which are "blessed" by Skype. If anyone else tries this and verifies that it disables High Quality mode, I would appreciate hearing about it.
As with any changes that involve editing configuration files, you need to be very careful when doing this. The consequences of making any kind of small mistake are rather drastic. When Skype starts up, if it finds an error in the config file it will simply toss the entire file, and revert to the original default configuration. This is not a serious as it may sound, because it only means that you will lose things like your changes to the default "View", "Tabs and Panels", Skype main window background and the like. You will not lose your contacts, chat history or any such things. Indeed, it sometimes seems like the "recommended solution" to half the problems reported in the Skype User Forums is to delete the config.xml file, or even the entire Skype Application Data directory, and let Skype recreate it the next time you start it. Still, if you want to be safe rather than sorry, the smart thing to do is to make a copy of the config.xml file before you start, either under another name, or in another folder or on the desktop. Then if you start Skype and find that something went wrong, and it's all gone back to the original configuration, you can just shut down Skype again and copy that backup into the Skype directory again.
Ok,with those preliminaries out of the way, here are the instructions:
- Make sure Skype is not running before you start this procedure. Skype updates its config.xml file periodically, so if you make these changes while Skype is running, you are likely to lose them and have to do it all over again.
- Open an Explorer window on the Skype Application Data folder. One simple say to do this is by going to "Start" (the "Orb" on Vista), then "Run...", and then type %AppData%\Skype in the "Open:" field. You can accomplish the same thing by typing %AppData%\Skype in the address bar of any Explorer window, such as you would get by double-clicking "My Computer" or "My Documents".
- In the Skype folder you will see a sub-folder with the same name as your Skype login name; double-click that to open it.
- In this folder you should see a file named "config.xml", or just "config" with a description that says "XML Document". Make a copy of this file now, for example with right-click copy and paste, or with ctrl-drag-and-drop.
- Right click on config.xml (the original, not the copy) and choose "Edit". This should open the file in Notepad.
- Scroll down until you find the section that is bounded by lines of and . The editing you are going to do must be between these two boundaries.
- Add these two lines within the "Video" block:
Indentation and placement within the block don't matter, Skype will rearrange this as it wants the next time it reads and then rewrites the file.
- Save the changes and close Notepad.
- As I said, you need to be very careful with these changes, because if you make even a small mistake, Skype will throw away the entire file. I have gotten into the habit of testing my changes before starting Skype by simply double-clicking on the config.xml file in the explorer window again after I close it. By double-clicking (or right-click and choose "Open"), you will open the file in Internet Explorer, which will parse the XML content of the file and will tell you if there are any problems with it.
- Start Skype. If you have made a mistake in editing the config file, you will see that any changes you have made to the Skype main window are gone, and it may even bring up the "Create a New Skype Account" window. Don't panic, just shut down Skype, copy the backup you made to the Skype login directory, and try the editing again - and be even more careful this time.
If you look at the Skype User Forums, you well see that some of the "experts" there say that you should add a 30 line to the config.xml file as well. This is absolutely not necessary, the default maximum frame rate in Skype has been 30 for quite some time now - at least since the first 3.5 release. You only need to add an Fps line if you want to limit the maximum frame rate to less than 30 FPS. Skype seems to give priority to frame rate over resolution, and it is determined to get to 30 FPS by default, so if your computer isn't quite up to that speed, you can watch the technical data from Skype and see it running the frame rate slowly up until it overloads either the CPU or bandwidth, then it will drop way down, and start to slowly rise again. In some cases it will finally get disgusted with this game and reduce the resolution to the next lower step, then start the frame rate game all over again. In such cases you may decide that a frame rate of 20 FPS, or even 15, is "good enough" for what you want, and in order to eliminate the constant adjustment and preserve the higher resolution, you can add a line to the config.xml file saying <Fps>20</Fps> or 15, 25, whatever you like. The only thing you can't do is set it above 30 or much below 10. (I think the lower limit is about 7 or 8, but honestly the video quality at that frame rate is so bad that I've never had the patience to watch it long enough to figure it out.)
Making these changes to the config.xml file does not guarantee that the resolution and frame rate will stay at the values you specify; in fact, it doesn't even guarantee that Skype will start at these values, it only serves as an advisory startup value and a maximum limit value. When you start Skype it will try to bring up the camera at the resolution you have specified, but if it is unable to do so for any reason, it will simply drop down to lower and lower resolutions until it succeeds in starting. If your camera has an "active" led, you can actually see each of these attempts to start up, the led will light up briefly and then go out again. At one point in my testing I had 640x480 in the config.xml file, but I was connecting to an older laptop that couldn't receive video at that resolution; the camera activity led went on and off six times before the video actually came up, at 320x240 resolution. As for frame rate, Skype will always start at 15 FPS and then (slowly) adjust either up (if possible) or down (if necessary). As I have said, the maximum frame rate in Skype is 30 FPS, so if the conditions allow it Skype will eventually get there and just remain stable. At the other extreme, if it can't keep the frame rate above about 10 FPS, it will eventually drop the resolution to the next lowest step, and then start the frame rate at 15 again.