ffmpeg CLI 设置 -r 30 如果输入 => 30 fps,否则 -r 如果 < 30 fps 则采用输入 fps

2023-12-06

我发布了我的原来的问题在这里. Tried 建议的解决方案。但这并不能解决我的问题。

这就是我所做的。下载这个视频来自 Youtube 作为测试。使用 ffprobe 给出:

Stream #0:0: Video: h264 (High), yuv420p(tv, bt709, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 59.94 fps, 59.94 tbr, 1k tbn, 119.88 tbc (default)

我使用的ffmpeg命令:

ffmpeg -i Iron_Man_1080p_60fps.mp4 -vf "select='eq(n,0)+if(gt(t-prev_selected_t,1/30.01),1,0)'" -vsync 0 -c:v libx265 -crf 28 -c:a aac -b:a 64k Iron_Man_1080p_60fps_CONVERTED.mp4

ffprobe 我的输出文件Iron_Man_1080p_60fps_CONVERTED.mp4:

Stream #0:0(und): Video: hevc (Main) (hev1 / 0x31766568), yuv420p(tv, progressive), 1920x1080 [SAR 1:1 DAR 16:9], 454 kb/s, 20.49 fps, 59.94 tbr, 19001 tbn, 59.94 tbc (default)

正如您所看到的,fps 从 59.94 fps 下降到 20.49 fps。

我不确定为什么建议的解决方案不起作用。

ffmpeg -i 120.mp4 -vf "select='eq(n,0)+if(gt(t-prev_selected_t,1/30.01),1,0)'" -vsync 0 out.mp4

也许 -vf 没有设置固定帧率?

有人可以使用 -r 标志提供替代解决方案吗?

这里重申一下问题:

  • 如果输入 fps => 30 fps,则设置 -r 30
  • 如果输入 fps

谢谢你!


示例视频的 time_base 很粗糙,因此视频实际上是 VFR。将间隔更改为1/30.5保留刚刚超出阈值的帧1/30.01

-vf "select='eq(n,0)+if(gt(t-prev_selected_t,1/30.50),1,0)'"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ffmpeg CLI 设置 -r 30 如果输入 => 30 fps,否则 -r 如果 < 30 fps 则采用输入 fps 的相关文章

随机推荐

  • 为什么 Android Studio 3.0.0 在 APK 上设置 FLAG_TEST_ONLY?

    我已经通过 3 0 0 rcX 来自 Canary 渠道 到达 Android Studio 3 0 0 来自稳定渠道 当我启动一个全新的应用程序并构建它时 以下代码 应用程序内部 显示设置了 FLAG TEST ONLY 标志 Log e
  • Python 中 Pivot 和 Transpose 的组合

    我正在做一些文本分析 并且有一个看起来像这样的数据 TABLE 1 C1 C2 C3 A1 TEXT1 ANOTHER TEXT1 A2 TEXT1 ANOTHER TEXT1 B1 TEXT2 ANOTHER TEXT1 B2 TEXT2
  • 从多个 csv 文件中删除标题

    我有多个csv每天来自不同服务器的文件 这些文件很大 超过 200 MB 我必须删除所有这些的标题csv文件 并使用批处理文件将它们替换为所需的列标题 下面的代码可以很好地仅从一个文件中删除列标题 echo off set csv mycs
  • 获取经过的时间跨度的年、月、日 (DateTime)

    如何将日期时间选择器值中的年龄显示为年 月 日 例如 Datetimepicker value 1 11 2014 Today 1 12 2015 最终结果将是 1 年 0 个月 1 天 S 但得到这个结果不仅仅是减去DateTime Ye
  • void() 表达式的目的是什么?

    您不能声明void多变的 void fn void a ill formed 但这编译 void fn void a void object 什么是void 意思是 它有什么用 为什么是void a 格式不正确 同时void OK void
  • 从 ng-click 获取原始元素

    我的视图中有一个项目列表ng click附在他们身上 ul li img src team logoSmall alt title li ul 我正在处理点击事件foo在我的指令中起作用 传递 event作为对已单击对象的引用 但我得到了对
  • 参数数量无效:绑定变量的数量与令牌的数量不匹配 - php 错误

    运行以下代码时 我基本上收到以下错误 无法运行查询 SQLSTATE HY093 参数数量无效 绑定变量的数量与令牌数量不匹配 我是 php 新手 不确定为什么会收到此错误 我过去曾将这段代码用于 INSERT 而不是 UPDATE 语句
  • 如何垂直对齐 HTML 中的元素

    我有一个按钮 旁边有一些文字 就像这样 Button Text 我想让文本与按钮的中心垂直对齐 我应该如何在 CSS 中做到这一点 这是我的尝试 http jsbin com oduma4 4 我发现这种方法有两个问题 文本在 IE 6 中
  • 使用PHP PDO的数据库抽象类设计

    我正在设计一个网络应用程序 实际上 这是一种爱好 我正在尝试自学设计 还有什么比这样做更好的方法 无论如何 我正在考虑如何处理我的数据库 我很满意PDO 我正在考虑在我的抽象类中利用 PDO 我正在考虑创建一个单例 以便只有一个数据库连接
  • 如何读取系统的输出('ls')?

    我正在用 c 代码做一些文件 IO 我的文件中有一个特定的模式 我可以通过 shell 命令验证这一点cat abc txt grep abc wc l 当我使用执行相同的命令时System 它给出了正确的输出 但我不知道如何将其输出放入变
  • Google 脚本 - 根据回复将新提交的内容移至另一张表格

    我正在尝试创建一个脚本 该脚本将采用新的表单响应并根据提交的信息将其移动到另一张表 例如 假设表单有两个答案选项 A B 电子表格有三张表 表单回复 工作表 A 工作表 B 如果有人提交表单并选择 A 我需要将该新行从 表单回复 移至 工作
  • 为什么要在构造函数中初始化成员变量?

    当我第一次开始使用面向对象的编程语言时 我被教导了以下规则 在类中声明字段时 先不要初始化它 在构造函数中执行此操作 C 中的示例 public class Test private List
  • 多种场景的if语句

    我正在努力完成这个 if 语句 必须有一种更简单的方法来完成所有组合 因为这不是一个好的做法 if one true two true three true else if one true two true three true 我想知道
  • 使用代码或脚本(查询)启用到 sql server express 已安装数据库的 tcp\ip 远程连接

    我正在使用我的应用程序部署 sql express 我希望该数据库引擎接受远程连接 我知道如何通过启动 sql server 配置管理器 启用 tcp ip 连接 指定端口等来配置该手册 我想知道是否可以从命令行执行相同的操作 或者也许我必
  • PhantomJS 使用基本身份验证返回 null 进行评估

    我正在尝试在具有基本始终身份验证的页面上使用 PhantomJS 例如此页面 http alexturpin net auth test rosebud 使用以下代码 var webpage require webpage page web
  • 由于 iOS 10 中错误的随机数计数,HTTP 摘要身份验证失败

    自 iOS 10 起 HTTP 摘要身份验证不再在我们的应用程序中起作用 因为授权中的随机数计数错误 由 NSURLSession 生成的摘要标头 相同的代码在 iOS 9 中有效 但在 iOS 10 中无法验证 使用 NSURLReque
  • 使用 Selenium 和 Python 选择带有

    我一直在尝试自动化一些非常无聊的东西 因为我一直在犯错误 我想将它们减少到尽可能接近零 本质上 我得到了必须通过以下方式输入到我们系统中的资产 一个人经历了一个可怕的过程 这是我现在的问题 我的目标是在下拉列表 ctl00 CPH1 cmb
  • 将结构体转换为数组[重复]

    这个问题在这里已经有答案了 这是一个严格的别名问题 因为编译器会导致任何优化顺序问题 说我有三个公共floats in a struct XMFLOAT3 不像this one 我想投射到float 这会让我陷入优化麻烦吗 XMFLOAT3
  • 处理中的新窗口

    昨天我发现以下代码用于在处理中创建第二个窗口 import javax swing JFrame PFrame f secondApplet s void setup size 600 340 void draw background 25
  • ffmpeg CLI 设置 -r 30 如果输入 => 30 fps,否则 -r 如果 < 30 fps 则采用输入 fps

    我发布了我的原来的问题在这里 Tried 建议的解决方案 但这并不能解决我的问题 这就是我所做的 下载这个视频来自 Youtube 作为测试 使用 ffprobe 给出 Stream 0 0 Video h264 High yuv420p