We have been testing both the API and the web upload functionality with video files, and it seems that a number of our files fail without any apparent explanation, simple stating that the Video Format is not supported.
After a lot of trial-and-error we have boiled it down to some post-processing we do, namely running
MP4Box -inter 1000 <videofile>. Once MP4Box, a fairly well known and tested tool, has touched the file, Twitter refuses to accept it. The video plays fine in any player we have tested it on as well as in web browsers.
As far as I can find, the API docs only mention “Supported video formats: mp4”, which is fairly broad. I assume you mean
AAC for video and audio respectively, but do you support all profiles (Baseline, High, Constrained, etc.) or only a limited subset? Some clarifications and some better error messages for video uploads would really help with debugging.