bash - 如何在stdout中延迟直播?

标签 bash audio

我有一个音频流到达stdout,该音频流将通过管道传输到媒体播放器(例如VLC,ffplay)。我想知道是否可以通过以下方式将音频流延迟几秒钟(假定在Ubuntu bash shell中):

<audio stream> | <stream delay program> | <media player, e.g. ffplay>

我想延迟音频流,使其与另一个视频流更加同步。

是否有任何程序/方法可以实现此目标?

感谢您的任何建议。

最佳答案

您可以尝试以下操作(python脚本):

import sys

chunk_size = 100000  # adjust according to sample rate, nb_channels, etc..

buffer2=None

while True:
    buffer1 = sys.stdin.read(chunk_size)
    if buffer2:
        sys.stdout.write(buffer2)
    buffer2 = sys.stdin.read(chunk_size)
    sys.stdout.write(buffer1)

将读取2次而仅写入一次,因此将被移位。

告诉我它是否有效,这只是一个尝试。如果没有,我将删除答案。

关于bash - 如何在stdout中延迟直播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40932983/

相关文章:

linux - 在 bash 中使用列

javascript - Firebase Cloud Storage:资源:服务器响应状态为403()

C# - 麦克风噪音检测

jquery - HTML 5音频本地存储

bash - 如何在 Bash 中连接文件中的所有行?

bash - 如何在 docker 容器中安装/启动 docker 引擎服务

linux - 从多个视频中提取元数据

linux - 尝试 mkdir 时出现 Shell 变量问题

javascript - 如何在浏览器上播放自定义提示音?

javascript - 使用 FileOpenPicker 链接到本地​​计算机上的文件时,音频显示 'Invalid source'