【问题标题】:Output image with correct aspect with ffmpeg使用 ffmpeg 输出具有正确纵横比的图像
【发布时间】:2020-11-13 00:28:03
【问题描述】:

我有一个具有以下属性的 mkv 视频(通过 mediainfo 获得):

Width                                    : 718 pixels
Height                                   : 432 pixels
Display aspect ratio                     : 2.35:1
Original display aspect ratio            : 2.35:1

我想在某些时候截屏:

ffmpeg -ss 4212 -i filename.mkv -frames:v 1 -q:v 2 out.jpg

这将生成 718x432 jpg 图像,但纵横比错误(图像被水平“挤压”)。 AFAIK,输出图像应为 1015*432(宽度=高度 * DAR)。这个计算正确吗?

有没有办法让 ffmpeg 为所有视频输出具有正确大小/AR 的图像(即没有“硬编码”值)?我尝试使用 setdar/setsar 过滤器但没有成功。

另外,出于好奇,尝试使用 ffmpeg 获取 SAR 和 DAR 会产生:

Stream #0:0(eng): Video: h264 (High), yuv420p(tv, smpte170m/smpte170m/bt709, progressive),
718x432 [SAR 64:45 DAR 2872:1215], SAR 155:109 DAR 55645:23544, 24.99 fps, 24.99 tbr, 1k tbn, 49.98 tbc (default)

2872/1215 是 2.363,因此与 mediainfo 报告的值略有不同。有谁知道为什么?

【问题讨论】:

    标签: ffmpeg


    【解决方案1】:

    不查看文件,无法诊断读数不同的原因,但获得方形像素结果的通用方法是

    ffmpeg -ss 4212 -i filename.mkv -vf scale=iw*sar:ih -frames:v 1 -q:v 2 out.jpg
    

    【讨论】:

      【解决方案2】:

      根据doc of FFmpeg

      ffmpeg -ss 4212 -i filename.mkv -vf scale='trunc(ih*dar):ih',setsar=1/1  \
          -frames:v 1 -q:v 2 out.jpg
      

      确保生成的分辨率均匀(某些编解码器需要)

      【讨论】:

        猜你喜欢
        • 2018-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-21
        • 2013-06-12
        • 2012-01-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多