O melhor que pude encontrar é:
ffmpeg -i stream.mp4 -c copy -map 0 -segment_time $[60*28] -reset_timestamps 1 -f segment "stream_part_%02d.mp4"
Isso se divide em quadros-chave em segmentos igualmente longos sem reencodar.
A principal desvantagem é que você precisa calcular o tamanho do segmento manualmente (se você dividir o vídeo de 3h1m em segmentos de 30m, terá um segmento de 7º 1m estranho). Neste exemplo eu usei 28m segmentos como o que estava mais próximo do mesmo.
A menor desvantagem é que o número gerou arquivos de 0.