如何解决超时命令未超时
我对长时间运行的 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 举报,一经查实,本站将立刻删除。