gpt4 book ai didi

video - FFMpeg:在保持纵横比的同时以最大宽度和高度缩小视频

转载 作者:行者123 更新时间:2023-12-04 23:11:39 26 4
gpt4 key购买 nike

在我的程序中,用户可以输入他想要的任何视频文件,并将其转码以供社交媒体使用,无论其尺寸和纵横比如何。
“导出配置文件”有许多变量,但这里重要的变量是 maxheight 和 maxwidth。
FFMpeg 过滤器必须输出遵循以下规则的视频:

  • 如果视频是垂直的,则排列 maxheight 和 maxwidth 值(社交媒体将 1280x720 和 720x1280 都视为“720P”)
  • 视频的高度不得高于 maxheight 或宽度不得高于 maxwidth。
  • 原始视频和导出的视频具有相同的宽高比,不会出现失真。
  • 不应发生填充或裁剪。
  • 如果视频已经低于这些最大尺寸(没有放大),则不应缩放视频。
  • 即使输入分辨率为奇数,该功能也必须有效。

  • 我已经尝试找到可以做到这一点的过滤器组合,但到目前为止我还没有做到,如果宽高比不正确,视频会失真或者会出现巨大的黑条,解决方案可能很简单,但我这个库的初学者,所以我可能只是缺少一个简单的解决方案。
    我目前的解决方案:
    ffmpeg -i input.mp4 -vf [in] scale=1280:720:flags=lanczos:force_original_aspect_ratio=decrease,pad=1280:720:(ow-iw)/2:(oh-ih)/2,setsar=1 [res]; [res] format=yuv420p [format] -c:v libx264 -c:a aac -movflags +faststart output.mp4
    谢谢阅读

    最佳答案

    我在另一个问题上找到了一个很好的折衷方案,它只缩小视频并将它们缩小到某个最大尺寸(在我的情况下是 max(maxHeight, maxWidth))并且不添加填充、裁剪或失真:
    这是过滤器:

    -vf 'scale=if(gte(iw\,ih)\,min(1280\,iw)\,-2):if(lt(iw\,ih)\,min(1280\,ih)\,-2)'
    这是提到的答案:
    Resize videos with ffmpeg - Keep aspect ratio
    它并不完美但足够好

    关于video - FFMpeg:在保持纵横比的同时以最大宽度和高度缩小视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66292568/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com