Encoding aiff-c

Archived from the Transloadit support forum. Originally posted on June 22, 2011; details may be outdated, see our docs for current behavior. Original thread

Hi,

one of our users had a problem uploading an aiff file, which turned out to be an aiff-c. The assembly id is REDACTED. The assembly completed without error messages but the encoded files were only 1kb in size. Is this a case of an unsupported file?

thanks
Felix

Normally the assembly should produce an error if the file format is unsupported. We’re investigating what happened here.

Hello,

We’ve been having some growing pains and have been preoccupied with scaling problems lately. That has caused this encoding issue to move slightly of our radar. Sorry for that.

If the problem still persists, I have time to look into it now and was wondering if you could provide the input file?

No worries. The failing assembly is here https://transloadit.com/assemblies/REDACTED

thanks

Hi Felix,

I found the assembly, however we have to periodically purge uploads & temporary files for privacy & storage reasons, so I’m afraid I can’t access the original input file anymore.

Do you have this file for me (or another with the exact same properties?)

No, unfortunately I don’t have the file. I’ll ask the user who uploaded it originally if he can send another copy and let you know.

thanks

Hi Kevin,

we’ve had another user attempt to upload an aiff-c file, so hopefully you’ll be able to see the problem in the assembly REDACTED

thanks

Hi Felix,

Thanks a lot. I’ve been running some media tools against your file to see what they make of it:

File as seen by: ffmpeg

FFmpeg version git-7ed4ff0, Copyright (c) 2000-2011 the FFmpeg developers
  built on May 30 2011 11:11:30 with gcc 4.4.3
  configuration: --prefix=/usr/local --enable-gpl --enable-nonfree --enable-pthreads --enable-version3 --enable-x11grab --enable-avfilter --enable-libspeex --enable-librtmp --enable-libfaac --enable-libmp3lame --enable-libx264 --enable-libxvid --enable-libvpx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libtheora --enable-libvorbis
  libavutil    50. 37. 0 / 50. 37. 0
  libavcore     0. 16. 1 /  0. 16. 1
libavcodec   52.112. 1 / 52.112. 1
  libavformat  52. 99. 1 / 52. 99. 1
  libavdevice  52.  2. 3 / 52.  2. 3
  libavfilter   1. 75. 0 /  1. 75. 0
  libswscale    0. 12. 0 /  0. 12. 0
./winternights.aif: Invalid data found when processing input

File as seen by: hachoir-metadata

[warn] Skip parser 'AiffFile': Invalid signature
[err!] Unable to parse file: ./winternights.aif

File as seen by: file

./winternights.aif: data

File as seen by: exiftool

ExifTool Version Number         : 8.56
File Name                       : winternights.aif
Directory                       : .
File Size                       : 35 MB
File Modification Date/Time     : 2011:07:15 10:13:29+00:00
File Permissions                : rw-r--r--
Error                           : File format error

File as seen by: mediainfo

General
Complete name                    : ./winternights.aif
File size                        : 34.6 MiB

File as seen by: qtinfo

Couldn't open ./winternights.aif
[core] Error: Opening failed (unsupported filetype)

File as seen by: mplayer

MPlayer SVN-r32760-4.4.3 (C) 2000-2010 MPlayer Team
Playing ./winternights.aif.
Invalid seek to negative position!
ID_VIDEO_ID=0
Exiting... (End of file)
ID_EXIT=EOF

So far none of my serverside tools are able to find any usable media in it. I’ve also tried desktop tools (standard Ubuntu players and VLC) but to no avail.
I can try later on a Mac as well.

In the meantime, are you (or your client) able to play this file in a program? It would probably help knowing what tool you use, and from there see if we can fix the file or support it with Transloadit.

No I can’t play it on my machine and I’ve notified my user that the file seems to be invalid and waiting to see their response.

Should the assembly return an “ok”: “assembly_completed” response in this situation where the input file is invalid and can’t be processed?

Hi Felix,

Sounds good! Let me know if you get word from your user.
About the not-failing part, what I think happened is that video robot did not recognize .aif as a filetype it can handle. Our robots gracefully let unknown files pass through, so that you can safely mix results and pass them from one robot to another without getting errors.

Does that make sense?

Given that that was indeed what happened (Felix from our team could probably confirm that), as a counter measure we could probably add .aif to the list of known extensions so that your assembly would fail hard, I’d like to know your input on that and will discuss it with the team as well.

Makes total sense.

The hard fail would be good so that we can give a solid reason to the user for the failure rather than guessing when the results array is empty.

On the other hand, if people pass a bunch of media files through our robot, of which 99% is supported, but there’s one aif that we don’t support and the robot is instructed to still attract it but then crashes, we crash the assembly.

Doesn’t make a lot of sense to tell our robots that aif is supported when in fact it isn’t.

Until I’ve discussed this with the team I think you are better of with doing a check on empty results, and telling your user e.g.: Sorry, none of the files you sent to us are supported, instead of us throwing encoding errors for all aifs passing through our api.

Closing this for now. Please let us know if you still want to discuss this further.