Questo sembra essere un problema ricorrente con alcuni file mp4 su Safari.
Ho testato il tuo video su un server statico node.js localhost e ha funzionato bene in Safari, il che significa che il video stesso dovrebbe andare bene.
Se guardi il web inspector in Safari vedrai che la richiesta web non include alcune intestazioni. Ciò causa alcuni problemi con i server e non rispondono nel modo in cui Safari si aspetta o non rispondono affatto.
È possibile visualizzare problemi simili in fase di discussione (il secondo non è il tuo caso, ma penso che le informazioni incluse nella richiesta inviata al server possano far decidere al server di non rispondere come desiderato):
Aggiornamento:
Utilizzando wireshark per acquisire la richiesta da Chrome, è possibile visualizzare una risposta dal server con il video da riprodurre mentre la richiesta da Safari (sulla stessa macchina) non ha dato alcuna risposta dal server.
Le richieste sono generalmente simili e entrambe includono l'intestazione del referrer. Il browser Safari chiede solo per i primi 2 byte da restituire dal server inizialmente - lo fa utilizzando l'intestazione 'gamma', che viene utilizzato per specificare le byte Intervallo che un file restituisce:
- Gamma : byte = 0-1 \ r \ n
Chrome d'altra parte richiede l'intero video nella sua richiesta di gamma:
Tuttavia, utilizzando uno strumento HTTP (ad es. Postman) su Chrome e la modifica dell'intervallo a 0-1 non sembra impedire al server di rispondere nel caso Chrome. Infatti, usando lo strumento per impostare, per quanto possibile, tutte le stesse intestazioni dei set di Safari sembra ancora restituire il video ok.
Ho lo stesso problema quando si serve un piccolo video tramite S3 e Cloudflare. Funziona bene su un server che risponde con le intestazioni streaming in modo che il problema non sia la codifica video. –