3.6.0.beta3-latest 버전에서 iPhone과 macOS의 Safari 사용자가 업로드된 .mp4(H.264) 형식의 동영상을 재생하려고 할 때 무한 스피너가 표시되는 문제를 발견했습니다. 같은 동영상들은 최근까지 정상적으로 재생되었는데(마지막으로 정상 작동했을 때의 Discourse 버전이 무엇이었는지 정확히 기억나지 않습니다).
Safari가 동영상의 첫 바이트(Range: bytes=0-1)를 가져오기 위해 GET 요청을 보내는 것으로 보입니다(예: /uploads/default/original/1X/44395933ccadf546b1b1ce65b742e24f900b33fa.mp4). 이 요청은 200 응답을 반환하지만, JS 콘솔이나 네트워크 검사기에는 원인이 표시되지 않고(단순히 빨간색으로 강조만 되어 있으며 에러 메시지는 없습니다) 실패합니다. 동일한 URL을 브라우저에 직접 붙여넣으면 전체 동영상을 성공적으로 다운로드하고 재생할 수 있습니다.
macOS의 Firefox와 Chrome에서는 동영상 재생에 문제가 없으며, Android의 브라우저에서도 문제가 발생하지 않는 것으로 보입니다.
동영상 용량은 작습니다(10MB 수준). 업로드에 S3를 사용하지 않고 있습니다.
다른 분들도 iPhone/Safari에서 동영상 재생 관련 문제를 겪고 있는지, 아니면 문제가 없는지 확인해 주실 수 있을까요? 그리고 이 문제를 파악하는 데 도움이 될 수 있는 다른 진단 방법을 알고 계신가요?
안녕하세요, 최근 문제를 겪고 있어 @tsk 님이 시작하신 스레드에 댓글을 남겼는데, 해당 스레드는 목록에서 삭제되었습니다. 처음에는 웹m/vp9 인코딩된 비디오가 포럼에서 정상적으로 재생되므로 문제가 mp4/av1 인코딩된 비디오에만 있는 것으로 가정하고 있었지만, Safari 사용자의 경우 문제가 그보다 더 복잡해 보이는 것으로 판단됩니다.
이것이 부분적인 원인일 수 있다고 생각했지만, 설정은 변경되지 않았고 제가 파악한 바로는 3.6.0-beta2에서 새로 발생한 문제입니다. 재빌드 이후로 Apple 사용자들로부터 불만을 받기 시작했습니다. @mandyk와 비슷하게, 이전에 어떤 버전을 사용했는지 기억이 나지 않습니다.
이것이 관련 있는지는 확실하지 않지만, 발견할 수 있는 차이점 중 하나는 이 스레드의 영상이 S3에서 제공된다는 것입니다. Safari가 첫 번째 range 요청을 보내면 S3는 HTTP 206으로 응답하는데, 이는 올바른 것으로 보입니다. Pixelspace 인스턴스와 제 인스턴스는 모두 S3를 사용하지 않으며, Discourse가 HTTP 200으로 응답하는 것 같습니다(요청에 Range: bytes=0-1 헤더가 포함되어 있으므로 이는 올바르지 않은 것으로 보입니다).