WebRTC支持H264編解碼 (H.264 Encoder+Ffmpeg Decoder)

最近一直在調試在WebRTC中添加對H.264的支持,過程涉及代碼下載、翻牆、服務器連接、Linux系統操作以及故障方案解決等,我會一一記錄下來,方便以後查閱!首先,介紹一些預備知識

以下爲本人在windows平臺編譯WebRTC的步驟,
環境:windows10 x64 + VMvare + Ubuntu 16.04.2

獲取代碼

獲取代碼的步驟參考我上面提供的文章可以獲取到最新的2018年的代碼,注意時間,不同時間的操作可能會有不同!因爲google的代碼所有必須要做好能翻牆的準備,否則從國內下載別人已經做好了vs工程的代碼。

  • 注意
    最新的M70版本,2018年10月10日發佈的WebRTC——M70,有一個大的變化,就是android上軟編碼默認給去了,如果一直用的是硬編碼,可以忽略。
  • 安裝最新的python(建議2.7版本), git工具
  • 官方下載depot_tools,安裝或者解壓,並將路徑加入系統環境變量中,在一個適當得目錄下clone depot_tools包,後面會用到此工具。
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

然後修改.bashrc文件,將depot_tools的路徑加進環境變量PATH中:

 export PATH=“$PATH:‘pwd’/depot_tools”
 # ‘pwd’代表depot_tools的路徑,直接替換即可
  • 在上述過程中,我遇到了權限問題和環境變量問題
    我是這麼解決的
sudo su
# 輸入你的密碼即可進入root用戶操作界面

參考鏈接:su和sudo的區別

  • 具體操作
    # Create a working directory, enter it, and run fetch webrtc
    
    mkdir webrtc-checkout	
	cd webrtc-checkout
	fetch --nohooks webrtc
    
    # 進入src目錄,獲取WebRTC版本信息
    
    cd src
	git branch -r	
	
	# 選取版本信息中的‘branch-heads/xx’,直接複製到下面的代碼塊中
    # 其中xx是最新的分支,git branch -r查看
    # my_branch是文件夾名,可以任意替換
	# Choose the stable release 57 rather than the most recent release by entering
	
	git checkout branch-heads/xx
	
    # 更新代碼(很好的一個命令)
    
    gclient sync
  • 以下是WebRTC官網提供的方法
    在這裏插入圖片描述

編譯

編譯時每個人遇到問題可能不盡相同,只能遇到問題解決問題。

  • 按照Vinton.Liu給的方法,我修改了關於修改h264的代碼
  • 直接執行以下指令,可以跑通:
# git代碼
git checkout -b branches_63 refs/remotes/branch-heads/63
gclient sync

# 解壓(第一次tar時,遇到了無法mkdir的問題,尚未解決!)
cat branches_630* | tar -zx

#添加路徑
export PATH=“$PATH:‘pwd’/depot_tools”

# 編譯
gn gen out/文件名 --args=參數設置
ninja -C out/文件名

# 可以順利完成編譯
  • 現在開始修改代碼(使用Vim編輯 Link
    然後無法跑通,出現以下差錯
    在這裏插入圖片描述
    分析原因:沒安裝依賴吧,webrtc有個android腳本安裝依賴
# webrtc/src目錄中執行這個
./build/install-build-deps-android.sh
  • 如何查看文件修改(如何撤銷修改,請查詢git命令)
    git的使用:git show; git log; git diff(鏈接戳下)
    Link
# ‘pwd’是文件的具體路徑
git diff 'pwd'
  • 2018年10月13日,失敗若干次後,再次創建新的虛擬機。導入63版本的代碼,進行修改。
    出現新的問題:ubuntu系統中的文件均被上鎖
    現象描述:文件夾上有一把小鎖
    解決方案
# *代表所有,將當前目錄下所有文件都給予777權限
chmod -R 777 *   
# 4代表讀,2代表寫,1代表執行

鏈接:留坑


參考鏈接
1. WebRTC支持H264編解碼
2. 讓WebRTC支持H264編解碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章