Descobri o motivo: transcodificação e volume de dados brutos.
Usando a linha de comando mencionada na minha pergunta, eu estava lendo um formato bruto (yuv422) e transcodificando-o para o mpeg-1, que era a codificação padrão para minha versão de ffmpeg
. A quantidade de dados sendo transmitida da câmera era simplesmente demais para o processador, causando o travamento. A câmera que eu estava usando também era capaz de transmitir em formato compactado (mjpeg). Ao mudar para este formato, ffmpeg
não foi mais interrompido e conseguiu gravar a 15 fps.
No entanto, houve um passo de transcodificação, de mjpeg para mpeg-1. Consegui atingir uma contagem de fps maior informando ffmpeg
para copiar o fluxo, removendo a última etapa de transcodificação.