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编解码

  • 0
    点赞
  • 6
    收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 1

打赏作者

Gerwels_JI

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值