Com deslocamentos de timestamp, o ffmpeg efetuará isso por meio de listas de edição na saída MP4. Parece que os navegadores não os analisam. Então, precisamos de uma solução alternativa.
ffmpeg -i remote.mp4 -i local.mp4 \
-filter_complex \
" [1:v]scale=iw/4:-1:flags=lanczos[loc0]; \
[0:v]transpose=1,setpts='if(eq(N,0),PTS,PTS+2.501/TB)',fps=30[rotate1]; \
[rotate1][loc0]overlay=main_w-overlay_w-10:main_h-overlay_h-10:eof_action=pass[rem0]; \
[0:a]adelay=2501|2501,apad[0a]; \
[0a][1:a]amerge=inputs=2[a]" \
-map "[rem0]" -map "[a]" \
-ac 2 -vcodec libx264 \
-ar 44100 -acodec aac \
completed.mp4
O setpts
desloca os timestamps de todos os quadros, exceto o primeiro. O filtro fps
preenche essa lacuna com duplicatas do primeiro quadro. Eu assumi uma taxa de fluxo de entrada de 30.