I've got a device with a 640x480 display and RGB565 video output. It plays XVID/MP3 video files in an AVI container. When I convert an MP4 file with FFMPEG (which I'm doing now), I use libxvid to create the output file. These are ending up as a YUV color space, with 8 bit color depth. And they look great playing on a laptop or desktop.
Then they go on the device and there are blocky artifacts, which the users find "offputting", because "it looks good on my laptop" and "my cell phone has a small screen and plays it fine". If only I had the resources of their laptop or cell phone in my device...
So, I'm wondering whether I can do the conversion from MP4 to my end AVI file in a way that FIRST converts the MP4 files (which can be sourced from anywhere -- the user gets to find them and send them to a system that automagically converts the file to AVI) in the following way...
Convert MP4 to some format (I can't figure on out) that is using an RGB565 color space/pixel format Then convert that intermediate file to the AVI format. The libxvid package seems to always want yuv420p and 8 bit depth .. what I'm hoping is that the intermediate conversion to something that's RGB565 gets me the "blocky output" that's preserved into the AVI file. The idea here (which sounds far-fetched, I'll admit), is to have something that plays on a laptop/desktop/cellphone with the same sort of artifacts I'll get on the actual output device with the substandard video playback system.
Can someone suggest some commands that would allow this type of conversion? Thanks.