Closed Bug 1328038 Opened 7 years ago Closed 7 years ago

Firefox doesn't play MP4 video files

Categories

(Core :: Audio/Video: Playback, defect)

Unspecified
All
defect
Not set
normal

Tracking

()

VERIFIED FIXED
mozilla53
Tracking Status
firefox50 --- wontfix
firefox51 --- wontfix
firefox52 --- verified
firefox53 --- verified

People

(Reporter: arni2033, Assigned: jya)

Details

(Keywords: regression)

Attachments

(1 file)

>>>   My Info:   Win7_64, Nightly 49, 32bit, ID 20160526082509
STR_1:
1. Open video attachment 8526807 [details] , wait until it's loaded
2. Click play button

AR:  Step 1, Step 2 - playback immediately jumps to the end of the video
ER:  Either X or Y
 X) Browser should play the video normally
 Y) Browser should indicate that either it can't decode the video, or the video itself is broken.

Notes:
1) Nightly 2014-01-02 is unaffected: it says "Video corrupt" and doesn't show timeline or anything
2) I don't know if old behavior is UX intended by developers, so regression range is useless so far
3) The same happens with attachment 8709406 [details]
No longer blocks: 1277113
Component: Untriaged → Audio/Video: Playback
Product: Firefox → Core
WFM on Linux with FF 50 and Nightly.
Doesn't work on Windows 10 with Nightly 53
This is an issue of the Windows H264 decoder; it only ever returns MF_E_TRANSFORM_NEED_MORE_INPUT for every input.
So the file is entirely read until it reaches the end.

The behaviour is the same as with Microsoft Edge.

I don't believe there's anyway we can play this file on windows, however need to find a way to detect those and mark them as broken instead.
Oh, this is a 4:4:4 YUV video, not supported by WMF.

Those should be refused already...
Assignee: nobody → jyavenard
Comment on attachment 8823131 [details]
Bug 1328038: Refuse to play High 4:4:4 Predictive Profile.

https://reviewboard.mozilla.org/r/101712/#review102166
Attachment #8823131 - Flags: review?(jacheng) → review+
Comment on attachment 8823131 [details]
Bug 1328038: Refuse to play High 4:4:4 Predictive Profile.

https://reviewboard.mozilla.org/r/101712/#review102168

::: dom/media/platforms/wrappers/H264Converter.cpp:175
(Diff revision 1)
>  
>    mp4_demuxer::SPSData spsdata;
>    if (mp4_demuxer::H264::DecodeSPSFromExtraData(mCurrentConfig.mExtraData, spsdata)) {
>      // Do some format check here.
>      // WMF H.264 Video Decoder and Apple ATDecoder do not support YUV444 format.
> -    if (spsdata.chroma_format_idc == 3 /*YUV444*/) {
> +    if (spsdata.profile_idc == 244 /* Hi444PP */ ||

Shall we do the same check here?
http://searchfox.org/mozilla-central/rev/22be34bcc4d5c56b62482a537bba77a6cdce117b/dom/media/platforms/PDMFactory.cpp#132
Hi jya, 

For this video from comment0, 

the value of chroma_format_idc equals to "1" which means YUV420 but the profile_idc equals to "244"...

Which value should represent the source data is YUV444 or both could be?

Should these two values be the same ideally(chroma_format_idc =3 and profile_idc=244)?

Thank you.
Comment on attachment 8823131 [details]
Bug 1328038: Refuse to play High 4:4:4 Predictive Profile.

https://reviewboard.mozilla.org/r/101712/#review102168

> Shall we do the same check here?
> http://searchfox.org/mozilla-central/rev/22be34bcc4d5c56b62482a537bba77a6cdce117b/dom/media/platforms/PDMFactory.cpp#132

we should indeed...
Just in case, GoogleChrome plays the video fine.
I don't remember if I have some codecs installed - probably GoogleChrome uses them and Firefox doesn't
Either way I'll provide any data if somebody is interested. Honestly, I don't even know whether I should expect Firefox to "reliably play MP4 video", probably not. But I expect that from GoogleChrome.
(In reply to James Cheng[:JamesCheng] from comment #7)
> Hi jya, 
> 
> For this video from comment0, 
> 
> the value of chroma_format_idc equals to "1" which means YUV420 but the
> profile_idc equals to "244"...
> 
> Which value should represent the source data is YUV444 or both could be?
> 
> Should these two values be the same ideally(chroma_format_idc =3 and
> profile_idc=244)?
> 
> Thank you.

https://en.wikipedia.org/wiki/H.264/MPEG-4_AVC#Profiles

you'll find that really, there's nothing much about chrome_format_idc defined.
(In reply to arni2033 [Please stop 'improving' Firefox] from comment #10)
> Just in case, GoogleChrome plays the video fine.
> I don't remember if I have some codecs installed - probably GoogleChrome
> uses them and Firefox doesn't
> Either way I'll provide any data if somebody is interested. Honestly, I
> don't even know whether I should expect Firefox to "reliably play MP4
> video", probably not. But I expect that from GoogleChrome.

Chrome uses FFmpeg for those.

Which is why you find that Firefox on Linux will play the video just fine.
The issue is with the system H264 decoder shipping with Windows OS. It doesn't support those files, and likely never will.
Hence why Edge, IE or Firefox on Windows do not play this file.
Pushed by jyavenard@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/8f1754f39538
Refuse to play High 4:4:4 Predictive Profile. r=JamesCheng
https://hg.mozilla.org/mozilla-central/rev/8f1754f39538
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla53
Do we want to backport this to Aurora for the next ESR?
Flags: needinfo?(jyavenard)
would be nice.
Flags: needinfo?(jyavenard)
Comment on attachment 8823131 [details]
Bug 1328038: Refuse to play High 4:4:4 Predictive Profile.

Approval Request Comment
[Feature/Bug causing the regression]: always been like that
[User impact if declined]: We attempt (incorrectly) to play some files, it results in an invalid behaviour
[Is this code covered by automated tests?]: no
[Has the fix been verified in Nightly?]: not, except by myself
[Needs manual test from QE? If yes, steps to reproduce]: in bug description
[List of other uplifts needed for the feature/fix]: none
[Is the change risky?]: no
[Why is the change risky/not risky?]: we error on a defined pixel format that we can't decode on windows. It's blocked on all platforms to achieve consistency
[String changes made/needed]: none
Attachment #8823131 - Flags: approval-mozilla-aurora?
Comment on attachment 8823131 [details]
Bug 1328038: Refuse to play High 4:4:4 Predictive Profile.

don't try playing videos we can't decode, aurora52+
Attachment #8823131 - Flags: approval-mozilla-aurora? → approval-mozilla-aurora+
Flags: qe-verify+
Reproduced on 51.0.1.
Verified fixed Fx 52.0-build1, 53.0a2 (2017-02-28) Win 10 x64.
Status: RESOLVED → VERIFIED
Flags: qe-verify+
OS: Unspecified → Windows
(In reply to Jean-Yves Avenard [:jya] from comment #12)
> (In reply to arni2033 [Please stop 'improving' Firefox] from comment #10)
> > Just in case, GoogleChrome plays the video fine.
> > I don't remember if I have some codecs installed - probably GoogleChrome
> > uses them and Firefox doesn't
> > Either way I'll provide any data if somebody is interested. Honestly, I
> > don't even know whether I should expect Firefox to "reliably play MP4
> > video", probably not. But I expect that from GoogleChrome.
> 
> Chrome uses FFmpeg for those.
> 
> Which is why you find that Firefox on Linux will play the video just fine.
> The issue is with the system H264 decoder shipping with Windows OS. It
> doesn't support those files, and likely never will.
> Hence why Edge, IE or Firefox on Windows do not play this file.

It seems that it is not applicable anymore, because starting with 2017-01-13 the attached type of .mp4 file is not played on Ubuntu and neither on Mac. Is it possible that this bug to be occurred across platforms, not only in Windows? Is it expected?
Flags: needinfo?(jyavenard)
it should not play anywhere no...
Flags: needinfo?(jyavenard)
(In reply to Iulia Cristescu, QA [:JuliaC] from comment #22)
> It seems that it is not applicable anymore, because starting with 2017-01-13
> the attached type of .mp4 file is not played on Ubuntu and neither on Mac.
> Is it possible that this bug to be occurred across platforms, not only in
> Windows? Is it expected?

I mean, that's what this patch was about, prevent the file to play on all platforms. So if you find that it doesn't play on ubuntu or mac, what is surprising you?
(In reply to Jean-Yves Avenard [:jya] from comment #24)
> 
> I mean, that's what this patch was about, prevent the file to play on all
> platforms. So if you find that it doesn't play on ubuntu or mac, what is
> surprising you?

The Platform field was outdated, indicating just the Windows platform as being affected and also comment 12 was confusing in the same way. That's why I wanted to clarify this thing. And thank you for that!
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: