Happy fifth birthday, media.io!

media.io turns five years today. From launching media.io over the last birthday post, media.io now has 1 million visits a month.

More files and traffic than ever before

August 2014 was a good month for media.io with more than 2.5 M files converted successfully (at 91 % sucess rate).

Plans for the future

A few things I want to bring to media.io in the future:

  • Support for converting to AAC and M4A.
  • Multiple conversions at once -- upload one file and it gets converted to different output formats.
  • Cloud support.

If you have other things you would like media.io to do, please post them in the UserVoice forum.

Support for four new audio formats and less 404s!

On 12th of August, I rolled out a new version of media.io with a number of improvements and new features.

Bugfix for increased file-not-found errors

When I rolled out support for files with identical names, I didn't realize that media.io's download feature was based on names. If names of files can occur more than once, this can lead to situations in which a file that was already deleted was selected to be downloaded. This resulted in about 50 % more 404 (file not found) errors that necessary. Since 404s aren't very frequent, I didn't notice this for a while, for which I apologize (alerting for unnatural amounts of 404s per day is now in place).

This bug was fixed in this release. The bug fix also makes the download more robust in browsers that are buggy when it comes to URL encoding (*cough* Safari *cough*).

Support for new file formats

With this release, media.io supports four new file formats:

  • µLaw-encoded files (ending on .ulaw).

  • A-law encoded files (ending on .alaw).

  • Sony OpenMG files (ending on .oma).

  • CRI ADX files (ending on .adx).

Note that I didn't have a lot of files to test these formats with so it might take until end of August before I can take a look at the success rates.

Support for files with the same name and more Plupload!

Yesterday, I have released a new version of media.io with the following changes:

Support for uploading the same file again

You can now upload the same file over and over again. While I want to support re-conversion of uploaded files, that may take a while. I hope this solution is good enough for a while.

Plupload for everybody

Since the original static file upload was served to few people, all file uploads on media.io are now handled by Plupload. This means that old browsers such as Internet Explorer 9 get the same user interface as up-to-date ones.

Bug Fixes

An addition to the new features, the following bugs were fixed:

  • After adding files exceeding the 750 MB upload limit, the upload limit was never cleared. Now, even if the size of the files you want to upload exceeds the limit, removing enough files will let you add new files again.

Please like media.io on Facebook, follow it on Twitter or, if you know how to make media.io even better, post a suggestion.

Linux Audio support getting better and better

2.5 M files are uploaded to media.io in a month. 90 % of them can be converted without a problem. Some cannot. Recently, I moved to a new server and a more up-to-date operating system.

Since media.io delegates all of the actual conversion work to programs such as ffmpeg, wavpack or oggenc, the newer operating system should convert more files successfully.


The test data was 1048575 files from May 2014 and 1048575 from July 2014. Data from May 2014 was collected on the old server running Ubuntu 12.04, data from July 2014 was taken from the new server running Ubuntu 14.04.

Only input extensions that were uploaded more than 1000 times in May were counted.

ExtensionUploaded Files May 2014Success Rate May 2014Uploaded Files July 2014Success Rate July 2014Change (%)

Most of the formats show a slight improvement. Whether this is due to changes in the conversion software or just noise is hard to say.

The drastic improvement in support for .ape files is interesting, as is the drop in .caf files. My theory for .caf is that there may be more DRM-protected files around than a month before.

All in all, I think audio support on Linux has become very good. For the popular formats, it's hard to find one that does not achieve 90 % success rates and some even surpass 95 %.

Some new things at media.io

On 24th of May, I deployed a new version of media.io that has the following new features:

Enforcing the 750 MB limit

Back when I launched multi-file uploading, I totally forgot about the 750 MB file size limit media.io used to enforce. For a long time, people could upload as many files up to 750 MB large as they wanted in one go, bypassing the limit.

The file size limit was originally intended to

  • prevent bandwidth abuse
  • help with upload success rates
  • keep traffic manageable.

Since the biggest cost driver of media.io is the traffic, I need to make sure there are certain limits in place that prevent users from consuming extreme amounts of bandwidth.

Both the file size limit and the upload size limit affect less than 0,5 % of all visitors each.

And seriously, if you are trying to convert a 81 GB audio file on the web, you may be better off using a dedicated program.

More new things

  • media.io now prefers Arial. Not a bad idea.
  • Donation buttons are now localized. This was missing for a while.

That's it for this time. If you would like media.io do something, please post your ideas on media.io's Facebook page or use the UserVoice forum.

Web Fonts that make a difference

Way back when Google still had their Website Optimizer, I ran a split test between Arial, Tahoma and Verdana. The difference was small but Arial may have been the better performer of the three.

Nowadays, Google curates and serves a huge number of fonts, many of which even look good.

But web typography, like website design, must work for the site, not against it so using a web font should never lead to lower conversion rates, especially considering the performance hit of using web fonts in the first place.

I tested the following fonts against Bootstrap's default font stack (Helvetica Neue, Helvetica, Arial, sans-serif):

  • Arimo normal
  • Asap normal
  • Noto Sans normal
  • Open Sans normal with bold for headlines
  • Open Sans normal
  • Oxygen normal with Oxygen bold for headlines
  • Oxygen normal with Oxygen light for headlines
  • Oxygen normal
  • Roboto normal with Roboto light for headlines
  • Roboto normal with Roboto medium for headlines
  • Roboto normal

I also tested moving Arial to the first position (before Helvetica Neue and Helvetica).

Asap, Noto Sans and Open Sans didn't perform noticeably better than the default so they were taken out of the rotation. Of the remaining fonts, Oxygen (especially with Oxygen light for headlines), Roboto with Roboto medium for headlines and especially Arimo had the potential to be better than the default.

The difference was very small though with Arimo being less than 1 % better than the default (at 98.81 % confidence).

In the end, Arial as the first font also worked better than the default stack so I went with that, especially since it saves the extra request for the web font.

Chinese, Malay and support for Opus

I've just released a new version of media.io that has some really cool new features.

media.io in Chinese and Malay

media.io is now available in Chinese and Malay. If that's your native language, congratulations!

Support for Opus

Opus seems to be a very promising audio codec, especially for low bitrate applications. media.io now supports Opus files so you can convert Opus to WAV, for example.

Stability updates

I have added a highly speculative fix for the occasional Java Virtual Machine hiccup where threads seem to disappear but blocked other threads aren't woken up.

Better notification for empty files

150 people try to convert zero-byte (empty) files every day. For those, a better error message is now displayed.

That's it for this time. Please remember to like media.io on Facebook or follow media.io on Twitter for the same content but in a much more compact form.

New server with 50 % more power

media.io has been running on a server with an Intel Core i7-3770 CPU for almost a year now. When I bought the server, it could cope with the traffic easily. Of course, said traffic increased and made the CPU load on the server look like this:

media.io using pretty much all resources. This screenshot was taken in September 2013.

media.io using pretty much all resources. This screenshot was taken in September 2013.

Things didn't get less hectic so a new server was needed. Yesterday, I switched to a new server using an Intel Core i7-3930K CPU that has 12 instead of 8 cores.

The new server, looking already familiar.

The new server, looking already familiar.

One of the reasons I like Intel i7 CPUs is that they can take a beating. In addition to running flat out most of the time for 343 days without (system) downtime, the old server also moved 470 TB of data around in the old interwebs.

Coming soon: New audio formats

Since the new server is running the latest version of Ubuntu, it's possible to add support for new audio formats that weren't possible on the old server. Support for the Opus Codec will arrive in the next days.

Bug fixes and Performance improvements

Last Friday, a new version of media.io was released. This release contains the following changes:

  • Relative URIs in HTTP redirects now supported. This change will increase the robustness of media.io's URL importing.
  • Support for nginx' X-accel feature. A new servlet was added that forwards the file downloading to nginx. This will ultimately reduce CPU load and free up resources for faster processing of your files.
  • Minor performance improvement. Directories for uploaded and processed files are now only created when you start to upload or import a file. This way, the home page should load a little bit faster (in the low milliseconds range).
  • When importing a URL, the "Select Files to Upload" link sometimes didn't work. This was fixed.

In other news, the media.io online audio conventer converted two million files already in October 2013. This is of course related to the multi-file uploading feature introduced August 2013.