04 2019 档案

摘要:测试结果: 【三星S6 无虚拟导航栏】 2019-05-07 15:58:08.157 11483-11483/com.yongdaimi.android.androidapitest I/xp.chen: getResources().getDisplayMetrics():: widthPixe 阅读全文
posted @ 2019-04-30 15:01 夜行过客 阅读(6155) 评论(0) 推荐(0) 编辑
摘要:Android中有两个比较重要的矩阵,ColorMatrix和Matrix。ColorMatrix用来改变bitmap的颜色和透明度,Matrix用来对bitmap平移、缩放、错切。对矩阵的概念不理解可参考:https://zh.wikipedia.org/wiki/%E7%9F%A9%E9%98% 阅读全文
posted @ 2019-04-26 16:52 夜行过客 阅读(1618) 评论(0) 推荐(0) 编辑
摘要:2021/1/21更新 最近改用 androidx 了,结果还是有这个问题。。。 找到app 模块下的build.gradle文件,将: androidx.appcompat:appcompat:1.2.0 替换成: androidx.appcompat:appcompat:1.3.0-alpha0 阅读全文
posted @ 2019-04-26 15:12 夜行过客 阅读(18854) 评论(1) 推荐(1) 编辑
摘要:不仅限于FFmpeg, 音频采样所得的PCM都含有三个要素:声道(channel)、采样率(sample rate)、样本格式(sample rate)。 声道 当人听到声音时,能对声源进行定位,那么通过在不同的位置设置声源,就可以造就出更好的听觉感受,如果配合影像进行音频位置的调整,则会得到更好的 阅读全文
posted @ 2019-04-17 11:22 夜行过客 阅读(26446) 评论(2) 推荐(6) 编辑
摘要:所谓音频信息,就是一个点随着时间不断在一个轴(振膜的垂直方向)上振动的情况。 所谓音频信息,就是一个点随着时间不断在一个轴(振膜的垂直方向)上振动的情况。 所谓音频信息,就是一个点随着时间不断在一个轴(振膜的垂直方向)上振动的情况。 当我们假设振膜的位置可以被这根轴上的任意一个点A表示时,则A的位置 阅读全文
posted @ 2019-04-17 10:53 夜行过客 阅读(2794) 评论(0) 推荐(0) 编辑
摘要:在图像数据传输和显示的过程中有一个不常用的参数:间距。 间距的名称: 它有很多的别名,在使用d3d显示的时候,它叫pitch;在用ffmpeg解码的时候,它叫linesize; 在用ffmpeg转换格式的时候,它叫stride。这篇文章中统一以间距来表示。 间距为什么出现: 这个参数看起来似乎没什么 阅读全文
posted @ 2019-04-16 11:28 夜行过客 阅读(2104) 评论(0) 推荐(0) 编辑
摘要:FFmpeg中的 sws_scale() 函数主要是用来做视频像素格式和分辨率的转换,其优势在于:可以在同一个函数里实现:1.图像色彩空间转换, 2:分辨率缩放,3:前后图像滤波处理。不足之处在于:效率相对较低,不如libyuv或shader,其关联的函数主要有: 1.sws_getContext( 阅读全文
posted @ 2019-04-16 11:22 夜行过客 阅读(20715) 评论(1) 推荐(5) 编辑
摘要:概述 之前介绍了YUV码流的采样格式,下面分析下YUV码流的存储格式,YUV码流的存储格式与采样格式息息相关。总的来讲,YUV存储格式主要分为两种: planar 平面格式 指先连续存储所有像素点的 Y 分量,然后存储 U 分量,最后是 V 分量。 packed 打包模式 指每个像素点的 Y、U、V 阅读全文
posted @ 2019-04-12 15:13 夜行过客 阅读(10209) 评论(0) 推荐(0) 编辑
摘要:先写一个获取当前时间戳的方法 然后在每次读取一帧数据之前和解码器解码完成之后添加下列代码 读取一帧数据之前: 解码器解码完一帧数据之后,对已解码的帧数进行累加: 通过已解码的帧数除以中间间隔的时长就可以得到每秒解码的帧数。 手头有两部手机,实际测试结果如下: 三星S6电信版 FFmpeg软解(单线程 阅读全文
posted @ 2019-04-11 16:50 夜行过客 阅读(2125) 评论(0) 推荐(0) 编辑
摘要:说明 获取当前的时间的秒数和微秒数本方法需要用到 gettimeofday() 函数,该函数需要引入的头文件是 <sys/time.h> 。 函数说明 int gettimeofday (struct timeval * tv, struct timezone * tz) 示例 运行结果: seco 阅读全文
posted @ 2019-04-11 14:36 夜行过客 阅读(49038) 评论(0) 推荐(0) 编辑
摘要:一. AV_TIME_BASE 经常在FFmpeg的代码中看到一个奇怪的单位 AV_TIME_BASE ,比如 AVFormatContext 结构体中就有这样一个字段: duration ,它在FFmpeg中的解释如下: /** * Duration of the stream, in AV_TI 阅读全文
posted @ 2019-04-10 17:42 夜行过客 阅读(9442) 评论(0) 推荐(4) 编辑
摘要:一.视频传输原理 视频是利用人眼视觉暂留的原理,通过播放一系列的图片,使人眼产生运动的感觉。单纯传输视频画面,视频量非常大,对现有的网络和存储来说是不可接受的。为了能够使视频便于传输和存储,人们发现视频有大量重复的信息,如果将重复信息在发送端去掉,在接收端恢复出来,这样就大大减少了视频数据的文件,因 阅读全文
posted @ 2019-04-09 13:22 夜行过客 阅读(34773) 评论(5) 推荐(21) 编辑
摘要:一.视频压缩 1.1 为什么需要压缩视频? 假设一个2小时未压缩的高清视频,1920×1080p的电影,我们来计算一下他的存储容量。先介绍一下帧率(frame rate或者是 FPS)概念,也就是每秒传输图片的帧数,也可以理解为图形处理器每秒能够刷新几次。由于人眼的特性-视觉暂留,帧率要在20以上才 阅读全文
posted @ 2019-04-09 13:16 夜行过客 阅读(2565) 评论(0) 推荐(0) 编辑
摘要:AVPacket是FFmpeg中很重要的一个数据结构,它保存了解封装之后,解码之前的数据(注意:仍然是压缩后的数据)和关于这些数据的一些附加信息,如显示时间戳(pts)、解码时间戳(dts)、数据时长,所在媒体流的索引等。对于视频来说,AVPacket通常包含一个压缩的Frame,而音频(Audio 阅读全文
posted @ 2019-04-04 14:04 夜行过客 阅读(2132) 评论(0) 推荐(0) 编辑
摘要:enum AVMediaType codec_type:编解码器的类型(视频,音频...)enum AVCodecID codec_id:标示特定的编解码器int format:对于视频来说就是像素格式(参见AVPixelFormat,如0就代表YUV420p),对于音频来说就是采样数据格式(参见A 阅读全文
posted @ 2019-04-03 21:29 夜行过客 阅读(1204) 评论(0) 推荐(0) 编辑
摘要:比特率 比特率是指每秒传送的比特(bit)数。单位为bps(Bit Per Second),比特率越高,传送的数据越大。在视频领域,比特率常翻译为码率。 在数字多媒体领域,比特率是单位时间播放连续的媒体如压缩后的音频或视频的比特数量。而比特就是二进制里面最小的单位,要么是0,要么是1。比特率与音、视 阅读全文
posted @ 2019-04-03 21:06 夜行过客 阅读(2402) 评论(0) 推荐(1) 编辑
摘要:AVFormatContext 结构体分析这个结构体描述了一个媒体文件或媒体流的构成和基本信息。这是FFMpeg中最为基本的一个结构,是其他所有结构的根,是一个多媒体文件或流的根本抽象。 AVFormatContext 是一个结构体 //用于日志记录和 avoptions类的引用。由avformat 阅读全文
posted @ 2019-04-03 15:37 夜行过客 阅读(1835) 评论(0) 推荐(0) 编辑
摘要:记录一个AS无法创建新项目的问题。 今天想写一个测试Demo,点击上面的“Start a new Android Studio Project” ,填写完包名和项目路径后,点“Finish”, AS无任何反应,直觉上感觉项目应该是没创建成功,转到项目路径下查看: 果然只有一个.idea文件夹。。。。 阅读全文
posted @ 2019-04-03 10:41 夜行过客 阅读(3210) 评论(0) 推荐(0) 编辑
摘要:一. YUV是什么 YUV 是一种颜色的编码方式,常用于各种图像及视频处理中,其中的“Y”代表明亮度(Luminance、Luma), 也就是灰阶值,“U”和“V”表示的则是色度(Chrominance或Chroma)。YUV 还有一些别的名字,比如: YCbCr,YPbPr, 在不同的专业领域,叫 阅读全文
posted @ 2019-04-03 10:03 夜行过客 阅读(5961) 评论(0) 推荐(3) 编辑
摘要:在Android中,可以通过给Activity设置windowSoftInputMode这个属性来控制软键盘与Activity的主窗口的交互方式。 一.属性总结 stateUnspecified-不指定软键盘的状态(隐藏还是可见) 将由系统选择合适的状态,或依赖主题中的设置,这是对软键盘行为的默认设 阅读全文
posted @ 2019-04-01 11:28 夜行过客 阅读(1133) 评论(0) 推荐(0) 编辑
摘要:快捷键 Alt + Y 阅读全文
posted @ 2019-04-01 11:04 夜行过客 阅读(4366) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示