Как записывать стрим в файл, используя ffmpeg+python?

У меня есть простой websocket клиент на python, который получает чанки ogg трека ежесекундно. Мне нужно, чтобы ffmpeg в онлайн режиме записывал эти чанки в файл. Если это важно, я могу менять ogg на любой другой формат. Моя реализация такая:

async def hello(uri):
    process = subprocess.Popen(['ffmpeg', '-i', '-', 'ffmpeg.ogg'], stdin=subprocess.PIPE) #  или sys.stdout
    async with websockets.connect(uri) as websocket:
        while True:
            r = await websocket.recv()
            process.stdin.write(r)  # или sys.stdout.write()

В результате ffmpeg даже не создает файл, в который должен все это записывать. Вместо этого через несколько секунд появляется ошибка Broken pipe, а в случае с sys.stdout сам ffmpeg выводит:
pipe:: Bad file descriptor

EDIT: Код для деления файла на чанки

from pydub import AudioSegment

song = AudioSegment.from_ogg("tst.ogg")
current_offset = 0
offset = 1000
while True:
    chunk = song[current_offset:current_offset+offset]
    current_offset += offset
    websocket.send(chunk.raw_data)

Ответы (1 шт):

Автор решения: FlashlightED

Проблема решается добавлением опции -re к запуску ffmpeg:
ffmpeg -re -i - ffmpeg.ogg
И при отправке чанков сначала кодируем каждый чанк в ogg, используя pydub:

data = chunk.export('bin/chunk.ogg', 'ogg').read()
await websocket.send(data)
→ Ссылка