I think there are two separate issues happening here.
When I play the original using WMP the video is given a space of 720x480, but actually it is 640x480 with black space on either side to pad out the video. If I make the video player smaller by width then the padding disappears before the video is resized to keep aspect ratio correct. When I play the video using VLC on my mac then the image is stretched to be 720. The H264 output matches what the original looks like, but without the padding (when played using QT). Please see https://www.dropbox.com/s/t56u2cdsrpp5tlb/sizes.png?dl=0 for a visual comparison (bottom of the stack is the original playing in WMP, next video is the original playing in VLC, and the top video is the output playing in QT). The second issue is that VLC and QT on my mac display the output differently, with VLC making the video look bigger. I’m guessing that they attempt to handle SAR differently. The solution seems to be to normalize the pixels to be square so we don’t have to depend on the capabilities of the video player. To do this I use -vf 'scale=trunc((iw*sar)/2)*2:trunc(ih/2)*2,setsar=1’. Since I’m using this filter on a load of different videos I'm also making sure the width/height are even and then I’m forcing SAR to be 1:1 as otherwise I sometimes get some crazy ratio (probably due to rounding). These are the commands I’m using: ffmpeg -y -i original.wmv -c:v libx264 -vf 'scale=trunc(iw/2)*2:trunc(ih/2)*2' -profile:v baseline -b:v 3072k -preset medium -c:a libfdk_aac -profile:a aac_low -ac 2 -b:a 128k -r:a 44100 -movflags faststart output.mp4 ffmpeg -y -i original.wmv -c:v libx264 -vf 'scale=trunc((iw*sar)/2)*2:trunc(ih/2)*2,setsar=1' -profile:v baseline -b:v 3072k -preset medium -c:a libfdk_aac -profile:a aac_low -ac 2 -b:a 128k -r:a 44100 -movflags faststart output_normalized.mp4 And here is some probe output (note that the width is different for the two outputs): original.wmv [STREAM] codec_name=wmv3 profile=Main width=720 height=480 sample_aspect_ratio=8:9 display_aspect_ratio=4:3 pix_fmt=yuv420p [/STREAM] output.mp4 [STREAM] codec_name=h264 profile=Constrained Baseline width=720 height=480 sample_aspect_ratio=8:9 display_aspect_ratio=4:3 pix_fmt=yuv420p [/STREAM] output_normalized.mp4 [STREAM] codec_name=h264 profile=Constrained Baseline width=640 height=480 sample_aspect_ratio=1:1 display_aspect_ratio=4:3 pix_fmt=yuv420p [/STREAM] Thanks, Ben _______________________________________________ ffmpeg-user mailing list [email protected] http://ffmpeg.org/mailman/listinfo/ffmpeg-user
