Chromium Embedded Framework MP3 support

后端 未结 6 872
攒了一身酷
攒了一身酷 2020-12-03 02:19

I\'ve downloaded Chromium Embedded Framework r306 for Windows and built it. Unfortunately, it shows, that it doesn\'t support mp3:



        
相关标签:
6条回答
  • 2020-12-03 02:32

    There is a way to enable MP3 support in CEF, but you'll have to modify the cef.gypi in the source distribution, regenerate the visual studio projects and rebuild.

    Detailed build instructions:
    https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding

    Enabling proprietary codecs support:
    http://code.google.com/p/chromiumembedded/issues/detail?id=371

    Add 'proprietary_codecs': 1 to your cef.gypi configuration so that USE_PROPRIETARY_CODECS will be defined as required by net/base/mime_util.cc.

    You'll also need proper builds of the avcodec, avformat and avutil DLLs. Luckily, you can just get these from the installation directory of Google Chrome itself ($User/AppData/Local/Google/Chrome/$Version).

    0 讨论(0)
  • 2020-12-03 02:39

    the options to enable proprietary codecs (i.e. H.264 and MP3) have been moved since the last answer.

    you can read my answer with all the details on how to compile CEF with enabled proprietary codecs

    the magic now happens here:

    set GN_DEFINES=is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome
    

    there is 2 batch files that you should update/create (as found here):

    c:\code\chromium_git\update.bat:

    set CEF_USE_GN=1
    set GN_DEFINES=is_official_build=true proprietary_codecs=true ffmpeg_branding=Chrome
    set GN_ARGUMENTS=--ide=vs2015 --sln=cef --filters=//cef/*
    python ..\automate\automate-git.py --download-dir=C:\code\chromium_git --depot-tools-dir=C:\code\depot_tools --no-distrib --no-build
    

    c:\code\chromium_git\chromium\src\cef\create.bat:

    set CEF_USE_GN=1
    set GN_DEFINES=is_win_fastlink=true proprietary_codecs=true ffmpeg_branding=Chrome
    set GN_ARGUMENTS=--ide=vs2015 --sln=cef --filters=//cef/*
    call cef_create_projects.bat
    

    There is 2 wiki articles that explain how to build CEF/Chromium:

    1. https://bitbucket.org/chromiumembedded/cef/wiki/MasterBuildQuickStart.md
    2. and BranchesAndBuilding in the same wiki
    0 讨论(0)
  • 2020-12-03 02:43

    NOTE: PLEASE CONSIDER LEGAL ISSUES BEFORE PROCEEDING

    There is a way to enable MP3 support in CEF, but you'll have to modify the cef.gypi in the source distribution, regenerate the visual studio projects and rebuild.

    Step by step instructions:

    a a

    0 讨论(0)
  • 2020-12-03 02:43

    Marshall Greenblatt (the maintainer of the Chromium Embedded Framework) addresses the lack of support for MP3 (and AAC) in Chromium and CEF in this bug report (see comment #7, copied below):

    Codecs like MP3 and AAC are included in Google Chrome releases but not Chromium builds. This is because these formats are not open and require licensing. Distributing these codecs with your application without a licensing agreement may violate the law in certain countries. You should discuss with a lawyer if appropriate.

    0 讨论(0)
  • 2020-12-03 02:51

    I followed the steps in null1941's answer and they worked great save a few caveats having to do with modifying the build.ps1 script

    step 16 e. search for any instances of 3.y.z and replace them with the current version you are building (from the folder name containing the builds ex. 3.2272.32.gbda8dc7).  
    
    in function DownloadNuget it is trying to see if you have nuget in a specific place and if it isn't there it tries to go get it.  Problem is DownloadFile would fail if the save directory didn't already exist. so you can manualy create or add this to the function:
        $Nuget_dir = Join-Path $env:LOCALAPPDATA .\nuget
        if(-not (Test-Path $Nuget_dir))
        {
            mkdir $Nuget_dir
        }
    
    change line: "Copy-Item $Cef64\include $CefInclude -Recurse | Out-Null" to use $Cef32 if you don't have 64bit cef folders
    
    0 讨论(0)
  • 2020-12-03 02:53

    MP3 codec only be supported When build to Google Chrome, check chromium's Codec Support.

    On client side, the compatible way may be Flash, check google translate's code.

    0 讨论(0)
提交回复
热议问题