У меня была очень похожая проблема. Я не знаю, как начать потоковую передачу, пока ffmpeg все еще транскодирует файл, но вот мое исправление:
У меня был php-скрипт, который делал системные вызовы (хотя вы могли написать это практически на любом языке). В сценарии ffmpeg была запись во временный файл. Перед вызовом ffmpeg он проверил, существует ли временный файл для устранения проблем параллелизма. Если это так, он ждал, пока не появится настоящий файл.
Как только файл завершил преобразование, он переименовал временный файл в реальный файл и перенаправил http-запрос в транскодированный файл.