I’ve just recorded a great video on my phone and was so eager to share it with the world (Even if nobody on earth gives it a glance T~T).
After a s**t long time wait the Twitter client finally told me “Failed to send your tweet”. Yes that’s right, no more information. I don’t know why the f**k the nowadays application/software is telling the error information to user less and less. From the bluescreen of Windows to the sending receipt of Twitter.
First I thought there’s a connection problem so I tried to resend the tweet without hesitating, but with no luck. By watching the traffic monitor I found the video did upload, so maybe there’s anything wrong with my proxy? I tried to reconfigure it but still got the same error.
Then I copied the video to my PC and attempted to tweet using the browser. This time the Twitter response with the message “Your media file could not be processed.” At least this means the problem is the video. I guess the file is too large, bitrate too high or the codec is unsupported.
Longtime after transcoding my video, again and again, I finally got the tweet sent. Here are the working FFmpeg arguments:
ffmpeg -i /path/to/input.mp4 -vcodec libx264 -s 1280x720 -r 30 -acodec aac -ar 44100 output.mp4
Although I’ve finally uploaded the video, I’m still not pleased with the experience. The same thing happend before when I was trying to send a tweet with GIF (attempt lots of times then find the GIF size cannot exceed 15MB). The Twitter application should be able to transcode the video locally, or at least check the video properties and warn the user about compatibility before spending time and traffic uploading it to the server. In addition, the service should make it clear if anything wrong happens, for example, a timeout or file transcode error etc. It’s annoying to force the user do the work that should be handled by the application.