<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] ## Linux下webrtc 編譯 環境基本配置和依賴下載 ``` apt-get update apt-get install -y g++ curl wget python git lsb-release sudo export PATH=$PATH:$WORKSPACE/depot_tools cd $WORKSPACE/webrtc/src ./build/install-build-deps.sh ``` 生成build.gn文件和 qtcreator文件, 通過ninja編譯 ``` gn gen out/Release --args="use_rtti=true use_custom_libcxx=false proprietary_codecs=true use_openh264=true ffmpeg_branding=\"Chrome\" rtc_include_tests=false is_debug=false" --ide="qtcreator" ninja -C out/Release ``` ## MacOS 下載depot_tools ``` export PATH=$PATH:$WORKSPACE/depot_tools export CDS_CLANG_BUCKET_OVERRIDE=https://chromiumsrc.gitlab.io/commondatastorage/chromium-browser-clang git.sh cd $WORKSPACE rm -rf depot_tools && git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git depot_tools cd $WORKSPACE/depot_tools && git checkout gitlab chmod +x $WORKSPACE/depot_tools/cipd ``` 下載webrtc源碼 ``` cd $WORKSPACE rm -rf $WORKSPACE/webrtc && mkdir $WORKSPACE/webrtc cd $WORKSPACE/webrtc && \ gclient config --name src https://chromium.googlesource.com/external/webrtc.git@gitlab cd $WORKSPACE/webrtc && \ gclient sync\ --patch-ref=https://chromium.googlesource.com/chromium/src/build.git@gitlab sudo xcode-select -s /Applications/Xcode.app/Contents/Developer ``` 生成build.gn文件和 qtcreator文件, 通過ninja編譯 ``` cd $WORKSPACE/webrtc/src && \ gn gen out/mac --args="use_rtti=true use_custom_libcxx=false proprietary_codecs=true use_openh264=true ffmpeg_branding=\"Chrome\" rtc_include_tests=false is_debug=false" --ide="qtcreator" cd $WORKSPACE/webrtc/src && \ ninja -C out/mac ``` ## Windows ***** 設置環境變量 set DEPOT_TOOLS_UPDATE=0 #不更新depot_tools set DEPOT_TOOLS_WIN_TOOLCHAIN=0 #編譯時使用本機VS工具鏈 set GYP_MSVS_VERSION = 2017 #指定VS版本 set GYP_MSVS_OVERRIDE_PATH = C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise #vs安裝路徑,替換成自己的 set GYP_GENERATORS=msvs-ninja,ninja #使用ninja編譯 1.不需要單獨安裝python環境。python-2.7.6 安裝好depot_tools后,把 depot_tools\win_tools-2_7_6_bin\python\bin\目錄設置為python環境變量 2.需要下載[Debugging Tools for Windows 10 (WinDbg)](https://go.microsoft.com/fwlink/p/?linkid=2120843) 3.建議在powershell環境下使用 ``` set PY27=depot_tools\win_tools-2_7_6_bin\python\bin\ set PATH=%PATH%;depot_tools\win_tools-2_7_6_bin\python\bin\ set PYTHONHOME=%PY27% set PYTHONPATH=%PYTHONHOME%\lib ``` ``` # 1. git - https://git-scm.com/download/win 2. visualstudio2017community - https://download.visualstudio.microsoft.com/download/pr/aaebc214-bc67-4137-9bea-04fcb0c90720/2e18f27594472d0c7515d9cbe237bd56/vs_community.exe > 2.1 Modify "Windows Software Development Kit" > +Debugging Tools for Windows 3. python2 - https://www.python.org/downloads/release/python-2716/ > 3.1 pip install pywin32 #設置 1. 執行git.sh #安裝depot_tools cd %USERPROFILE% rd /s /q depot_tools webrtc & git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git -b gitlab #配置 set PATH=%PATH%;%USERPROFILE%\depot_tools cd %USERPROFILE% && ^ rd /s /q webrtc & mkdir webrtc cd %USERPROFILE%\webrtc && ^ gclient config --name src https://chromium.googlesource.com/external/webrtc.git@gitlab #同步 set CDS_CLANG_BUCKET_OVERRIDE=http://120.92.49.206:3232/chromiumsrc/commondatastorage/raw/master/public/chromium-browser-clang set DEPOT_TOOLS_WIN_TOOLCHAIN=0 cd %USERPROFILE%\webrtc && ^ gclient sync --patch-ref=https://chromium.googlesource.com/chromium/src/build.git@gitlab #生成 cd %USERPROFILE%\webrtc\src &&& ^ gn gen out/win --args="use_rtti=true is_clang=false rtc_build_tools=false rtc_include_tests=false rtc_build_examples=false is_debug=false use_custom_libcxx=false target_cpu=\"x64\" use_openh264=true proprietary_codecs=true ffmpeg_branding=\"Chrome\"" --ide=vs2017 #編譯 cd %USERPROFILE%\webrtc\src && ^ ninja -C out/win ``` ` ` 參考鏈接:[https://www.ctolib.com/topics-113745.html](https://www.ctolib.com/topics-113745.html) ## 編譯參數 | 參數 | 解析 | | --- | --- | | is_debug | 是否是Debug版,默認true,false:表示編譯Release版。 | | target_os | 平臺類型,可以取值win、android、ios、linux等,這里取win,表示Windows平臺。| | target_cpu | cpu類型,Windows下可以取x86、x64 | | is_component_build | 是否使用動態運行期庫,這里取false,使用靜態運行期庫,Release版本將對應MT,Debug版將對應MTd。| | proprietary_codecs | 是否使用版權編碼,也就是H264,這里取true。 | | rtc_use_h264 | 是否使用H264,這里取true,注意Windows平臺編碼使用OpenH264,解碼使用ffmpeg。| | ffmpeg_branding | ffmpeg的分支名,這里采用Chrome的分支。 | | rtc_build_ssl | 是否編譯BoringSSL,這里取false,因為后面我們要替換成OpenSSL。| | rtc_ssl_root | OpenSSL的頭文件路徑,會被寫到生成的ninja文件中。 | ## win下編譯android的webrtc.jar ``` gn gen out/armeabi-v7a "--args target_os=android target_cpu=arm is_debug=false is_component_build=false rtc_include_tests=false rtc_use_h265=true" --ide="vs2017" ninja -C out/armeabi-v7a ``` ` ` ### 配合QT編譯 ***** 編譯webrtc時候加上參數 ``` use_custom_libcxx=false和use_custom_libcxx_for_host=false這是用來控制編譯WebRtc時使用的c++庫的 ``` >原因很簡單,如果不加這個編譯開關的話,WebRtc編譯默認使用libc++來編譯,而Qt使用GCC編譯的時候使用的是libstdc++,這樣在編譯的過程中就會導致用到std::string的地方,就會編譯報錯。 避免和webrtc的信號槽沖突方法一: 項目中定義宏: ``` QT_DEPRECATED_WARNINGS QT_NO_KEYWORDS ``` 避免和webrtc的信號槽沖突方法二: sigslot.h中的emit函數名會和Qt中的emit宏沖突,我將sigslot.h中的emit改成了Emit,當然改完之后,需要重新編譯rtc\_base工程 ``` ninja -C out/mac rtc_base ``` 打開h264編解碼的編譯開關 ``` proprietary_codecs=true ffmpeg_branding=\\"Chrome\\" ``` ### 編譯webrtc項目時需要宏定義: ``` HAVE_WEBRTC_VOICE? WEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE WEBRTC_USE_H264 WEBRTC_INITIALIZE_FFMPEG FFMPEG_H264_DECODER WEBRTC_POSIX ``` ## 將所有生成的.a文件合成一個靜態庫 ### linux下的腳本 將整個.a文件集合成一個webrtc庫 ``` for i in `find /Users/zf/webrtc1128/webrtc-checkout/src/out_ios32 -name "lib*.a"` do echo $i cp $i ./out_ios32/ done libtool -static -v -o out_ios32/libwebrtc32.a out_ios32/*.a strip -S -X out_ios32/libwebrtc32.a ``` 整合所有頭文件 ``` #!/bin/bash src=`find src/ -name "*.h|*.hpp"` echo $src for obj in $src do echo "cp header file $obj" cp --parents $obj include/ ``` ### window下的腳本 使用gitbash執行腳本 ``` #!/bin/bash src=`find src/ -name "*.lib"` echo $src for obj in $src do echo "cp header file $obj" cp $obj lib/ done ``` ## webrtc注意點 1.如果是用虛擬機共享目錄。則需要用到samba共享文件。不同的文件系統,軟連接創建不成功。 如果是macos上的ubuntu虛擬機則沒問題。 2.一個平臺一份代碼。webrtc在同步的時候會自動備份舊代碼然后成一份新的代碼。 ## windows使用webrtc.lib庫,提示“文件損壞或無效,無法讀取” 解決辦法 這個問題 在用vs調用webrtc.lib時出現,在gn時 增加 is\_clang=false 可以解決掉
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看