WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED WORKSFORME
183259
[GStreamer] Cannot play particular videos
https://bugs.webkit.org/show_bug.cgi?id=183259
Summary
[GStreamer] Cannot play particular videos
Michael Catanzaro
Reported
2018-03-01 13:59:50 PST
I can't play this simple WebM video in Epiphany Tech Preview (WebKitGTK+ 2.19.91):
https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/gtk/loop5.webm
I think it's different from
bug #182653
because that video starts to play and only seek is broken, whereas this video does not play at all.
Attachments
Add attachment
proposed patch, testcase, etc.
Philippe Normand
Comment 1
2018-03-02 01:44:25 PST
Add it to an html file in a <video> element and it plays.
Michael Catanzaro
Comment 2
2018-03-02 08:09:48 PST
Ummmm that should not be required, and was not required in the past. We are even showing media controls for it and everything. They're just broken. If we did not support directly playing media files, we would need to start a download instead of displaying broken media controls. But I'm pretty sure this used to work. I see it is also broken in 2.18.6, though.
Michael Catanzaro
Comment 3
2018-03-25 18:13:30 PDT
Carlos, any chance you know how this is supposed to work?
Carlos Garcia Campos
Comment 4
2018-03-25 23:36:26 PDT
I giess we are doing something different in case of MediaDocument
Philippe Normand
Comment 5
2018-07-06 07:06:04 PDT
The problem seems to be that loop5.webm is thought to be audio/webm by the DOMImplementation and MediaDocument seems to handle only <video> elements, so an empty page is displayed, only controls are visible.
Philippe Normand
Comment 6
2018-07-10 02:50:23 PDT
The HTTP response header has the wrong content-type set, so not sure what to do about this. One thing to consider, maybe don't set the type attr on the video element created by the MediaDocument. I tried that and got a bunch of XSS errors afterwards :S
Michael Catanzaro
Comment 7
2019-01-28 07:32:26 PST
Another example video that fails to play:
https://matrix.org/_matrix/media/v1/download/matrix.org/vatFhMWBkNvNZhJWOdQCkeaQ
Michael Catanzaro
Comment 8
2019-12-12 12:44:08 PST
Lots of errors in the web inspector. Looks like some problems with the media controls JS: [Error] Failed to load resource: Plug-in handled load (loop5.webm, line 0) [Error] Blocked script execution in '
https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/gtk/loop5.webm
' because the document's frame is sandboxed and the 'allow-scripts' permission is not set. [Error] Refused to load
https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/gtk/loop5.webm
because it appears in neither the media-src directive nor the default-src directive of the Content Security Policy. [Error] Blocked script execution in '
https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/gtk/loop5.webm
' because the document's frame is sandboxed and the 'allow-scripts' permission is not set. (x26) [Error] Blocked script execution in '
https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/gtk/loop5.webm
' because the document's frame is sandboxed and the 'allow-scripts' permission is not set. (x50) Just hovering over the play button causes the last error to occur, one error for each pixel I move the cursor.
Xabier Rodríguez Calvar
Comment 9
2019-12-13 01:38:08 PST
(In reply to Michael Catanzaro from
comment #8
)
> Lots of errors in the web inspector. Looks like some problems with the media > controls JS:
Please file a different bug for this under [GTK] cause controls are just tangentially related to multimedia. Thx!
Philippe Normand
Comment 10
2019-12-13 03:33:38 PST
As I said in
comment 5
this might not be a pure-controls bug. loop5.webm is detected as an audio file...
Michael Catanzaro
Comment 11
2021-02-03 12:07:55 PST
(In reply to Michael Catanzaro from
comment #7
)
> Another example video that fails to play: > >
https://matrix.org/_matrix/media/v1/download/matrix.org/
> vatFhMWBkNvNZhJWOdQCkeaQ
Hm, this happens with MP4 video as well:
https://gnome.modular.im/_matrix/media/r0/download/gnome.org/62a43e4dd1f71c657be994f79a4a203db9c9e708/video_514ec09.mp4
Is it the same issue (in which case the bug should be renamed to not specify WebM), or a different issue with the same symptoms?
Philippe Normand
Comment 12
2021-02-04 04:38:44 PST
(In reply to Michael Catanzaro from
comment #11
)
> (In reply to Michael Catanzaro from
comment #7
) > > Another example video that fails to play: > > > >
https://matrix.org/_matrix/media/v1/download/matrix.org/
> > vatFhMWBkNvNZhJWOdQCkeaQ > > Hm, this happens with MP4 video as well:
Do you have a H.264 decoder in your runtime?
Philippe Normand
Comment 13
2021-02-04 05:28:37 PST
ERROR webkitmediaplayer MediaPlayerPrivateGStreamer.cpp:1806:handleMessage: Error 9: R3: Received unexpected 200 HTTP status code for range request (url=
https://gnome.modular.im/_matrix/media/r0/download/gnome.org/62a43e4dd1f71c657be994f79a4a203db9c9e708/video_514ec09.mp4
)
Michael Catanzaro
Comment 14
2021-02-04 05:49:40 PST
(In reply to Philippe Normand from
comment #12
)
> Do you have a H.264 decoder in your runtime?
Of course, you know we have OpenH264.
https://www.w3schools.com/html/mov_bbb.mp4
plays fine. (In reply to Philippe Normand from
comment #13
)
> ERROR webkitmediaplayer > MediaPlayerPrivateGStreamer.cpp:1806:handleMessage: Error 9: R3: Received > unexpected 200 HTTP status code for range request > (url=
https://gnome.modular.im/_matrix/media/r0/download/gnome.org/
> 62a43e4dd1f71c657be994f79a4a203db9c9e708/video_514ec09.mp4)
I wonder why 200 "success" is so unexpected. :P
Xabier Rodríguez Calvar
Comment 15
2021-02-09 02:09:57 PST
(In reply to Michael Catanzaro from
comment #14
)
> (In reply to Philippe Normand from
comment #12
) > > Do you have a H.264 decoder in your runtime? > > Of course, you know we have OpenH264. >
https://www.w3schools.com/html/mov_bbb.mp4
plays fine. > > (In reply to Philippe Normand from
comment #13
) > > ERROR webkitmediaplayer > > MediaPlayerPrivateGStreamer.cpp:1806:handleMessage: Error 9: R3: Received > > unexpected 200 HTTP status code for range request > > (url=
https://gnome.modular.im/_matrix/media/r0/download/gnome.org/
> > 62a43e4dd1f71c657be994f79a4a203db9c9e708/video_514ec09.mp4) > > I wonder why 200 "success" is so unexpected. :P
AFAIK a working range request should answer 206, not 200. If we should accept 200 as a valid answer and be prepared to handle the whole download is a different issue.
Xabier Rodríguez Calvar
Comment 16
2021-02-09 11:44:01 PST
Michael, can you please clarify de scope of this bug. It is completely unclear to me. 200 vs 206 seems to be a different issue, please file a new bug for it as the initial scope of this bug seems to be different.
Michael Catanzaro
Comment 17
2021-02-09 12:00:19 PST
Yeah, I agree it looks like 200 vs. 206 is a totally different issue. I have created
bug #221622
for this problem with
https://gnome.modular.im/_matrix/media/r0/download/gnome.org/62a43e4dd1f71c657be994f79a4a203db9c9e708/video_514ec09.mp4
. I would say this bug can be closed when
https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/gtk/loop5.webm
is fixed. I also posted a link to
https://matrix.org/_matrix/media/v1/download/matrix.org/vatFhMWBkNvNZhJWOdQCkeaQ
in one of the comments above. I assume that one is really the same as this issue.
Fernando Jiménez Moreno
Comment 18
2021-02-09 22:00:13 PST
(In reply to Xabier Rodríguez Calvar from
comment #15
)
> AFAIK a working range request should answer 206, not 200. > > If we should accept 200 as a valid answer and be prepared to handle the > whole download is a different issue.
According to
https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.35.2
a server may ignore the `Range` header and so return a 200 response with the full content. Doing some archeology, it seems that
https://bugs.webkit.org/show_bug.cgi?id=85994
handled this scenario. But
Michael Catanzaro
Comment 19
2021-02-10 06:05:09 PST
Maybe you could finish that thought in
bug #221622
. :)
Michael Catanzaro
Comment 20
2022-02-10 12:11:18 PST
I'm renaming this bug "Cannot play particular WebM videos" -> "Cannot play particular videos" because it affects MP4 videos too. E.g. WebKit is unable to play MP4 videos attached to this Bugzilla instance (e.g.
attachment #451573
[details]
). The symptoms are identical, so I assume it is the same bug.
Michael Catanzaro
Comment 21
2023-05-26 08:27:43 PDT
(In reply to Philippe Normand from
comment #5
)
> The problem seems to be that loop5.webm is thought to be audio/webm by the > DOMImplementation and MediaDocument seems to handle only <video> elements, > so an empty page is displayed, only controls are visible.
This seems to be sort of fixed now? WebKit recognizes that it doesn't support the content type of
https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/gtk/loop5.webm
and the video gets downloaded instead. Well, that's not really the *desired* behavior, but at least it's not as broken as it was before.
Jakub Steiner
Comment 22
2023-05-29 01:04:50 PDT
Author of said videos here. I'm having trouble playing back some of these webm/vp9 or mp4/h264 video produced with Blender/ffmpeg. The common trait is that they don't have sound. It's not that they don't play directly, but also embedded with <video>:
https://teams.pages.gitlab.gnome.org/Design/web-experiments/static/tiling/
Philippe Normand
Comment 23
2023-05-29 02:03:44 PDT
(In reply to Jakub Steiner from
comment #22
)
> Author of said videos here. I'm having trouble playing back some of these > webm/vp9 or mp4/h264 video produced with Blender/ffmpeg. The common trait is > that they don't have sound. > > It's not that they don't play directly, but also embedded with <video>: > >
https://teams.pages.gitlab.gnome.org/Design/web-experiments/static/tiling/
This is
bug 221622
it seems.
Philippe Normand
Comment 24
2023-06-28 09:01:24 PDT
(In reply to Jakub Steiner from
comment #22
)
> Author of said videos here. I'm having trouble playing back some of these > webm/vp9 or mp4/h264 video produced with Blender/ffmpeg. The common trait is > that they don't have sound. > > It's not that they don't play directly, but also embedded with <video>: > >
https://teams.pages.gitlab.gnome.org/Design/web-experiments/static/tiling/
Plays fine here now in 44.0-128-g9791b24be+
Michael Catanzaro
Comment 25
2023-06-28 09:15:17 PDT
(In reply to Philippe Normand from
comment #24
)
> Plays fine here now in 44.0-128-g9791b24be+
It's broken for me with the exact same version. I have: WebKitGTK 2.41.5 GStreamer 1.22.4 $ flatpak remote-info --log gnome-nightly org.gnome.Platform//master ID: org.gnome.Platform Ref: runtime/org.gnome.Platform/x86_64/master Arch: x86_64 Branch: master Collection: org.gnome.Nightly Download: 345.8 MB Installed: 933.9 MB Commit: b7fab3a9bcf3de2dba4423e92b15767f23d4a190bd891bc5b02273635f44ee46 Parent: d3c3a428ebe93331f213d3ca80a7a708e41bcfbf7e720a0ffefc31b0ef3684c3 Subject: Export org.gnome.Platform Date: 2023-06-27 22:47:26 +0000 History: Let me try to get a GStreamer debug log.
Michael Catanzaro
Comment 26
2023-06-28 09:27:51 PDT
Looking at the GStreamer debug log, I think the problem on Jakub's website in
bug #221622
. I'll avoid attaching the debug log here because I'm pretty sure that's a different problem from the bug with
https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/gtk/loop5.webm
. In fact, it's impossible to reproduce the original bug here because WebKit no longer supports the content type and downloads rather than loads
https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/gtk/loop5.webm
, as I mentioned above in
comment #20
. The content type header for this file is audio/webm. That actually looks like a GitLab bug, because it should be a video, not audio. But anyway, I tested in Firefox and Firefox does not support audio/webm either. So the original bug with
https://raw.githubusercontent.com/gnome-design-team/gnome-mockups/master/gtk/loop5.webm
is no longer valid. The next broken video mentioned in this bug is
https://gnome.modular.im/_matrix/media/r0/download/gnome.org/62a43e4dd1f71c657be994f79a4a203db9c9e708/video_514ec09.mp4
, which got split out into...
bug #221622
. Moving on. The remaining problem here is
https://bugs.webkit.org/attachment.cgi?id=451573
. This video plays fine in Firefox but not in Epiphany. I got yet another debug log for this and decided this video is also broken due to
bug #221622
, same problem as with Jakub's video. So I think there is nothing more to fix here, at least not for now. Closing. I strongly suspect we still have a bug that causes WebM video documents to not work, but we'll have to resolve
bug #221622
first before we can make further progress, since that seems to be breaking a large number of videos. BTW, to get the debug log, I followed the instructions from
https://trac.webkit.org/wiki/WebKitGTK/Debugging#Debuggingmultimediastuff
, but they will be lost when trac disappears. It would be good to add instructions for GStreamer debugging to
https://docs.webkit.org/
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug