gofile.io - Some mp4 videos are not supported on Android Firefox (audio/mp4a-latm)
Categories
(Core :: Audio/Video: Playback, defect, P3)
Tracking
()
People
(Reporter: ctanase, Assigned: jhlin)
References
()
Details
(Keywords: webcompat:platform-bug, webcompat:site-report, Whiteboard: [webcompat-source:web-bugs])
User Story
platform:android impact:content-missing configuration:general affects:some branch:release diagnosis-team:media
Attachments
(5 files)
Environment:
Operating system: Android
Firefox version: Firefox 131/133
Preconditions:
- Download the mp4 from https://github.com/joey-jo/test/blob/18d83dac4285332bdb737f140ba37f5218f31056/firefox_audio_fail.mp4 (tap on "View raw" to download it)
Steps to reproduce:
- Go to https://gofile.io ( or go to https://gofile.io/d/2PoTus and play the videos if folder is not expired yet)
- Tap on "Upload Files" and "Add files".
- Upload the video download from the preconditions.
- Click on the Download link.
- Play the video.
Expected Behavior:
The video can be played.
Actual Behavior:
Unable to play the video, error displayed "This video cannot be played because the format is not compatible with your browser"
Notes:
- Reproducible on other websites as well (e.g. https://simplevideoplayer.com)
- Reproduces regardless of the status of ETP
- Reproduces in Firefox Nightly, and Firefox Release
- Does not reproduce in Chrome
Created from https://github.com/webcompat/web-bugs/issues/141992
| Reporter | ||
Comment 1•1 year ago
|
||
| Reporter | ||
Comment 2•1 year ago
|
||
| Reporter | ||
Updated•1 year ago
|
Updated•1 year ago
|
Comment 3•1 year ago
|
||
This bug is confusing. Which video can't be played, the attached mp4 here on this bug, or is that a recording of the video in question failing to play?
It looks like the attached mp4 is the issue, not a particular hosting site. I can repro the playback error both by uploading the attached mp4 file to gofile.io and by hosting it on a local server. The file loads successfully on Linux desktop but fails on Android with the following error:
11-06 16:14:23.208 1875 1911 W Web Content: [JavaScript Warning: "Media resource http://192.168.1.1:8099/firefox_audio_fail.mp4 could not be decoded, error: Error Code: NS_ERROR_DOM_MEDIA_FATAL_ERR (0x806e0005)
11-06 16:14:23.208 1875 1911 W Web Content: Details: Error no decoder found for audio/mp4a-latm" {file: "http://192.168.1.1:8099/firefox_audio_fail.mp4" line: 0}]
HardwareCodecCapability reports support:
11-06 16:14:22.577 2058 2092 D HardwareCodecCapability: MIME support: SW audio/mp4a-latm
CCodecConfig is picking it up as well:
1-06 16:23:48.156 2057 4404 I CCodecConfig: query failed after returning 20 values (BAD_INDEX)
11-06 16:23:48.156 2057 4404 D CCodecConfig: c2 config diff is Dict {
11-06 16:23:48.156 2057 4404 D CCodecConfig: c2::u32 coded.aac-packaging.value = 0
11-06 16:23:48.156 2057 4404 D CCodecConfig: c2::u32 coded.bitrate.value = 64000
11-06 16:23:48.156 2057 4404 D CCodecConfig: c2::u32 coded.pl.level = 0
11-06 16:23:48.156 2057 4404 D CCodecConfig: c2::u32 coded.pl.profile = 8192
11-06 16:23:48.156 2057 4404 D CCodecConfig: c2::i32 coding.drc.album-mode.value = 0
11-06 16:23:48.156 2057 4404 D CCodecConfig: c2::float coding.drc.attenuation-factor.value = 1
11-06 16:23:48.156 2057 4404 D CCodecConfig: c2::float coding.drc.boost-factor.value = 1
11-06 16:23:48.156 2057 4404 D CCodecConfig: c2::i32 coding.drc.compression-mode.value = 3
11-06 16:23:48.156 2057 4404 D CCodecConfig: c2::i32 coding.drc.effect-type.value = 3
11-06 16:23:48.156 2057 4404 D CCodecConfig: c2::float coding.drc.encoded-level.value = 0.25
11-06 16:23:48.156 2057 4404 D CCodecConfig: c2::float coding.drc.reference-level.value = -16
11-06 16:23:48.156 2057 4404 D CCodecConfig: c2::u32 input.buffers.max-size.value = 8192
11-06 16:23:48.156 2057 4404 D CCodecConfig: c2::u32 input.delay.value = 0
11-06 16:23:48.156 2057 4404 D CCodecConfig: string input.media-type.value = "audio/mp4a-latm"
11-06 16:23:48.156 2057 4404 D CCodecConfig: c2::u32 output.delay.value = 2
11-06 16:23:48.156 2057 4404 D CCodecConfig: c2::float output.drc.output-loudness.value = 0.25
11-06 16:23:48.156 2057 4404 D CCodecConfig: string output.media-type.value = "audio/raw"
11-06 16:23:48.156 2057 4404 D CCodecConfig: c2::u32 raw.channel-count.value = 1
11-06 16:23:48.156 2057 4404 D CCodecConfig: c2::u32 raw.channel-mask.value = 0
11-06 16:23:48.156 2057 4404 D CCodecConfig: c2::u32 raw.max-channel-count.value = 8
11-06 16:23:48.156 2057 4404 D CCodecConfig: c2::u32 raw.sample-rate.value = 44100
11-06 16:23:48.156 2057 4404 D CCodecConfig: }
:jolin, do you have any thoughts here? I'd be happy to help dig deeper.
I verified that the file is not re-encoded when hosted on gofile.io by uploading it, downloading it, and comparing the stream information with mediainfo. Here's a fresh gofile.io link to the original video, and mediainfo output. This fails on Android but not on desktop:
$ mediainfo firefox_audio_fail.mp4
General
Complete name : firefox_audio_fail.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom (isom/iso8/mp41/avc1)
File size : 406 KiB
Duration : 20 s 39 ms
Overall bit rate : 166 kb/s
Frame rate : 30.000 FPS
Encoded date : 2024-07-09 08:31:25 UTC
Tagged date : 2024-07-09 08:31:25 UTC
Video
ID : 2
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L3.1
Format settings : CABAC / 3 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 3 frames
Format settings, GOP : M=4, N=60
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 20 s 33 ms
Bit rate : 69.1 kb/s
Width : 854 pixels
Height : 480 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 30.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.006
Stream size : 169 KiB (42%)
Writing library : H264 codec
Language : Korean
Encoded date : 2024-07-09 08:31:25 UTC
Tagged date : 2024-07-09 08:31:25 UTC
Codec configuration box : avcC
Audio
ID : 1
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Codec ID : mp4a-40-2
Duration : 20 s 39 ms
Bit rate mode : Constant
Bit rate : 88.6 kb/s
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 44.1 kHz
Frame rate : 43.066 FPS (1024 SPF)
Compression mode : Lossy
Stream size : 217 KiB (53%)
Encoded date : 2024-07-09 08:31:25 UTC
Tagged date : 2024-07-09 08:31:25 UTC
I re-encoded the audio stream and copied the video stream with ffmpeg -i firefox_audio_fail.mp4 -c:v copy -c:a aac -b:a 128k firefox_audio_fail_reencode.mp4. It's available here, and this works on both Android and desktop. Here's the mediainfo output:
$ mediainfo firefox_audio_fail_reencode.mp4
General
Complete name : firefox_audio_fail_reencode.mp4
Format : MPEG-4
Format profile : Base Media
Codec ID : isom (isom/iso2/avc1/mp41)
File size : 407 KiB
Duration : 20 s 39 ms
Overall bit rate mode : Variable
Overall bit rate : 166 kb/s
Frame rate : 30.000 FPS
Writing application : Lavf59.27.100
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Main@L3.1
Format settings : CABAC / 3 Ref Frames
Format settings, CABAC : Yes
Format settings, Reference frames : 3 frames
Format settings, GOP : M=4, N=60
Codec ID : avc1
Codec ID/Info : Advanced Video Coding
Duration : 20 s 34 ms
Bit rate : 69.1 kb/s
Width : 854 pixels
Height : 480 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 30.000 FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.006
Stream size : 169 KiB (42%)
Writing library : H264 codec
Language : Korean
Codec configuration box : avcC
Audio
ID : 2
Format : AAC LC
Format/Info : Advanced Audio Codec Low Complexity
Codec ID : mp4a-40-2
Duration : 20 s 39 ms
Source duration : 20 s 62 ms
Bit rate mode : Variable
Bit rate : 88.7 kb/s
Maximum bit rate : 128 kb/s
Channel(s) : 2 channels
Channel layout : L R
Sampling rate : 44.1 kHz
Frame rate : 43.066 FPS (1024 SPF)
Compression mode : Lossy
Stream size : 217 KiB (53%)
Source stream size : 217 KiB (53%)
Default : Yes
Alternate group : 1
Updated•1 year ago
|
Updated•1 year ago
|
Comment 6•1 year ago
|
||
Calin, on what device/android version does Chrome play the file?
Comment 7•1 year ago
|
||
Comment 8•1 year ago
|
||
Open question is why can Chrome play this but Firefox can't. Waiting on John to chime in.
| Reporter | ||
Comment 9•1 year ago
|
||
(In reply to Jeff Muizelaar [:jrmuizel] from comment #6)
Calin, on what device/android version does Chrome play the file?
OnePlus 6 (Android 11) / Chrome 131.0.6778.135
Updated•1 year ago
|
| Assignee | ||
Comment 10•1 year ago
|
||
The audio data in this file is 32-bit and rejected by AndroidDecoderModule, but with bug 1833654 I think it's okay now.
| Assignee | ||
Comment 11•1 year ago
|
||
Updated•1 year ago
|
| Assignee | ||
Updated•1 year ago
|
| Assignee | ||
Comment 12•1 year ago
|
||
Comment 13•1 year ago
|
||
Comment 14•1 year ago
|
||
| bugherder | ||
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
Description
•