Encontrou a solução. MP4 não pode gravar em um pipe e, portanto, não pode transmitir. Para poder transmitir, ele precisa ser capaz de buscar de volta no início do arquivo para gravar o cabeçalho de saída quando terminar.
Eu encontrei uma solução para corrigir isso. Basta adicionar a opção -movflags frag_keyframe + empty_moov.