上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 24 下一页
摘要: 之前实现了FFmpeg解码视频流并原生绘制到屏幕上以及解码音频流并利用OpenSL进行音频播放,今天来将两者联合使用,实现真正的视频播放。 思路:如果想要顺畅的播放视频,很显然视频流和音频流需要同时进行播放,即两个线程分别播放视频流和音频流,而解码需要放一个单独线程中作为生产者,不断为视频线程和音频 阅读全文
posted @ 2020-11-12 18:00 aruba_233 阅读(41) 评论(0) 推荐(0)
摘要: OpenSL ES全称为Open Sound Library for Embedded Systems。OpenSL ES是无授权费、跨平台、针对嵌入式系统 精心优化的硬件音频加速API。当然安卓也使用了它,AudioTrack、MediaPlayer的音频播放,底层都是利用OpenSL。和Audi 阅读全文
posted @ 2020-07-09 23:12 aruba_233 阅读(56) 评论(0) 推荐(0)
摘要: 上次已经得到PCM编码的音频流,今天来实现播放PCM音频流,使用安卓提供的AudioTrack,方法很简单,在native层调用java代码 首先在java中定义相应的方法: package com.aruba.ffmpegapplication; import android.media.Audi 阅读全文
posted @ 2020-07-02 16:17 aruba_233 阅读(29) 评论(0) 推荐(0)
摘要: 通过之前的知识,我们能够播放一个视频文件中的视频流,那么如何播放音频流呢? 首先来了解一下关于音频的基础知识 在物理学中,声音就是一种波,我们称之为声波,声波的三要素是频率、振幅和波形,频率代表音阶的高低,振幅代表响度,波形代表音色。 数字音频:在早期声音无法捕获和保存,后面人们发明了模拟信号,将模 阅读全文
posted @ 2020-07-01 17:28 aruba_233 阅读(32) 评论(0) 推荐(0)
摘要: 上次说到视频编码和转码,得到了yuv格式的文件,我们平常看到的视频画面实际都是yuv格式,今天来实现在APP中播放视频,代码和上次差不多,只需将转码文件换成输出到屏幕上 1.自定义View继承SurfaceView,把SurfaceView传入native层进行绘制 package com.arub 阅读全文
posted @ 2020-06-30 17:42 aruba_233 阅读(16) 评论(0) 推荐(0)
摘要: 对于普通人而言,视频文件有许多格式,如mp4,rmvb,avi等,这存在的一个误区,让人们谈到视频就想到这些文件格式,而在音视频开发中,我们把这些文件格式称为封装格式,这些封装格式中,不仅仅包含着视频流,还包含着音频流,字幕流等,而视频流都按照视频编码标准进行编码,下面是视频编码标准 名称 推出机构 阅读全文
posted @ 2020-06-28 16:09 aruba_233 阅读(47) 评论(0) 推荐(0)
摘要: 上次将FFmpeg通过linux系统编译成了arm平台下的动态链接库,生成了一个文件夹: 其中include存放着头文件,lib存放着so库,今天将这些内容导入AS中,用于接下来音视频的开发。 1.首先新建ndk工程,并在工程的main文件夹中新建jniLibs文件夹(AS默认的so库存放路径),并 阅读全文
posted @ 2020-06-22 16:22 aruba_233 阅读(64) 评论(0) 推荐(0)
摘要: FFmpeg为开源音视频编解码库,市面上的播放器很多都是基于FFmpeg开发的,可以说学会了FFmpeg,音视频开发的所有功能都可以实现。 FFmpeg使用c语言编写,makefile工具编译,因此选择在linux平台下编译。而我们需要生成arm平台下的so库,需要使用到ndk 1.ndk下载和安装 阅读全文
posted @ 2020-06-19 17:05 aruba_233 阅读(118) 评论(0) 推荐(0)
摘要: 为什么要用cmake?makefile的语法非常复杂,光文档就有200多页,使用起来不方便,只支持linux平台,而cmake语法只有几页,用法通俗易懂,上手简单,代码量少,跨平台。这也是大多数人使用cmake的原因 cmake默认使用CMakeLists.txt文件作为编写脚本的文件,下面编写了一 阅读全文
posted @ 2020-06-04 10:13 aruba_233 阅读(18) 评论(0) 推荐(0)
摘要: 在linux和unix中,有一个强大的实用程序,叫make,可以用它来管理多模块程序的编译和链接,直至生成可执行文件。 make程序需要一个编译规则说明文件,称为makefile,makefile文件中描述了整个软件工程的编译规则和各个文件之间的依赖关系。 makefile就像是一个shell脚本一 阅读全文
posted @ 2020-05-27 09:58 aruba_233 阅读(37) 评论(0) 推荐(0)
上一页 1 ··· 9 10 11 12 13 14 15 16 17 ··· 24 下一页