如何在stdout中延迟直播?

时间:2016-12-02 13:07:35

标签: bash audio

我有一个音频流来到stdout,它将被传送到媒体播放器(例如VLC,ffplay)。我想知道是否可以按以下方式将音频流延迟几秒钟(假设在Ubuntu bash shell中):

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

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

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

感谢您的任何建议。

1 个答案:

答案 0 :(得分:1)

你可以试试这样的东西(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次并且只写一次,因此它将被移位。

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