ubuntu20.04 源码编译vlcplayer for android 记录

news/2024/10/31 5:48:39/

此片文章记录了怎么源码编译出vlcplayer aar。vlcplayer aar包可以集成到自己app包中,让自己app拥有播放视频的功能,源码编译vlc player 可以根据需要裁减功能,或直接修改vlc源码。

1编译要求

您必须在Linux(或者OSX,如果您知道自己在做什么的话)上进行构建。
必须安装以下软件包:
GNU自动工具:autoconf、libtool、automake和make(又称gmake和它们的依赖关系:m4和gawk,mawk或nawk,
GNU C和C++编译器又称为gcc和g++,
一些GNU构建实用程序:pkg配置和补丁,
以下其他构建实用程序:ApacheAnt(或Ant)、cmake、protobuf、ragel、,
Subversion和Git版本控制系统
解压缩和curl或wget用于检索源。
可能需要其中一些工具的最新版本。在编写时,特别需要gettext 0.19.3或更高版本。
如果缺少以上任何一项,预计构建会在某个时候失败。
如果目标是Android-x86设备,也必须安装yasm。
Ubuntu上按照以下步骤安装软件包:

sudo apt-get install automake ant autopoint cmake build-essential libtool-bin \patch pkg-config protobuf-compiler ragel subversion unzip git \openjdk-8-jre openjdk-8-jdk flex python wget

编译32位需要安装:

sudo dpkg --add-architecture i386
sudo apt-get update
sudo apt-get install zlib1g:i386 libstdc++6:i386 libc6:i386

2获取VLC源

从VLC git克隆源,拉取完源码以后千万不能更改源码所在路径,否则编译不过。
在你的android源文件夹中,运行: git clone https://code.videolan.org/videolan/vlc-android.git

3环境设置

Set $ANDROID_SDK to point to your Android SDK directory

export ANDROID_SDK=/path/to/android-sdk

Set $ANDROID_NDK to point to your Android NDK directory

export ANDROID_NDK=/path/to/android-ndk

Add some useful binaries to your $PATH

export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools

在buildsystem/compile.sh编译脚本中添加如下环境配置,主要配置SDK、NDK、Java8的路径。

export ANDROID_SDK=/media/trchen/Android/programs/Sdk
export ANDROID_NDK=/media/trchen/Android2/Programes/android-ndk-r21-linux/21.4.7075529
export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

4构建

在使用Android studio编译应用程序之前,必须运行compile.sh一次才能设置gradle构建系统。
它应该使用以下内容自动填充强制性的local.properties和gradle.properties文件:
local.properties(本地属性)
sdk.dir=< A N D R O I D s d k 的 s d k 路径 > n d k . d i r = < ANDROID_sdk的sdk路径> ndk.dir=< ANDROIDsdksdk路径>ndk.dir=<ANDROID_ndk的ndk路径>
这设置了gradle以使用正确的SDK/NDK进行构建。
一旦第一次编译成功,您就可以使用Run命令从Android Studio进行构建。
为了提高gradle的执行时间,请尝试在vlc-android项目的gradle.properties中编写这些选项。或者直接在~/.gradle/gradle.properties中

org.gradle.parallel=true
org.gradle.configureondemand=true
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2048M

4.1构建apk

请先阅读compile.sh,因为它包含一些非常有用和重要的信息。然后运行它:
buildsystem/compile.sh-a<ABI>

sudo buildsystem/compile.sh -a armeabi-v7a

注意:此时,您将在vlc-android/build/outputs/APK文件夹中获得一个自动生成的调试APK,并用调试密钥签名。
为了构建非调试(发布和未签名)包:
buildsystem/compaile.sh版本
注意:此时,您将在同一文件夹中获得一个发布APK。

4.2构建LibVLC aar

要构建LibVLC,只需传递-l选项:
buildsystem/compile.sh-l-a<ABI>-r
编译命令如下:

sudo buildsystem/compile.sh -l -a armeabi-v7a -r

.aar档案将位于libvlc/build/outputs/aar

4.3 vlcplayer 启用功能或直接修改vlc代码满足自己需求

构建成功后,修改vlc配置参数,启用特殊功能,在重新构建:

libvlcjni/buildsystem/compile-libvlc.sh
VLC_CONFIGURE_ARGS=--enable-a52 \--enable-x264  \

构建模块配置说明如下,比如支持v4l2输入,支持mp3编码等,需要启用配置

Input plugins:--enable-libproxy       support libproxy (default auto)--enable-live555        enable RTSP input through live555 (default enabled)--enable-dc1394         IIDC FireWire input module [default=auto]--enable-dv1394         DV FireWire input module [default=auto]--enable-linsys         Linux Linear Systems Ltd. SDI and HD-SDI input cards(default enabled)--enable-dvdread        dvdread input module [default=auto]--disable-dvdnav        disable DVD navigation with libdvdnav (default auto)--disable-dshow         support DirectShow (default auto)--enable-bluray         (libbluray for Blu-ray disc support ) [default=auto]--enable-opencv         (OpenCV (computer vision) filter) [default=off]--disable-smb           disable SMB/CIFS support (default auto)--enable-sftp           support SFTP file transfer via libssh2 (defaultdisabled)--disable-v4l2          disable Video4Linux version 2 (default auto)--enable-pvr            support PVR V4L2 cards (default disabled)--disable-decklink      disable Blackmagic DeckLink SDI input (default auto)--with-decklink-sdk=DIR,location of Blackmagic DeckLink SDI SDK)--enable-gnomevfs       GnomeVFS access module [default=auto]--enable-vcdx           navigate VCD with libvcdinfo (default disabled)--disable-vcd           disable built-in VCD and CD-DA support (defaultenabled)--disable-libcddb       disable CDDB for Audio CD (default enabled)--enable-screen         disable screen capture (default enabled)--enable-realrtsp       Real RTSP module (default disabled)--enable-macosx-eyetv   Mac OS X EyeTV (TNT Tuner) module (default enabled on Mac OS X)--enable-macosx-qtkit Mac OS X qtcapture (video) and qtsound (audio) module (default enabled on Mac OS X)
Mux/Demux plugins:--enable-dvbpsi         build with dvbpsi support enabled [default=auto]--enable-gme            use Game Music Emu (default auto)--enable-sid            C64 sid demux support (default auto)--enable-ogg            Ogg demux support [default=auto]--enable-mux_ogg        Ogg mux support [default=auto]--enable-shout          libshout output plugin [default=auto]--disable-mkv           do not use libmatroska (default auto)--disable-mod           do not use libmodplug (default auto)--disable-mpc           do not use libmpcdec (default auto)Codec plugins:--enable-wma-fixed      libwma-fixed module (default disabled)--enable-shine          shine mp3 encoding module (default disabled)--enable-omxil          openmax il codec module (default disabled)--enable-iomx           iomx codec module (default disabled)--enable-crystalhd      crystalhd codec plugin (default auto)--enable-mad            libmad module (default enabled)--with-mad=PATH         path to libmad--with-mad-tree=PATH    mad tree for static linking--enable-merge-ffmpeg   merge FFmpeg-based plugins (default disabled)--enable-avcodec        libavcodec codec (default enabled)--enable-libva          VAAPI GPU decoding support (libVA) (default auto)--enable-dxva2          DxVA2 GPU decoding support (default auto)--enable-switcher       Stream-out switcher plugin (default disabled)--enable-avformat       libavformat containers (default enabled)--enable-swscale        libswscale image scaling and conversion (defaultenabled)--enable-postproc       libpostproc image post-processing (default enabled)--enable-faad           faad codec (default auto)--with-faad-tree=PATH   faad tree for static linking--enable-twolame        MPEG Audio Layer 2 encoder [default=auto]--enable-quicktime      QuickTime module (deprecated)--enable-a52            A/52 support with liba52 (default enabled)--with-a52=PATH         a52 headers and libraries--with-a52-tree=PATH    a52dec tree for static linking--with-a52-fixed        specify if liba52 has been compiled with fixed point support--enable-dca            DTS Coherent Acoustics support with libdca[default=auto]--enable-flac           libflac decoder/encoder support [default=auto]--enable-libmpeg2       libmpeg2 decoder support [default=auto]--enable-vorbis         Vorbis decoder and encoder [default=auto]--enable-tremor         Tremor decoder support (default disabled)--enable-speex          Speex support [default=auto]--enable-theora         experimental theora codec [default=auto]--enable-dirac          dirac encoder [default=auto]--enable-schroedinger   dirac decoder and encoder using schroedinger[default=auto]--enable-png            PNG support (default enabled)--enable-x26410b           H264 10-bit encoding support with static libx264 (default disabled)--with-x26410b-tree=PATH      H264 10-bit encoding module with libx264 (static linking)--enable-x264           H264 encoding support with libx264 (default enabled)--with-x264-tree=PATH   x264 tree for static linking--enable-fluidsynth     MIDI synthetiser with libfluidsynth [default=auto]--enable-zvbi           VBI (inc. Teletext) decoding support with libzvbi(default enabled)--enable-telx           Teletext decoding module (conflicting with zvbi)(default enabled if zvbi is absent)--enable-libass         Subtitle support using libass (default enabled)--enable-kate           kate codec [default=auto]--enable-tiger          Tiger rendering library for Kate streams (default auto)

模块配置参考: https://wiki.videolan.org/VLC_configure_help/
编译参考:https://wiki.videolan.org/AndroidCompile#Get_VLC_Source


http://www.ppmy.cn/news/283072.html

相关文章

【FPGA零基础学习之旅#7】BCD计数器设计

&#x1f389;欢迎来到FPGA专栏~BCD计数器设计 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;FPGA学习之旅 文章作者技术和水平有限&#xff0c;如果文中出现错误&#xff0c;希望大家能指正…

【数据挖掘实战】——舆情分析:对微博文本进行情绪分类

&#x1f935;‍♂️ 个人主页&#xff1a;Lingxw_w的个人主页 ✍&#x1f3fb;作者简介&#xff1a;计算机科学与技术研究生在读 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4a…

定积分的一些性质

前置知识&#xff1a;牛顿-莱布尼茨公式 奇偶性 设 f f f在 [ − a , a ] ( a > 0 ) [-a,a](a>0) [−a,a](a>0)上连续&#xff0c;则 ∫ − a a f ( x ) d x { 2 ∫ 0 a f ( x ) d x , f 为偶函数 0 , f 为奇函数 \int_{-a}^af(x)dx\begin{cases} 2\int_0^af(x)dx,…

CSRF(跨站请求伪造)攻击及防御策略

CSRF&#xff08;Cross-site request forgery&#xff09;跨站请求伪造&#xff0c;也被称为"One Click Attack"&#xff08;一键攻击&#xff09;或者"Session Riding"&#xff08;会话控制&#xff09;&#xff0c;是一种对网站的恶意利用。与传统的XSS攻…

27U、42U、47U常见机柜设备布局图详解【转载自微信公众号弱电课堂】

机柜是机房布线中必不可少的设备&#xff0c;几乎弱电人都有接触 &#xff0c;也一直有朋友问到关于机柜的品牌与安装细节&#xff0c;尤其是关于机柜内部的设备布置。 本期我们将通过常见的布局实例&#xff0c;和大家一起来详细了解下关于机柜的内部的布局。 一、常用型号机…

邯郸图腾服务器机柜系列,图腾机柜G系列产品

性能特点 标准: 符合ANSI/EIA RS-310-D、IEC297-2、DIN41494&#xff1b;PART1、DIN41494;PART7、GB/T3047.2-92&#xff1b;兼容ETSI标准。 特点: 单开白色钢化玻璃前门&#xff1b; 单开钣金后门&#xff1b; 前后门免焊加强筋结构&#xff0c;美观牢固&#xff1b; 前后门配…

图腾标准服务器机柜型号,图腾常用的机柜型号及全参数

实用标准文案 AD网络服务器机柜 带弹力锁的弧形高密度六角网孔前门(专利)高密度六角网孔后门&#xff0c;通风率达71.2% 产品主要规格及性能 标准: 符合ANSI/EIA RS-310-D、IEC297-2、DIN41491; PART1、DIN41494; PART7、GB/T3047.2- 92标准;兼容ETSI标准. 特点: •弧形高密度六…

云南b系列服务器机柜,图腾A3系列服务器机柜规格表

图腾A3系列服务器机柜规格尺寸 系列服务器机柜规格表 图腾 A3 系列服务器机柜规格表 订购代码 No. Model 容量 Capacity(U) 宽 Width (mm) 深 Depth (mm) 高 Height (mm) A3.6617.■■■ A3.6717.■■■ A3.6817.■■■ A3.6917.■■■ A3.6017.■■■ A3.6117.■■■ A3.6217.…