Estamos experimentando un problema en 3.6.0.beta3-latest donde los usuarios de iPhone y Safari en macOS ven un spinner infinito al intentar reproducir un video .mp4 (H.264) subido. Estos mismos videos se reproducían bien hasta hace poco (no estoy seguro de cuál fue la última versión de Discourse cuando funcionaban).
Parece que Safari hace una solicitud GET para obtener los primeros bytes (Range: bytes=0-1) del video (por ejemplo, /uploads/default/original/1X/44395933ccadf546b1b1ce65b742e24f900b33fa.mp4), que devuelve 200 pero falla por razones que no se muestran en la consola de JS ni en el inspector de red (simplemente se resalta en rojo, sin mensajes de error). Si la misma URL se pega directamente en el navegador, pueden descargar el video completo y reproducirlo con éxito.
Firefox y Chrome en macOS no tienen problemas para reproducir los videos. Los navegadores en Android tampoco parecen tener problemas.
Los videos son pequeños (en el rango de 10 MB). No estamos utilizando S3 para las subidas.
¿Alguien más puede corroborar, o confirmar que no está teniendo problemas con iPhones/Safari reproduciendo videos? ¿Y hay algún otro diagnóstico que pueda hacer que arroje luz sobre el problema?
Tengo un problema similar con mi foro, pero probar los mismos archivos aquí parece funcionar bien. Solo los usuarios de iOS/Safari se ven afectados. Algunos videos en el contenedor WEBM funcionan, pero la mayoría de mp4, mov, etc., no.
Hola, he estado viendo problemas recientemente y comenté en un hilo iniciado por @tsk que ha sido despublicado. Estaba asumiendo que el problema era con videos codificados en mp4/av1, ya que los videos webm/vp9 se reproducían en nuestro foro, pero parece que el problema es más que eso para los usuarios de Safari.
Solo por diversión, he verificado que estoy en la última versión, aunque no vi nada en los commits que indicara que afectara a los usuarios de Apple.
Mi configuración utiliza almacenamiento local para las cargas. La mayoría de los hilos están bloqueados detrás del nivel de confianza, pero estamos probando en una categoría pública aquí:
Este video es H.264 en MP4, debería reproducirse en todos los navegadores que ejecutan Discourse. Dado que se reproduce aquí y no en tu instancia, sospecho que algo está mal configurado allí.
¿Ejecutas algún proxy inverso adicional encima de Discourse? He visto algunas cabeceras en esta instancia que no existen en instalaciones estándar, así que tengo curiosidad sobre lo que se hizo allí.
Había considerado que esto podría ser parcialmente responsable, pero la configuración no ha cambiado y este es un problema nuevo en 3.6.0-beta2, por lo que pude ver. Comencé a recibir quejas de usuarios de Apple después de reconstruir. Similar a @mandyk, no recuerdo en qué versión estábamos anteriormente.
¿Hay alguna configuración en Discourse que deba evaluar?
Desafortunadamente, no podemos cubrir de manera realista todas las infinitas posibilidades de configuraciones cuando las personas agregan cosas encima de Discourse, es por eso que enviamos con una configuración conocida y buena en la instalación estándar que viene con un proxy inverso configurado para Discourse.
Puede que falte una sola estrofa de configuración de nginx, pero deberá investigar eso.
También confirmo que el video publicado en este hilo se reproduce bien en Safari.
No estoy seguro de si esto es relevante, pero una diferencia que puedo detectar es que el video en este hilo se está sirviendo desde S3. Cuando Safari realiza la primera solicitud range, S3 responde con HTTP 206, lo que parece correcto. Ni la instancia de Pixelspace ni mi instancia están utilizando S3, y parece que Discourse responde con HTTP 200 (lo que no parece correcto, porque la solicitud incluye una cabecera Range: bytes=0-1).
Confirmado que el video en discourse-on-a-pi5.falco.devno funciona para mí en Safari. De nuevo, puedo ver que la solicitud de video está devolviendo 200 en lugar de 206.
Editar: Además, parece que la respuesta está intentando devolver el video completo aunque se especificó Range: bytes=0-1. Sospecho que las solicitudes de rango están siendo ignoradas, y Safari parece ser sensible a esto.
Editar adicional: Esto probablemente significa que la búsqueda eficiente en videos más grandes también está rota para navegadores que no sean Safari, ya que necesitan descargar el video completo antes de poder buscar.
Así que, para reírnos un poco más, copié mi app.yml a app2.yml, cambié la URL y un par de directorios, y ahora tenemos testfor.pixelspace.xyz ejecutando la rama estable.