Some Files Were Never Going to Convert

Some Files Were Never Going to Convert

The Worst Time to Learn a File Can't Be Converted

You pick the file. You wait for the upload. You wait for the conversion. And then a box appears that says Error opening output files: Invalid argument.

That sentence is true in the narrowest possible sense and useless in every other. It is what a muxer says when it is asked to write an output file and there are no decoded samples to put in it. It describes the last step that failed, not the first one that was never going to work. Meanwhile you have spent your upload, your time, and sometimes your quota.

We have been moving those refusals to the front, where they belong. Here is what we found on the way.

Some Codecs Are Names Without Decoders

Run ffmpeg -codecs and every line is marked with letters. D means it can decode that codec; E means it can encode it. One line reads:

..A.L. ac4    Dolby AC-4

No D. No E. ffmpeg knows the name of Dolby AC-4 and nothing else about it. It can see the codec in your file, tell you what it is called, and decode not one second of it.

Three conversions of a single AC-4 track failed here recently, and none of the three messages said so. Two came back Error opening output files: Invalid argument. The third read Could not read how long this audio is: N/A. One cause, three different sentences, and not one of them the truth.

So we asked the install rather than guessing. These are every audio codec ffmpeg names but cannot read:

ac4 Dolby AC-4
mpegh_3d_audio MPEG-H 3D Audio
celt CELT
lc3 LC3
codec2 Codec2
4gv 4GV
smv SMV
sonicls Sonic Lossless

If one of those is inside your file, we now check during the probe that was already running, before a single command is built, and tell you the codec by name. The file is not broken and you did nothing wrong. The decoder simply does not exist in the toolchain — and that is a sentence you can act on, unlike invalid argument.

One Extension, Two Formats, One of Them Locked

The clearest case we found was .aax, and it was clear only after we looked at the numbers. That route had 625 attempts and 6 completions.

The reason is that .aax is not one format. It is two, and they have nothing to do with each other.

Our converter reads CRI AAX perfectly well. Those six completions were almost certainly that one. The other 619 attempts were people with Audible audiobooks, and every one of them was going to fail — because the key never leaves the buyer's own Audible account. No website can decrypt that file. Not us, and not any of the others that say they will.

And our own pages had been promising exactly that. The text read "Converting AAX to MP3 turns an audiobook you own into a standard audio file that plays on virtually any device", and the description that showed in search results said Audible audiobooks "won't play on most devices". Both sentences were false, and they were on our site, written by us.

They are gone. The page now says which .aax is which, refuses the Audible one in plain words, and explains why the refusal is not a limitation we could lift by trying harder.

Why We'd Rather Lose the Click

A page that promises a conversion it cannot perform gets the visit. It also gets the upload, the wait, the failure, and — when someone had paid for it — the refund. We ran that experiment by accident for months, and the result was 619 people who left with nothing.

There is a version of this business that treats those visits as a win, because the traffic looks the same in the reports either way. We would rather the page answer the question the visitor actually arrived with, even when the honest answer is you can't do this here, and here is why not. Someone who gets a straight answer in ten seconds may well come back with a file we can convert. Someone who waits five minutes for Invalid argument will not.

What Changed, Concretely

The Ones We Still Get Wrong

Plenty. A refusal can only happen early when the format or codec is enough to decide; a file that is simply corrupt, or a PDF whose pages are images of a language we have no OCR data for, still has to be opened before anything can be said about it. We find those the way we found these — one confusing error message at a time, usually because someone told us.

If a conversion here fails with something that does not explain itself, that is a bug and we would like to hear about it. The message is the product too.

Category: File Conversion