Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proprietary Codec Support (H264, MP3) #1479

Closed
Feko opened this issue Dec 9, 2015 · 13 comments
Closed

Proprietary Codec Support (H264, MP3) #1479

Feko opened this issue Dec 9, 2015 · 13 comments
Labels
faq-able! upstream These issues require fixing in the Chromium Embedded Framework(CEF) or Chromium.

Comments

@Feko
Copy link

Feko commented Dec 9, 2015

Hello,

I'm trying to play audio, using tag and CefSharp. No success so far.
After long searches, seems like I need ffmpegsumo.dll from the same exact version as CEF. (#444)
But, I'm using CEF 3.2526.1359, and as described here: https://codereview.chromium.org/1141703002 , CEF3 now statically links ffmpeg... What is "statically link"? What should I do to be able to play audio?

Thanks in advice!

@Feko
Copy link
Author

Feko commented Dec 11, 2015

Just as a test, I tried another release of CefSharp: Release 43, CEF 3.2357.1287
This time, with ffmpegsumo.dll provided by default. Same issue as described in #444 Audio controls appear, but speaker is disabled, and no sound.
Tried downloading CEF release from cefbuilds.com (3.2357.1287.g861c26e_windows32) and using those dlls... same thing. What am I doing wrong?

@amaitland
Copy link
Member

What is "statically link"?

The code has been compiled into the libcef.dll, so there is no longer a need for a separate dll.

After long searches, seems like I need ffmpegsumo.dll from the same exact version as CEF. (#444)

Did you try the example URL linked in #444? It plays fine for me?

Just as a test, I tried another release of CefSharp: Release 43, CEF 3.2357.1287

For this release you would require ffmpegsumo.dll

What am I doing wrong?

Are you trying to play audio that requires a proprietary codec? e.g. mp3? Licensing restrictions prohibit CEF/CefSharp from distributing binary's that provide support.

@Feko
Copy link
Author

Feko commented Dec 14, 2015

Hi, thanks for your reply :)
Oh sorry, I didn't tried that example, I was working on a test page I've created.
I was trying to play MP3/M4A... After your answer, I tried OGG Vorbis on CefSharp 43 + ffmpegsumo.dll, and it worked just fine!!
But in this project, I really need support to those proprietary formats... How can I achieve that?

Thanks!

@amaitland
Copy link
Member

But in this project, I really need support to those proprietary formats... How can I achieve that?

Quite a lot of effort is required. See https://groups.google.com/d/msg/cefsharp/BJLMXl9c204/HMJlp8mZzF0J for a guide (little outdated).

You'd also need to look at acquiring the relevant licenses to use/distribute those codecs.

@amaitland amaitland changed the title Audio with CEF 3.2526.1359 Proprietary Codec Support (H264, MP3) Dec 29, 2015
@cefsharp cefsharp locked and limited conversation to collaborators Sep 5, 2016
@jankurianski
Copy link
Member

With the expiration of the MP3 patent, MP3 codec support is planned to be included by default in Chromium 62. Therefore it will make its way into CEF and eventually CefSharp (if a contributor is interested in creating a future CefSharp release against 62).

http://magpcss.org/ceforum/viewtopic.php?f=7&t=15066
https://bugs.chromium.org/p/chromium/issues/detail?id=746579

@perlun
Copy link
Member

perlun commented Nov 29, 2017

Intresting @jankurianski. I have started working with #2203, and can run CefSharp with CEF 62. But it still claims MP3 support is not available when I check http://www.html5test.com


Ah, it turns out it didn't make it for Chromium 62. 😭 😭 😭 I think our best bet then is to recompile CEF from source, backporting https://chromium.googlesource.com/chromium/third_party/ffmpeg/+/6ff143c61bc81049d730872b23e4993ca18080fc to the Chromium 62 branch... 🙁

@jankurianski
Copy link
Member

@perlun looks like even to build you would need to wait for https://bugs.chromium.org/p/chromium/issues/detail?id=787575 to be fixed also (linked issue from original MP3 issue). May be easier just to wait until official build of CEF 63 rather than fork CEF and deal with all the maintenance and bug fix merging headaches.

@perlun
Copy link
Member

perlun commented Nov 30, 2017

@jankurianski From what I can tell, that only relates to a couple of tests; I am willing to take the risk of testing the "build your own approach" for now and see if it works. But I agree, the long-term fix is CEF 63.

@perlun
Copy link
Member

perlun commented Dec 3, 2017

See #2204 for those of you who cannot really wait.

@perlun perlun added the upstream These issues require fixing in the Chromium Embedded Framework(CEF) or Chromium. label Dec 4, 2017
@perlun perlun added this to the 64.0.0 milestone Dec 4, 2017
@perlun perlun reopened this Dec 4, 2017
@perlun
Copy link
Member

perlun commented Dec 4, 2017

Quoting from https://bugs.chromium.org/p/chromium/issues/detail?id=746579:

As Chris notes in c#10, in M64+ MP4 and MP3 are available in Chromium. While the container will demux and the codec will now play, we're still sorting out the mime-type issues though so canPlayType/isTypeSupported aren't accurate.

There will be no updates to M63 for this.

So, the "proper" solution for this will have to wait until CEF 64 unfortunately. I reopened this now, so we can keep track of this. The schedule for Chromium versions is as follows:

Release Estimated Week of Stable
63 Dec 5th, 2017 (Dec 12th for Chrome OS)
64 Jan 23rd, 2018 (Jan 30th for Chrome OS)

So, in a couple of months we should be able to provide the long awaited MP3 support. 🎉

@perlun
Copy link
Member

perlun commented Dec 20, 2017

Unfortunately, the full support for this has been delayed to Chromium/CEF 65:

Chromium mp3 support technically exists in M64, in that if you try to play an MP3 via src="your_file.mp3" it will work.

But .canPlayType('...') will not report support for mp3 until M65.

Playback via MSE (and checking for support via isTypeSupported) will not be available in Chromium until M65.

We will ship with whatever is included in M64, believe me, but this means that the full support will not be in CefSharp until 65.0.0. Given the schedule above, I would guess that it is scheduled for February sometime.

@amaitland
Copy link
Member

master has been upgraded to CEF 3.3282.1731.gfc9a4fa / Chromium 64.0.3282.119, partial MP3 support should be included (haven't tested personally yet)

@amaitland amaitland removed this from the 65.0.0 milestone Mar 20, 2018
@amaitland
Copy link
Member

Closing this issue and using #2322 to track MP3 support.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
faq-able! upstream These issues require fixing in the Chromium Embedded Framework(CEF) or Chromium.
Projects
None yet
Development

No branches or pull requests

4 participants