<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      如何在Windows上從源碼編譯Chromium (CEF3) 加入mp3支持

      一、什么是CEF

      CEF即Chromium Embeded Framework,由谷歌的開源瀏覽器項目Chromium擴展而來,可方便地嵌入其它程序中以得到瀏覽器功能。

      CEF包括CEF1和CEF3兩個版本,CEF1已停止更新。由于CEF只支持C、C++,所以出現了很多第三方項目來提供其它語言的支持。

      .NET 的包裝類庫有chromiumfx、cefglue、cefsharp,其它語言參看https://bitbucket.org/chromiumembedded/cef#markdown-header-external-projects 。

      CEF版本號說明:3.2357.1281.gd660177 -> CEF版本號.Branch.Patch.Hash

      二、為何要編譯CEF

      在使用chromiumfx+cef過程中發現不支持主流的mp3、mp4格式,經過搜索發現因為這些格式不是開放格式,出于版權的考慮在chromium編譯配置中去掉了對這些格式的支持。要添加支持必須修改編譯的配置參數。網上流傳的通過復制chrome目錄下ffmpeg.dll替換的方式經過實踐并沒有成功,于是決定動手編譯。

      三、編譯先決條件

      1.快速穩定的VPN (不但要fq而且要穩定。下載webkit時候單個文件4G+,一旦失敗則需要重新下載

      2.64位操作系統,win7+

      3.硬盤空間40G+,內存4G+

      4.大量的時間 (下載五六個小時,編譯兩三個小時

      5.vs2013 update4、win8.1 SDK (Express不行,update5+未測試

      四、編譯過程

      1.升級vs13至update4,安裝Microsoft Foundation Classes for C++(MFC庫,可運行vs安裝包安裝),安裝win8.1 SDK。

      2.設置系統區域為英語(美國)。(控制面板-區域-管理-更改系統區域設置-英語(美國)

      3.添加環境變量

      DEPOT_TOOLS_WIN_TOOLCHAIN=0

      GYP_GENERATORS=ninja,msvs-ninja

      GYP_MSVS_VERSION=2013

      4.創建工作目錄,盡量簡單,不帶空格特殊字符。例:e:\ws

      5.下載解壓工具包解壓至工作目錄,并添加到系統環境變量Path末尾。例:e:\ws\depot_tools

      下載:depot_tools (原頁面

      6.下載編譯腳本至工作目錄

      下載:automate-git.py 

      7.工作目錄下建立源碼目錄。例:e:\ws\source

      8.以管理員身份運行cmd,切換至工作目錄,運行gclient

      1 e:
      2 cd e:\ws
      3 gclient

      等待安裝python和git,大約五六分鐘。

      9.繼續執行

      python automate-git.py

      根據提示選擇合適配置參數

      --download-dir 源碼下載目錄

      --depot-tools-dir 工具包目錄

      --branch 源碼分支(默認trunk主分支

      --checkout 指定patch版本(默認最近提交 如何確定checkout下文介紹

      --no-build 下載完不自動開始編譯(我們需要修改編譯配置

      --no-update 確定源碼下載完畢僅重新編譯時使用

      --force-build 強制編譯(發現在有成功編譯的時候再編譯不會執行,可以加上這個

      --no-debug-build 只編譯release版本

      --no-release-build 只編譯debug版本

      python automate-git.py --download-dir=e:\ws\source --depot-tools-dir=e:\ws\depot_tools --branch=2357 --checkout=d66017718b0f0d44da42b706c3c2aa5c0c103852 --no-build 

      10.等待下載完成。睡上一覺,或盯著屏幕六小時。

      五、如何確定--checkout值

      如果確定需要分支下的最新版本,請略過此節。

      1.從http://cefbuilds.com/檢查目標版本的hash值。例:3.2357.1281.gd660177中的gd660177

      2.從https://bitbucket.org/chromiumembedded/cef/branches/進入目標分支。例:2357

      3.在Commits中檢索目標hash,注意版本號中hash為8位,commits中為7位,可以忽略第一位搜索。例:gd660177->d660177

      4.點擊相應commit,即可在地址欄中得到checkout值。例:d66017718b0f0d44da42b706c3c2aa5c0c103852

      六、修改編譯配置

      1.打開e:\ws\source\chromium\src\cef\cef.gypi,variables節下添加如下即可支持mp3。

          'proprietary_codecs': 1,
          'ffmpeg_branding': 'Chrome',

      同時可參考http://blog.csdn.net/chromium_webkit/article/details/8575629加入更多格式支持

      從Chromium的源碼third_party\ffmpeg\chromium\config\Chrome\linux\ia32\config.h可以得知Chrome采用的FFmpeg的配置選項,在原有的配置選項后面添加如下選項:

      --enable-decoder='rv10,rv20,rv30,rv40,cook,h263,h263i,mpeg4,msmpeg4v1,msmpeg4v2,msmpeg4v3,amrnb,amrwb,ac3,flv' --enable-demuxer='rm,mpegvideo,avi,avisynth,h263,aac,amr,ac3,flv,mpegts,mpegtsraw' --enable-parser='mpegvideo,rv30,rv40,h263,mpeg4video,ac3'

      2.打開相同目錄下cef.gyp,根據以下內容替換(--為待替換,++為替換后,其實這是一個patch文件,不知道如何用只好手動替換一下 新版本可能已包含了此patch)

      @@ -7,7 +7,7 @@
           'pkg-config': 'pkg-config',
           'chromium_code': 1,
           'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)/cef',
      -    'about_credits_file': '<(SHARED_INTERMEDIATE_DIR)/about_credits.html',
      +    'cef_about_credits_file': '<(SHARED_INTERMEDIATE_DIR)/cef_about_credits.html',
           'framework_name': 'Chromium Embedded Framework',
           'revision': '<!(python tools/revision.py)',
           'chrome_version': '<!(python ../build/util/version.py -f ../chrome/VERSION -t "@MAJOR@.@MINOR@.@BUILD@.@PATCH@")',
      @@ -659,26 +659,26 @@
             ],
           },
           {
      -      'target_name': 'about_credits',
      +      'target_name': 'cef_about_credits',
             'type': 'none',
             'actions': [
               {
                 'variables': {
                   'generator_path': '../tools/licenses.py',
                 },
      -          'action_name': 'generate_about_credits',
      +          'action_name': 'cef_generate_about_credits',
                 'inputs': [
                   # TODO(phajdan.jr): make licenses.py print inputs too.
                   '<(generator_path)',
                 ],
                 'outputs': [
      -            '<(about_credits_file)',
      +            '<(cef_about_credits_file)',
                 ],
                 'hard_dependency': 1,
                 'action': ['python',
                            '<(generator_path)',
                            'credits',
      -                     '<(about_credits_file)',
      +                     '<(cef_about_credits_file)',
                 ],
                 'message': 'Generating about:credits.',
               },
      @@ -689,7 +689,7 @@
             'target_name': 'cef_resources',
             'type': 'none',
             'dependencies': [
      -        'about_credits',
      +        'cef_about_credits',
             ],
             'actions': [
               {
      @@ -697,7 +697,7 @@
                 'variables': {
                   'grit_grd_file': 'libcef/resources/cef_resources.grd',
                   'grit_additional_defines': [
      -              '-E', 'about_credits_file=<(about_credits_file)',
      +              '-E', 'about_credits_file=<(cef_about_credits_file)',
                   ],
                 },
                 'includes': [ '../build/grit_action.gypi' ],

      七、開始編譯生成

      python automate-git.py --download-dir=e:\ws\source --depot-tools-dir=e:\ws\depot_tools --branch=2357 --checkout=d66017718b0f0d44da42b706c3c2aa5c0c103852 --no-debug-build --force-build

      等待兩三個小時即可編譯完成,偶然出錯退出則加入--no-update重新執行,會繼續上次的生成。

       

      八、參考資料

      https://bitbucket.org/chromiumfx/chromiumfx/overview

      https://bitbucket.org/chromiumembedded/cef/wiki/BranchesAndBuilding.md#markdown-header-automated-method

      https://github.com/cefsharp/cef-binary/wiki/Building-Cef-from-source

      http://cefbuilds.com/

      http://blog.csdn.net/chromium_webkit/article/details/8575629

       

       

       

       

      
      

       

      posted @ 2015-09-06 16:20  超軟毛毛蟲  閱讀(16050)  評論(32)    收藏  舉報
      主站蜘蛛池模板: 欧美肥老太牲交大战| 亚洲男人电影天堂无码| 妓女妓女一区二区三区在线观看 | 国产精品久久久天天影视香蕉| 一区二区三区人妻无码| 2018年亚洲欧美在线v| 蜜臀av一区二区三区不卡| 中文字幕久久久久人妻中出| 中文 在线 日韩 亚洲 欧美| 精品无码久久久久国产动漫3d| 亚洲色偷偷色噜噜狠狠99| 亚洲高清国产成人精品久久| 亚洲精品自拍区在线观看| 国产色无码精品视频免费| 在线看av一区二区三区| 国产免费踩踏调教视频| 鲁甸县| 成人亚洲精品一区二区三区| 日韩精品国产精品十八禁| 亚洲日产韩国一二三四区| 无码专区 人妻系列 在线| 国产成人av三级在线观看| 无码国产精品一区二区免费3p| 亚洲中文字幕日韩精品| 欧美日韩国产图片区一区| 欧美成人一区二区三区不卡| 日产一区日产2区| 国产性生大片免费观看性| √天堂中文www官网在线| 日韩中文字幕高清有码| 国产又黄又爽又不遮挡视频| 国产精品美女免费无遮挡| 老太脱裤让老头玩ⅹxxxx| 成人3d动漫一区二区三区| 91老熟女老人国产老太| 亚洲天堂伊人久久a成人| 国内自拍av在线免费| 日本一区二区精品色超碰| 国产午夜亚洲精品久久| 乱码中文字幕| 麻豆麻豆麻豆麻豆麻豆麻豆|