O muxer do segmento, por padrão, ao operar em uma saída de vídeo + áudio, cria apenas um novo segmento quando encontra um quadro-chave de vídeo após o transcurso do segmento_time. O FFmpeg é principalmente um programa para manipular mídia temporizada, isto é, vídeo e áudio. Uma única imagem é tratada como um vídeo de 25 quadros por segundo de um quadro. No seu caso, você precisa mudar isso da seguinte forma:
find audio/ -name '*.ogg' -execdir bash -c '\
ffmpeg -loop 1 -framerate 8 -i ../white-144p.png -i {} \
-acodec libvorbis \
-force_key_frames "expr:gte(t,n_forced*1800)" \
-af silenceremove=0:0:0:-1:0.7:-30dB \
-segment_time 1800 -shortest \
-f segment ../video/$(basename {} .ogg)_%03d.mp4' \;
-loop 1 -framerate 8
gera um fluxo de vídeo infinito de 8 fps para fora da imagem.
-force_key_frames "expr:gte(t,n_forced*1800)"
obriga o ffmpeg a gerar um quadro-chave a cada 1800 segundos para que os segmentos possam ser cortados em intervalos precisos.
-shortest
é adicionado para que o comando termine quando o áudio é executado - o fluxo de vídeo é infinitamente longo.