We have a system that supports streaming video, but we support multiple players. I have multiple systems that I COULD use for this. Currently, I've been using the media server that we use to stream the video, which has ffmpeg on it (running Red Hat 4). On that system, I've used:
ffmpeg -i INPUT_FILE.mp4 -c:v libx264 -crf 23 -maxrate 3000k -bufsize 30000k -c:a aac -strict experimental -b:a 192k -filter:v "scale=iw*min($width/iw\,$height/ih):ih*min($width/iw\,$height/ih), pad=$width:$height:($width-iw*min($width/iw\,$height/ih))/2:($height-ih*min($width/iw\,$height/ih))/2" -f OUTPUT_FILE.mp4
And I thought that it worked well. On one file I used to test, it seemed to display properly on both player types. On a different file, it did not appear properly. The input files are also in varying formats (mostly mp4, with a few m4g files) and different aspect ratios.
We also have many desktop/laptop machines that are running Ubuntu 13.04 (comes with avconv) that I'd like to be able to use to format video as well. If I can get at least one of these systems to properly format video, that would be great, but ideally I'd like to figure out how to do this with both avconv AND ffmpeg so I can use any system.
The problem that we're trying to solve is that one player is an Android DMP device, which will play a video of varying sizes properly by adding black bars at the sides or top/bottom as needed to keep the video sized properly. The other player is a Samsung Smart TV, which is SO Smart that it can reformat videos to fit the screen. Which sucks horribly, because if they're not sized to exactly the right format, it will stretch them one direction or another to make them be sized right. The resulting video show's people that appear to be 8 feet tall weighing 130 pounds, or 4 feet tall and 3 feet wide.
How to fix it?