为啥 FFmpeg 打印 SAR 而不是 PAR?

Posted

技术标签:

【中文标题】为啥 FFmpeg 打印 SAR 而不是 PAR?【英文标题】:Why FFmpeg print SAR instead of PAR?为什么 FFmpeg 打印 SAR 而不是 PAR? 【发布时间】:2013-09-23 12:12:27 【问题描述】:

如果我的知识是正确的,SAR(存储纵横比)是像素尺寸的比率。 例如,640 × 480 视频的 SAR 为 640/480 = 4:3。

而 PAR(Pixel Aspect Ratio)是像素高度和宽度的比值,大多数现代视频都有正方形 PAR (1:1)。

但是当我尝试使用 ffmpeg -i 进行检查时,我得到的所有测试视频都是方形 SAR 而不是方形 PAR。

Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 1758 kb/s, 24.99 fps, 25 tbr, 25 tbn, 50 tbc
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p, 540x360  [SAR 1:1 DAR 3:2], 386 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc
Stream #0:0(und): Video: h264 (Constrained Baseline) (avc1 / 0x31637661), yuv420p,  450x360 [SAR 1:1 DAR 5:4], 328 kb/s, 25 fps, 25 tbr, 25 tbn, 50 tbc

是ffmpeg的bug还是我的错?

【问题讨论】:

刚出票ffmpeg.org/trac/ffmpeg/ticket/2973 【参考方案1】:

SAR(样本纵横比)与 PAR(像素纵横比)相同。

这两个术语可以互换使用。它们表示单个像素的宽度和高度之间的比率

相比之下,DAR(显示纵横比)是全图的宽高比。


注意事项:

SAR - 所有现代设备都有它1:1;旧设备(主要来自类比数字转换时代)使用非方形像素

DAR - 示例:SVGA 为 4:3,QWXGA 为 16:9。 p>

【讨论】:

【参考方案2】:

事实证明,ffmpeg 使用不同的符号

样本纵横比的 SAR 显示纵横比的 DAR

【讨论】:

以上是关于为啥 FFmpeg 打印 SAR 而不是 PAR?的主要内容,如果未能解决你的问题,请参考以下文章

为啥这个方法打印出 347 而不是 3?

为啥 FFMPEG 报告错误的持续时间?

请解释为啥此代码打印 02002 而不是 00022

为啥打印 char* 会给出字符串而不是地址? [复制]

为啥我的信号量程序打印 20 秒而不是 10 秒?

为啥使用管道在 IPC 中使用 write() 而不是 print() 打印输出两次?