上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 34 下一页
摘要: 我们在常见的开源协议如BSD,GPL,LGPL,MIT等都是OSI批准的协议。如果要开源自己的代码,最好也是选择这些被批准的开源协议。 这里我们来看四种最常用的开源协议及它们的适用范围,供那些准备开源或者使用开源产品的开发人员/厂家参考。 一、BSD开源协议 BSD开源协议是一个给于使用者很大自由的 阅读全文
posted @ 2019-04-28 14:57 灰色飘零 阅读(2270) 评论(0) 推荐(0) 编辑
摘要: 问题背景 Android Studio 开发时使用到了 GSYVideoPlayer 开源的播放器框架,配置信息如下: 在这之前,已经配置了support库: 运行时报错如下: 通过报错的内容大概可以猜测出来是播放器使用的V4库和我们配置的V4库出现冲突了,而且是版本冲突。 解决方案 解决方案无非就 阅读全文
posted @ 2019-04-25 12:30 灰色飘零 阅读(22875) 评论(0) 推荐(0) 编辑
摘要: 一、概述 音视频同步(avsync),是影响多媒体应用体验质量的一个重要因素。而我们在看到音视频同步的时候,最先想到的就是对齐两者的pts,但是实际使用中的各类播放器,其音视频同步机制都比这些复杂的多。 这里我们先介绍一些音视频同步相关的知识: 1. 如何测试音视频同步情况 最简单的就是播放一个演唱 阅读全文
posted @ 2019-04-22 18:01 灰色飘零 阅读(8965) 评论(0) 推荐(2) 编辑
摘要: FFmpeg对音频、视频播放速度的调整的原理不一样。下面简单的说一下各自的原理及实现方式: 一、调整视频速率 调整视频速率的原理为:修改视频的pts,dts 实现: 注意:视频调整的速度倍率范围为:[0.25, 4] 如果只调整视频的话最好把音频禁掉。 对视频进行加速时,如果不想丢帧,可以用-r 参 阅读全文
posted @ 2019-04-15 10:25 灰色飘零 阅读(8339) 评论(0) 推荐(0) 编辑
摘要: RxJava是一个很好的开源库,将链式编程和异步很好的结合在一起。在介绍RxJava之前我们先介绍一下观察者模式,这样我们能更好的学习和理解RxJava。 简单介绍一下,A和B两个,A是被观察者,B是观察者,B对A进行观察,B并不是需要时刻盯着A,而是A如果发生了变化,会主动通知B,B会对应做一些变 阅读全文
posted @ 2019-04-09 18:42 灰色飘零 阅读(594) 评论(0) 推荐(0) 编辑
摘要: 官网地址:https://gradle.org/。 一、Window下配置 Gradle 环境 安装Gradle之前必须要配置好Java环境,要求JDK 6 以上,并且在环境变量配置好JAVA_HOME。查看Java版本的命令为:java -version。 这里我的JDK版本为1.8.0_201。 阅读全文
posted @ 2019-04-03 22:01 灰色飘零 阅读(1832) 评论(0) 推荐(0) 编辑
摘要: 本文中实现的一个小功能是把一个YUV原始视频数据(时间序列图像)经过h264编码为视频码流,然后在使用mp4封装格式封装。 编码&封装的流程图如下: 使用ffmpeg编码流程: 1、首先使用av_register_all()函数注册所有的编码器和复用器(理解为格式封装器)。该步骤必须放在所有ffmp 阅读全文
posted @ 2019-03-10 12:12 灰色飘零 阅读(7082) 评论(2) 推荐(1) 编辑
摘要: 为什么要用多线程?在音视频领域主要是实现音视频同步。实现了音视频同步,我们的播放器就基本上合格了。 这里我们将讲解一下SDL的多线程与锁机制。 多线程的好处主要是能使程序更加充分利用硬件(主要是CPU)的性能。但是也存在相应的隐患,如果多线程管理不好,会出现协调问题。 引进的机制:线程的互斥与同步 阅读全文
posted @ 2019-03-08 21:21 灰色飘零 阅读(4258) 评论(0) 推荐(0) 编辑
摘要: 在前面我们讲了一下如何使用Java调用C,本文我们讲一下如何使用JNI提供的接口来反射得到Java方法进行调用。 主要步骤如下: FindClass (找到Java层的类) GetMethodID / GetFieldID (获取Java类中的方法 / Java类中的属性) NewObject (创 阅读全文
posted @ 2019-03-08 16:28 灰色飘零 阅读(1417) 评论(0) 推荐(0) 编辑
摘要: 在JNI实战(二):Java 调用 C 我们了解了JNI的静态注册和动态注册。也知道我们应该使用动态注册来进行JNI函数与Java方法之间的映射。 示例的映射表的数组为如下: static JNINativeMethod g_methods[] = { // Java层方法、参数类型、JNI方法 { 阅读全文
posted @ 2019-03-08 10:19 灰色飘零 阅读(2337) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 34 下一页