Guía de compilación WebRTC

Para obtener el contenido y las erratas más recientes, consulte el libro en línea "Guía de estudio de WebRTC" escrito por el autor .

En los artículos anteriores, el autor introdujo algunos conocimientos previos sobre el establecimiento de conexiones WebRTC, pero no todos. Tuvimos que crear un cliente WebRTC para comprender mejor los detalles de la conexión. Dado que el autor es un desarrollador de Android, este artículo se   compilará para Android  de acuerdo con el documento oficial Para conocer el método de compilación de iOS, consulte este enlace .

entorno de construcción

La compilación para Android  debe usar el entorno de desarrollo de Linux; para Windows, puede usar  el  entorno WSL . El autor usa macOS, aunque es un sistema similar a Unix como Linux, no se puede compilar directamente a Android. Pero no importa, podemos   construir fácilmente un entorno de desarrollo de Linux con la ayuda de vagrant .

En primer lugar, necesitamos descargar e instalar  VirtualBox ; luego ejecutar  brew install vagrant la instalación de vagrant y reiniciar el terminal después de que se complete la instalación para que surta efecto. Luego ejecuta el siguiente comando:

# 创建并切换到 ~/vagrant 目录
$ mkdir ~/vagrant && cd "$_"
# 初始化虚拟机(目前系统为 Ubuntu 18.04 LTS 64-bit)
$ vagrant init hashicorp/bionic64
# 启动这个虚拟机
$ vagrant up
# 通过 ssh 连接到这个虚拟机
$ vagrant ssh

Todas las operaciones posteriores se realizarán en la máquina virtual vagabunda. Si desea salir de la máquina virtual, simplemente escriba cerrar sesión.

Obtener el código fuente

Primero, necesitamos  clonar depot_tools  localmente. Todos sabemos que WebRTC es parte del proyecto Chromium, y depot_tools es una colección de herramientas de mejora del flujo de trabajo de git diseñadas para organizar y administrar la enorme base de código de Chromium. Simplemente ejecute el siguiente comando:

$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

Luego agregue el siguiente comando a  ~/.bashrc e ingrese para  source ~/.bashrc recargar bash. Entre ellos,  /path/to/ debe reemplazarlo con la ruta de depot_tools:

export PATH=/path/to/depot_tools:$PATH

Luego ejecute el siguiente comando, todo el proceso toma alrededor de 40 minutos, tenga paciencia

# 创建并切换到 ~/webrtc(也可以是自定义路径)
$ mkdir ~/webrtc && cd "$_"
# 拉取并同步 WebRTC 的最新代码
$ fetch --nohooks webrtc_android
$ gclient sync

El código descargado contiene la rama normal de WebRTC y la rama de Android. La rama de Android contiene el SDK y el NDK (unos 8 GB), mientras que todo el código tiene unos 16 GB. Este código se puede usar tanto para el desarrollo de Android como para el desarrollo normal de Linux. Debido a que WebRTC usa  Ninja  como su sistema de compilación, solo necesita generar diferentes configuraciones de compilación en diferentes rutas (por supuesto, este es otro tema).

Creo que ha realizado todos los procesos anteriores. En este punto, debería estar en la rama maestra de WebRTC, pero generalmente no usamos la maestra directamente, sino que debe cambiar a la última versión de lanzamiento. Toda la información sobre el lanzamiento se puede obtener aquí . En el momento de escribir este artículo, la última versión es m85 (branch-heads/4183)

# 下载的代码位于 ~/webrtc/src
$ cd ~/webrtc/src
# 创建一个新的分支 m85(注意一定要 sync)
$ git checkout -b m85 branch-heads/4183
$ gclient sync

Todas las operaciones posteriores se  ~/webrtc/src realizarán en el directorio (consulte los siguientes pasos para actualizar al código más reciente:

# 切换到 master 分支
$ git checkout master
$ git pull origin master
$ gclient sync
# 切换回你自己的分支(有冲突的话自己解决)
$ git checkout my-branch
$ git merge master

Compilar el código fuente

Ejecute el siguiente comando para instalar y compilar las dependencias necesarias para compilar WebRTC. Tarda unos 60 minutos, tenga paciencia.

# 安装编译 WebRTC 所需的依赖
$ ./build/install-build-deps.sh
$ ./build/install-build-deps-android.sh
# -h 可以查看有哪些编译参数
$ ./tools_webrtc/android/build_aar.py -h
# 直接执行脚本,使用默认参数进行编译
$ ./tools_webrtc/android/build_aar.py

Como se muestra en la figura, el resultado compilado libwebrtc.aar se encuentra  ~/webrtc/src en el directorio por defecto, incluyendo .so de cuatro arquitecturas de armeabi-v7a, arm64-v8a, x86 y x86_64 (puede usar -h para ver cómo compilar solo el paquete de la arquitectura especificada).

Manifestación

Ejecute  cp libwebrtc.aar /vagrant y copie libwebrtc.aar en  /vagrant el directorio, que es el directorio de archivos compartidos entre la máquina virtual vagabunda y el host. Para este artículo, el directorio correspondiente a la máquina host (macOS) es  ~/vagrantel directorio donde configuramos el entorno al principio.

WebRTC ofrece oficialmente una demostración llamada AppRTC, pero el proceso de importarlo a Android Studio es muy engorroso y tiene dependencias complicadas. Aquí, el autor proporciona una versión ordenada de  mthli/YaaRTC , los lectores pueden reemplazarla  app/libs/libwebrtc.aar con su propio aar compilado para realizar pruebas.

Los lectores pueden visitar https://appr.tc en el lado del navegador  y luego ingresar el mismo número de habitación en YaaRTC para unirse. Siempre que el video bidireccional sea exitoso, significa que compilamos libwebrtc.aar no hay problema

Guía de compilación WebRTC original-Conocimiento 

 

★La tarjeta de presentación al final del artículo puede recibir materiales de aprendizaje de desarrollo de audio y video de forma gratuita, incluidos (FFmpeg, webRTC, rtmp, hls, rtsp, ffplay, srs) y hojas de ruta de aprendizaje de audio y video, etc.

¡vea abajo!

 

Supongo que te gusta

Origin blog.csdn.net/yinshipin007/article/details/132380179
Recomendado
Clasificación