【问题标题】:Making a green screen background in ffmpeg在ffmpeg中制作绿屏背景
【发布时间】:2016-05-01 12:58:57
【问题描述】:

我正在尝试制作一个绿屏背景,我可以用它来覆盖上面的其他内容。我正在使用来自this answer 的信息并使用以下命令:

ffmpeg -f lavfi -i color=color=green -s 1920x1080 -t 3600 -r 60 small_green.mp4

但是,当我在 Quicktime 中打开它时,检查器窗口似乎在说它实际上是 1440x1080 而不是 1920x1080。

当我把它带入 VLC 时,它似乎是在说它是 1920x1090

ffprobe 似乎在说它是 1920x1080:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'small_green.mp4':   Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf56.36.100   Duration: 01:00:00.00, start: 0.000000, bitrate: 40 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1920x1080 [SAR 3:4 DAR 4:3], 34 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc (default)
    Metadata:
      handler_name    : VideoHandler

当我把它带到Garmin VIRB Edit 时,它报告它是 1440x1080。那么如何让ffmpeg 吐出真正高清 1920x1080 分辨率的视频呢?

【问题讨论】:

    标签: video ffmpeg


    【解决方案1】:

    如果未指定,FFmpeg 源过滤器具有它们输出的默认大小。对于彩色滤光片,它是 320x240。您的 scale 参数将颜色过滤器的输出调整为 1920x1080,但 ffmpeg 认为您希望保留源纵横比,在本例中为 4:3,因此这是它写入文件的显示纵横比。 QT 报告的比例为 4:3 的 1920x1080 视频实际上是 1440x1080。

    您需要直接在颜色中设置大小(或在之后设置正确的纵横比)。

    ffmpeg -f lavfi -i color=color=green:s=1920x1080 -t 3600 -r 60 small_green.mp4
    

    【讨论】:

    • 这样做与-s 1920x1080 -aspect 16:9相比有什么优势吗?
    • -s 在颜色生成后插入一个缩放器,而 color 中指定的大小设置了颜色过滤器的输出大小,即前者就像打印一张 4'x6' 的照片,然后吹它高达 8'x12',后者在 8'x12' 处执行原始打印。在这种特殊情况下,对于统一的纯色视觉效果,质量不会受到影响,但缩放器会继承过滤器生成的纵横比 (4:3),这会导致不希望的结果。 aspect 开关设置容器中的 aspect 标志,而不是视频流。有些玩家尊重它,有些则不。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-12
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多