音视频实践学习

  • android全平台编译ffmpeg以及x264与fdk-aac实践
  • ubuntu下使用nginx和nginx-rtmp-module配置直播推流服务器
  • android全平台编译ffmpeg合并为单个库实践
  • android-studio使用cmake编译ffmpeg实践
  • android全平台编译ffmpeg视频解码器实践
  • android全平台编译ffmpeg支持命令行实践
  • android全平台编译ffmpeg视频推流实践
  • android平台下音频编码之编译LAME库转码PCM为MP3
  • 图解YU12、I420、YV12、NV12、NV21、YUV420P、YUV420SP、YUV422P、YUV444P的区别
  • ubuntu平台下编译vlc-android视频播放器实践

概述

视频播放器的方案其实有很多种,常规的比如ffmpeg,或者ijkplayer(基于ffmpeg),或者使用系统自带的MediaPlayer都可以实现基本的播放功能,但是如果要支持多种格式的话,技术选型可能要作多考虑,之前的博客写了部分关于ffmpeg的移植相关的内容,最近准备实现一个简单的播放器,因为这个vlc-android是开源的,因此,今天记录一下这个编译过程

环境准备

操作系统:ubuntu 16.05
ndk版本 :android-ndk-r14b
vlc-android版本:3.0.13

下面的脚本build-env.sh二话不说,先运行一遍,保证自己的电脑里编译环境是齐全的:

sudo apt-get update
sudo apt-get install autoconf make m4 gawk mawk a.k.a g++
sudo apt-get install automake autopoint cmake ant build-essential libtool patch
sudo apt-get install pkg-config protobuf-compiler ragel subversion unzip git wget
sudo apt-get install liba52-0.7.4-dev libxcb-composite0-dev libxcb-xv0-dev libxcb-randr0-dev libasound2-dev
sudo apt-get install libprotobuf-c-dev libprotobuf-c1 libprotobuf-dev protobuf-c-compiler
sudo dpkg --add-architecture i386
sudo apt-get install zlib1g:i386 libstdc++6:i386 libc6:i386
sudo apt install libtool-bin

检查protoc版本

你可以先看看自己本机的protoc版本

#查看版本
protoc --version

如果版本低于3.0.0版本,需要升级一下protoc版本,笔者使用的是最新的3.6.1版本,官方文档:https://github.com/protocolbuffers/protobuf/blob/master/src/README.md

git clone https://github.com/protocolbuffers/protobuf.git
cd protobuf
git submodule update --init --recursive
./autogen.sh./configure
make
make check
sudo make install
sudo ldconfig

开始编译

最新的代码地址:https://code.videolan.org/videolan/vlc-android

编译过程比较简单,主要是前期依赖的一些环境配置好就可以了,笔者是基于3.0.13版本进行编译的,你也可以看看它的tag列表,根据自己的需要选择对应的版本

git clone git@code.videolan.org:videolan/vlc-android.git
git checkout 3.0.13

先编写配置脚本config.sh

export ANDROID_SDK=/media/byhook/backup/android-sdk-linux
export ANDROID_NDK=/media/byhook/backup/android/android-ndk-r14b
export PATH=$PATH:$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools

配置编译library库的脚本build-libs.sh

source config.sh
sh compile.sh -l -a armeabi-v7a -r

配置编译apk文件的脚本build-apk.sh

source config.sh
sh compile.sh -a armeabi-v7a

注意:在这个过程中可能会下载需要的依赖和部分源码,备好翻墙梯子,确保能访问google

如果编译library库,最终会输出:

如果编译apk文件,最终会输出:

运行apk文件如图:

整个开源项目功能已经非常完善了,包括各种字幕的加载,部分流协议的支持,还有各种均衡器等等,基本可以说是开箱即用

参考:
https://wiki.videolan.org/Compile_VLC/

ubuntu平台下编译vlc-android视频播放器实践相关推荐

  1. 在Ubuntu下编译VLC并实现播放视频

    在Ubuntu下编译VLC并实现播放视频 一.下载VLC源码 二.安装VLC依赖的库 三.VLC编译与安装 1.编译与安装 2.库文件 3.头文件 四.调用VLC实现播放视频 1.添加头文件.库路径 ...

  2. 安卓9.0刷linux,Ubuntu系统下编译Android 9.0系统

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 前言 在Ubuntu系统下编译Android系统.哎呀不知道是不是换了新电脑的缘故,这次编译居然从安装JDK和配置环境下 ...

  3. Android 平台下的原生 Markdown 解析器

    Markdown 项目地址:zzhoujay/Markdown 简介:Android 平台下的原生 Markdown 解析器 Android 平台的原生 Markdown 解析器,已整合进 RichT ...

  4. 基于NDK、C++、FFmpeg的android视频播放器开发实战-夏曹俊-专题视频课程

    基于NDK.C++.FFmpeg的android视频播放器开发实战-1796人已学习 课程介绍         课程包含了对流媒体(拉流)的播放,演示了播放rtmp的香港卫视,支持rtsp摄像头和ht ...

  5. 视频教程-基于NDK、C++、FFmpeg的android视频播放器开发实战-Android

    基于NDK.C++.FFmpeg的android视频播放器开发实战 夏曹俊:南京捷帝科技有限公司创始人,南京大学计算机硕士毕业,有15年c++跨平台项目研发的经验,领导开发过大量的c++虚拟仿真,计算 ...

  6. 基于ffmpeg+opengl+opensl es的android视频播放器

    最近做了一个android视频播放器,在jni中采用c/c++现了播放器的播放,暂停,快进等基本的播放器功能. 使用开源库FFMpeg来解码,得到音视频数据,FFMPEG是一个功能强大的音视频解码,编 ...

  7. 在Windows下编译VLC并实现播放视频

    在Windows下编译VLC并实现播放视频 一.编译Win版的VLC真麻烦 二.获取VLC的SDK 1.下载VLC播放器 2.库文件 3.头文件 三.调用VLC实现播放视频 1.拷贝头文件和库文件 2 ...

  8. VLC Android播放器介绍

    VLC目录结构 在ubuntu下编译vlc完成后,就可以将vlc-android部分导入android studio或者eclipse当中,完成java端的代码定制修改和编译,也可以自己将需要的部分添 ...

  9. VLC Media Player for Mac(VLC多媒体视频播放器)

    VLC Media Player多媒体播放器是VideoLAN计划的多媒体播放器,mac版VLC多媒体视频播放器VLC Media Player如何使用.一款高度便携的多媒体播放器,适用于各种音频和视 ...

最新文章

  1. 德国KubeCon直击:如何轻松且安心地将k8s用于生产?
  2. 算法 - 插入排序(C#)
  3. vue创建脚手架 cil
  4. mysql cte 表不存在_使用CTE解决复杂查询的问题_MySQL
  5. 给定一个整数N,那么N的阶乘N!末尾有多少个零呢?
  6. 如何从ERP下载Sales BOM到CRM
  7. 『数据库』数据库系统效率Max--数据库并发控制
  8. Linux下编译安装Apache httpd 2.4
  9. Spring—使用类加载从配置文件中读取配置
  10. 带你初窥谷歌TV的硬软之秘
  11. 阅读软件怎么添加书源_相册视频制作软件怎么用?怎么添加滤镜?
  12. Earthquake
  13. 二路归并排序简介及其并行化
  14. FastCGI 使用介绍
  15. 抖音吸粉_抖音吸粉六大技巧
  16. 学习markdown
  17. macOS:实现 声音内录 不用其它App
  18. 表单中多个文本框实时计算金钱总和值
  19. YOLO中MAP的具体计算
  20. Zabbix监控系统系列之五:SNMP监控Windows客户端

热门文章

  1. 计算机学术为啥分要比专硕低那么多,专硕,凭什么是鄙视链最底端的一群人
  2. Leetcode 460. LFU 缓存
  3. 为什么定义补码等于反码加一,知其所以然
  4. 保险巨头安盛将推出代币众筹保险服务
  5. 校园助手APP--简介及框架
  6. matlab绘制垂线(x轴或y轴)
  7. 点石成金-Linux目录结构,命令,文件类型学习
  8. 你所不知道的那些阿里面试|原来我也可以从小白到年薪百万!
  9. 70行脚本实现促销信息微信通知
  10. 实践《如何使用Seata保证Dubbo微服务间的一致性》