

If you want ffmpeg to do the same kind of scaling for framegrabs that a TV would do on-the-fly when presented with a video stream containing non-square pixels, you can use its -vf scale option for that. So the pixels of the frame grab are a different shape from those of the video frame - square instead of 4:3 - making the picture appear to be squashed horizontally when displayed. For a still picture in any of those formats, the SAR and DAR are identical and the PAR is always 1:1 i.e. When you do your framegrabs, ffmpeg's default action is to copy all the pixels from the selected frame into the output still, so what you're getting is just the complete array of pixels for that frame without any resampling having been done.īut still-picture storage standards like JPEG and GIF and PNG never included any of this SAR vs DAR craziness. The shape of the individual pixels is given by the PAR ( Pixel Aspect Ratio) and you can work that out by dividing the DAR by the SAR.įor a SAR of 4:3 and a DAR of 16:9 the PAR also comes out to 4:3, but this is just because 16 happens to be 4 squared and 9 happens to be 3 squared SAR and PAR will not, in general, be the same. The 4:3 SAR is not incorrect, it just means that the stored pixels are rectangularly spaced samples rather than square ones. Having a SAR (Stored Aspect Ratio) of 4:3 with a DAR (Display Aspect Ratio) of 16:9 is a piece of crazed nonsense that began with DVDs, whose SAR was fixed at 4:3 by standardisation before 16:9 televisions became a thing.
