Open Bug 1802969 Opened 2 years ago Updated 2 days ago

Unable to unmute rte.ie video

Categories

(Web Compatibility :: Site Reports, defect, P2)

Firefox 95
Unspecified
Android

Tracking

(firefox109 affected, firefox111 affected)

ASSIGNED
Tracking Status
firefox109 --- affected
firefox111 --- affected

People

(Reporter: kbrosnan, Assigned: denschub)

References

(Blocks 1 open bug, )

Details

(Keywords: webcompat:needs-diagnosis)

User Story

platform:android
impact:site-broken
affects:all
diagnosis-team: Media

From github: https://github.com/mozilla-mobile/fenix/issues/23030.

Steps to reproduce

  1. Open following URL: https://www.rte.ie/news/coronavirus/2022/0101/1269381-coronavirus-ireland/
  2. Play video
  3. Attempt to unmute

Expected behaviour

Video should play (unmuted by default)

Actual behaviour

Video plays muted. Attempting to tap unmute icon does not unmute video. Works in Chrome for Android.

Device name

Samsung Galaxy s7

Android version

Android 8

Firefox release type

Firefox

Firefox version

95.2.0

Device logs

No response

Additional information

No response

┆Issue is synchronized with this Jira Task

Change performed by the Move to Bugzilla add-on.

The severity field is not set for this bug.
:jimm, could you have a look please?

For more information, please visit auto_nag documentation.

Flags: needinfo?(jmathies)

Still reproduces with Firefox 107.2.0 for Android. (Originally reported 2022-01-02.)
Plays as expected when "Desktop site" is set.

Component: Audio/Video → Mobile
Flags: needinfo?(jmathies)
Product: Core → Web Compatibility
Version: unspecified → Firefox 95

I was able to reproduce the issue.

Tested with:

Browser / Version: Firefox Release 109.2.0 (2015930059-🦎109.0.1-20230127170202🦎)/ Firefox Nightly 111.0a1 (2015932395-🦎111.0a1-20230208095231🦎)/ Chrome Mobile Version 109.0.5414.117
Operating System: Samsung A51 (Android 11) -1080 × 2400 pixels 20:9 aspect ratio (~405 ppi density)
Operating System: Google Pixel 3 (Android 12) -1080 x 2160 pixels, 18:9 ratio (~443 ppi density)

Notes:

  1. Reproducible regardless of the status of ETP.
  2. Reproducible on the latest build of Firefox Nightly and Release.
  3. Works as expected using Chrome.
Assignee: nobody → dschubert
Status: NEW → ASSIGNED
Component: Mobile → Site Reports
Severity: -- → S2
User Story: (updated)
Priority: -- → P2

Won't play at all in Fenix Nightly 128.0a1 2024-06-05 (so maybe a worse problem)
Plays in Fenix release 126.0.1, but muted and can't unmute (matches report).
Plays with audio on firefox desktop

-> media team to investigate

Flags: needinfo?(padenot)
Flags: needinfo?(apehrson)

-> alwu since it's playback

Flags: needinfo?(apehrson) → needinfo?(alwu)

(Just clearing my NI)

Flags: needinfo?(padenot)

I can reproduce this issue on my Fenix on my Pixel 6, I can't unmute it on Release and can't play it on Nightly. Same as comment4. As about:logging is still broken on Fenix (bug 1803607), I couldn't capture a profiled result and I don't have a cable to use about:debugging to connect my phone to my laptop right now. John, would you mind to take a look on this problem? It seems Android decoder doesn't support the video on Nightly, and probably we fail to load the audio track on Release. Thanks!

Flags: needinfo?(alwu) → needinfo?(jolin)

(In reply to Alastor Wu [:alwu] from comment #7)

I can reproduce this issue on my Fenix on my Pixel 6, I can't unmute it on Release and can't play it on Nightly. Same as comment4. As about:logging is still broken on Fenix (bug 1803607), I couldn't capture a profiled result and I don't have a cable to use about:debugging to connect my phone to my laptop right now. John, would you mind to take a look on this problem? It seems Android decoder doesn't support the video on Nightly, and probably we fail to load the audio track on Release. Thanks!

The video is served via HLS and can no longer play in Nightly since we disabled it in bug 1896932. This also explains why Desktop is okay. (Thanks to hls.js)

For the original symptom (cannot unmute), not sure why but logcat shows ExoPlayer2 doesn't report the (HE-AAC) audio track back, so the playback pipeline thinks it's video only.

Flags: needinfo?(jolin)
User Story: (updated)
Blocks: 1896931

(In reply to John Lin [:jhlin][:jolin] from comment #8)

The video is served via HLS and can no longer play in Nightly since we disabled it in bug 1896932. This also explains why Desktop is okay. (Thanks to hls.js)

For the original symptom (cannot unmute), not sure why but logcat shows ExoPlayer2 doesn't report the (HE-AAC) audio track back, so the playback pipeline thinks it's video only.

Does the video not play in Firefox Android because of:

  • an issue in hls.js?
  • this particular site's feature or UA detection doesn't recognize that Firefox Android now needs hls.js?
  • a Firefox bug?
Flags: needinfo?(jolin)

I think it's the site. When loading the page on desktop, the main hls.js class (Hls) was available in the devtools console, while I got a not defined error on mobile. It seems the site's script decided not to load hls.js in Fenix, although I couldn't find exactly where that decision was made.

Flags: needinfo?(jolin)

:jhlin, I don't see Hls defined on Chrome either, in any JS frame. Their player doesn't even seem to try to load Hls.js in either browser, and instead seems to just sets the video's src to "https://cdn.rasset.ie/hls-vod/2022/0101/20220101_webexclusi-sixnews- morehospit_c22045363_22045375_ih000410873_260_/manifest.m3u8" and tries to .play() it. Firefox ends up throwing an error on the video element, since it's HLS, but Chrome seems to just work.

The only place in their sources which seems to inject hls.[min.]js is here in their player.mins.js, which never trips a breakpoint for me in Chrome:

      , g = function() {
        $.getScript("js/vendor/hls.min.js?v=2").done(function(a) {
            f()
        }).fail(function(a, b, c) {
            h()
        })

I have no idea how this is possible, to be honest. The m3u8 seems to be playing HLS:

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2200000
/hls-vod/2022/0101/20220101_webexclusi-sixnews-morehospit_c22045363_22045375_ih000410873_260_/20220101_webexclusi-sixnews-morehospit_c22045363_22045375_ih000410873_260__2048k.mp4.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1100000
/hls-vod/2022/0101/20220101_webexclusi-sixnews-morehospit_c22045363_22045375_ih000410873_260_/20220101_webexclusi-sixnews-morehospit_c22045363_22045375_ih000410873_260__1024k.mp4.m3u8

Chrome is showing no networking requests for chunks of video as it plays, either. Just requests for SVG buttons and empty-response tracking pings.

..Does Chrome just support natively playing back that format, while we don't?

Flags: needinfo?(jolin)

Currently, Chrome for Android uses MediaPlayer API to handle HLS contents (Google is implementing its own playback support), and I think that's why it didn't load hls.js, either. Also, MediaPlayer fetches the media internally so Chrome won't show network requests for the video chunks.

On the other hand, GeckoView supports HLS using an outdated version of ExoPlayer(currently disabled in nightly and early beta builds) and it cannot find the audio track in this particular video.

(In reply to Thomas Wisniewski [:twisniewski] from comment #11)

:jhlin, I don't see Hls defined on Chrome either, in any JS frame. Their player doesn't even seem to try to load Hls.js in either browser, and instead seems to just sets the video's src to "https://cdn.rasset.ie/hls-vod/2022/0101/20220101_webexclusi-sixnews- morehospit_c22045363_22045375_ih000410873_260_/manifest.m3u8" and tries to .play() it. Firefox ends up throwing an error on the video element, since it's HLS, but Chrome seems to just work.

The only place in their sources which seems to inject hls.[min.]js is here in their player.mins.js, which never trips a breakpoint for me in Chrome:

      , g = function() {
        $.getScript("js/vendor/hls.min.js?v=2").done(function(a) {
            f()
        }).fail(function(a, b, c) {
            h()
        })

I have no idea how this is possible, to be honest. The m3u8 seems to be playing HLS:

#EXTM3U
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2200000
/hls-vod/2022/0101/20220101_webexclusi-sixnews-morehospit_c22045363_22045375_ih000410873_260_/20220101_webexclusi-sixnews-morehospit_c22045363_22045375_ih000410873_260__2048k.mp4.m3u8
#EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=1100000
/hls-vod/2022/0101/20220101_webexclusi-sixnews-morehospit_c22045363_22045375_ih000410873_260_/20220101_webexclusi-sixnews-morehospit_c22045363_22045375_ih000410873_260__1024k.mp4.m3u8

Chrome is showing no networking requests for chunks of video as it plays, either. Just requests for SVG buttons and empty-response tracking pings.

..Does Chrome just support natively playing back that format, while we don't?

Flags: needinfo?(jolin)

Ah. Are we considering our own implementation of HLS as well?

(In reply to Thomas Wisniewski [:twisniewski] from comment #13)

Ah. Are we considering our own implementation of HLS as well?

That's a no because of MPEG patent -- https://bugzilla.mozilla.org/show_bug.cgi?id=577084#c54

Have we tested this issue on Nightly? We are running an experiment where our built-in hls is disabled there. Maybe the site work in that situation.

Related - Bug 1911651 - Disable ExoPlayer HLS use (media.hls.enabled pref) in Fenix release to see what breaks

Flags: needinfo?(twisniewski)

I just updated to the latest nightly on my phone, where media.hls.enabled=false, and I'm getting "an unexpected error occurred" while trying to play the video, but it plays for me if I flip the pref to true. However, I also cannot unmute the video in that case (as per the STR).

Flags: needinfo?(twisniewski)
Blocks: 1911651
No longer blocks: 1896931
You need to log in before you can comment on or make changes to this bug.