微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

超时命令未超时

如何解决超时命令未超时

我对长时间运行的 sox 录音超时有一些问题。

需要该命令,因为 sox 从进程中获取标准输出,但它不是永久的数据流(但会因静音而中断)。但是因为 sox 被告知总共要录制 30 秒,所以它会一直录制到音频文件有 30 秒的声音为止。所以我希望命令在 35 秒后超时,如果它之前没有完成。

bash 脚本中使用的命令:

超时 35 秒 sox [--some --sox --parameters] 修剪 0 30

现在的问题是给定的命令可能需要 35 秒到 10 分钟之间的任何时间,我不知道为什么。

花费的时间似乎完全随机,音频文件在 1s 到 13s 之间。

所以也许这里有人有想法,可能是如何排除故障等

解决方法

sox 中的 terminate signal handler 只是设置标志 user_abort,由 Callback for monitoring flow progress 每个缓冲区检查一次,所以 {{1 }} 等待缓冲区变满可以解释响应信号的长时间延迟。如果您指定较小的缓冲区大小,情况可能会有所改善,但这不是解决方案。

我现在注意到你写了 sox 从进程中获取标准输出。如果您sox 该进程而不是 timeout,则其输入源的关闭应导致 sox 立即终止。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。