Oi, tudo bem?! Já precisei muito de algo assim. Tanto que cheguei a fazer um tbm para gravar alguns treinamentos da empresa no passado.
Fiz um teste, deixei meu vídeo público. O botão de download é público tbm? Pois ele não funciona se eu não estiver logado. Acho que vc está apontando para o link privado no botão.
Este é o vídeo gravado no computador com Windows. Já tentou abrir no iphone?
https://www.screenvod.com/videos/c1c89c86-24a8-45d6-ae50-6832c60e3016
Pq estou perguntando isso?
Pq vc seguiu a mesma abordagem que eu no passado: usar os recursos locais do computador para gravar e subir direto para o Google Drive. Tbm fiz assim.
Só que tem um problema: os codecs utilizados no computador com Windows não estão disponíveis no iphone. Acho que nem no Mac.
A consequência é que você precisará recodificar.
Aqui começou minha saga na época:
há algumas libs que vc consegue instalar no navegador para fazer esse trabalho.
O problema é que essas libs precisam executar SharedArrayBuffer no navegador, mas por uma falha de processadores descoberta no passado, isso ficou bloqueado no navegador. Você não consegue instanciar SharedArrayBuffer.
Há uma forma de desbloquear SharedArrayBuffer, que é definindo isso abaixo no header da página:
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
Aí nesse ponto você acha que vai dar certo. Mas vai descobrir outro problema: Ao ativar essas políticas de Cross-Origin não vai mais permitir subir o vídeo para o drive, pois ele está em outro domínio!!!
O pior é que, na época eu cheguei à conclusão que o ajuste que tem que se fazer no arquivo é mínimo. Cheguei a abrir e vasculhar cabeçalhos e estudar codecs. Não é nada pesado. Pena que não me lembro mais o que era. Mas salvo engano era só mudar algo no container do vídeo. Nem precisaria recodificar. Porém pela limitação acima as libs não funcionaram.
Conclusão
A conclusão que cheguei é que teria que usar algo como o Amazon Elemental MediaConvert para isso, o que aumentaria a complexidade do projeto.
Nesse ponto achei melhor gravar pelo Google Meet os treinamentos e desisti.
Tentei por 1 final de semana ou mais resolver isso direto no navegador, sem enviar para meu servidor ou para o Elemental MediaConvert. Mas não consegui.
Se você conseguir adoraria saber como. Não para voltar meu app, mas pq até hoje isso me incomoda: não ter achado uma solução simples, elegante e local (no navegador).
No máximo talvez uma gambiarra com o cross-origin.... quem sabe!
EDIT
Espero que meu comentário não tire seu final de semana assim como aconteceu comigo kkkkkk
Boa sorte!