gpt4 book ai didi

ffmpeg - 我错过了 FFMPEG 中的超时参数吗?

转载 作者:行者123 更新时间:2023-12-04 22:46:26 31 4
gpt4 key购买 nike

我正在运行这样的 ffmpeg 命令:
ffmpeg -loglevel quiet -report -timelimit 15 -timeout 10 -protocol_whitelist file,http,https,tcp,tls,crypto -i ${inputFile} -vframes 1 ${outputFile} -y
这是在 AWS Lambda 函数中运行的。我的 Lambda 超时时间为 30 秒。出于某种原因,我仍然收到“任务超时”消息。我应该注意我在命令之前和之后登录,所以我知道它在此任务期间超时。

更新

就整个 lambda 执行而言,我执行以下操作:

  • 调用 lambda 以获取访问 token 。这个 lambda 根据 API 请求生成。它的超时时间为 5 秒。一个请求的最长时间为 660 毫秒。
  • 发出另一个 API 请求以验证数据。最长时间为 1.6 秒。
  • 运行 FFMPEG
  • timelimit应该是 Exit after ffmpeg has been running for duration seconds in CPU user time. .从理论上讲,这不应该运行超过 15 秒,在其他请求之前可能还要多运行 2-3 秒。
    timeout在这里可能是多余的。手册中有很多定义,但我认为主要是等待输入?无论哪种方式,我都会认为 timelimit会覆盖我的基地。

    更新 2

    我检查了我的调试日志并看到了这个:
    Reading option '-timelimit' ... matched as option 'timelimit' (set max runtime in seconds) with argument '15'.
    Reading option '-timeout' ... matched as AVOption 'timeout' with argument '10'.

    我的构建似乎支持这两个选项

    更新 2

    我已经用大量日志更新了我的代码。我明确地将 FFMPEG 命令视为执行的最后一件事,然后停止 30 秒超时

    更新 3
    我可以通过指向轨道而不是完整 list 来重现该行为。我已将命令设置为:
    ffmpeg -loglevel debug -timelimit 5 -timeout 5 -i 'https://streamprod-eastus-streamprodeastus-usea.streaming.media.azure.net/0c495135-95fa-48ec-a258-4ba40262e1be/23ab167b-9fec-439e-b447-d355ff5705df.ism/QualityLevels(200000)/Manifest(video,format=m3u8-aapl)' -vframes 1 temp.jpg -y
    这里有几件事:
  • 我通常指向实际的 list (而不是轨道),并且事情通常运行得更快
  • 我已经降低了timelimittimeout到 5。尽管如此,当我运行计时器时,该命令每次运行约 15 秒。它输出一堆错误,可能是由于这是跟踪而不是完整 list ,然后吐出所需的图像。

  • 完整输出位于 https://gist.github.com/DaveStein/b3803f925d64dd96cd45ae9db5e5a4d0

    最佳答案

    timelimit is supposed to Exit after FFmpeg has been running for duration seconds in CPU user time.



    这是真的,但您不能使用此计时指标来确定 FFmpeg 在其运行期间应何时强制退出(请参阅 here )。

    最好从外部观察进程并通过发送 TERMKILL 信号来强制终止它。

    我推荐 timeout 命令,它是 GNU coreutils 的一部分。

    这是一个例子

    timeout 14s -t 1s <FFMPEG COMMAND LINE>

    这将确保 FFmpeg 命令执行运行长达 14 秒,并在一秒后强制它被杀死( SIGKILL ),以防它没有通过 SIGTERM 信号退出。

    您可以查看 timeout 命令的手册页。

    关于ffmpeg - 我错过了 FFMPEG 中的超时参数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61102431/

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