- 博客(45)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 H.264 的错误恢复机制
H.264是一种常用的视频编码标准,广泛应用于视频压缩和传输领域。在H.264编码器解码的过程中,可能会遇到各种错误,这些错误可能导致视频质量下降或者解码失败。为了应对这些错误,H.264引入了一系列的错误恢复机制。
2024-10-12 14:53:43
654
原创 H.264 编码参数优化策略
H.264编码参数优化是提高视频质量和压缩效率的关键环节。通过优化编码参数,我们可以根据不同的需求和应用场景实现更好的编码性能。从码率控制、帧率控制到码率-分辨率控制,每种优化策略都有不同的适用场景。进一步研究和应用H.264编码参数优化策略,将有助于提升视频编码技术的发展水平,并满足不同应用领域对视频质量和传输效果的需求。
2024-10-12 14:46:04
965
原创 H.264编解码 - I/P/B帧详解
在H.264编解码中,I/P/B帧是一种常见的帧类型。以下是它们的解释:I帧(关键帧):也称为关键帧,它是视频序列中的第一个帧或每个关键时刻的第一个帧。I帧是完整的、自包含的图像帧,不依赖于其他帧进行解码。它存储了关键时刻的完整图像信息。P帧(预测帧):P帧是依赖于之前的关键帧或P帧进行解码的帧。它通过对前向预测(predictive coding)的运用,仅存储了当前帧与之前帧之间的差异信息,以减小视频序列的存储空间。B帧(双向预测帧):B帧是依赖于之前的关键帧、P帧和未来的P帧进行解码的帧。
2024-09-30 12:27:57
1334
原创 H.264编解码 - NALU详解
NALU(Network Abstraction Layer Unit)是H.264编解码中的一个重要概念。H.264是一种视频压缩标准,将视频数据分割成一系列的NALU。每个NALU都是一个独立的数据单元,包含视频压缩后的一个片段。每个NALU都有自己的起始码和长度前缀,用于标识NALU的起始位置和长度。NALU可以包含视频的关键帧、非关键帧、补充增强信息等。
2024-09-30 12:13:09
1228
原创 H.264编解码工具 - NVIDIA CUDA
NVIDIA CUDA编解码是一项采用NVIDIA图形处理器(GPU)来加速视频编码和解码的技术。CUDA(Compute Unified Device Architecture)是一种并行计算平台和编程模型,允许开发者使用GPU来进行通用计算。
2024-09-29 09:07:51
1652
原创 H.264编解码工具 - Intel Quick Sync Video
Intel Quick Sync Video是英特尔的一个硬件加速技术,用于提高视频编码和解码的性能。它是英特尔处理器中集成的多媒体引擎的一部分。通过利用硬件加速,Quick Sync Video可以大幅提高视频处理性能,同时减少对CPU的负载。
2024-09-29 08:58:38
1341
原创 H.264编解码工具 - FFmpeg
FFmpeg是一款用于处理多媒体数据的开源软件,可以完成音频、视频和多媒体流的编解码、转码、解码、录制、流媒体播放等功能。它提供了丰富的命令行工具和库函数,适用于各种平台和操作系统。
2024-09-29 08:52:03
944
原创 H.264编解码工具 - x264
x264是一个开源的H.264/AVC视频编码库,它可以将视频数据压缩成H.264格式,并且可以从H.264格式解码出原始视频数据。
2024-09-27 19:19:47
1308
原创 H.264编解码介绍
H.264,又称为AVC(Advanced Video Coding),是一种广泛使用的视频压缩标准。它由国际电信联盟(ITU)和国际标准化组织(ISO)联合开发,并于2003年发布。
2024-09-27 19:09:43
1234
原创 MP4 格式:前世今生与技术解析
MP4,全称 MPEG-4 Part 14,是一种广泛应用于数字多媒体领域的文件格式。自诞生以来,MP4 凭借其优异的性能和广泛的支持度,逐渐成为视频、音频等多媒体数据存储和传输的主流格式。本文将带您回顾 MP4 格式的前世今生,并对其技术特点进行详细解析。
2024-09-27 18:58:17
890
原创 Webrtc笔记
webrtc处理视频丢包的机制 - 简书WebRTC中丢包重传NACK实现分析 - 简书webrtc QOS方法(汇总篇)_CrystalShaw的博客-优快云博客实时音视频质量评估方案_u011608531的专栏-优快云博客
2021-09-28 21:02:56
182
原创 I, P, B帧和PTS, DTS时间戳的关系
I帧:帧内编码帧 又称intra picture,I 帧通常是每个 GOP(MPEG 所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,做为随机访问的参考点,可以当成图象。I帧可以看成是一个图像经过压缩后的产物。P帧:前向预测编码帧 又称predictive-frame,通过充分将低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧。B帧:双向预测内插编码帧 ...
2020-02-13 16:52:00
651
原创 H264编码中Baseline Main High简介
Baseline(基本Profile):利用I片和P片支持帧内和帧间编码,支持利用基于上下文的自适应的变长编码进行的熵编码(CAVLC)。主要用于可视电话、会议电视、无线通信等实时视频通信。Main(主要Profile):I帧、P帧和CAVLC的基础上,支持隔行视频,采用B片的帧间编码和采用加权预测的帧间编码;支持利用基于上下文的自适应的算术编码(CABAC)。主要用于数字广播电视与数字视频存...
2020-02-13 16:47:20
14367
原创 影响视频编码质量的因素
1. 分辨率在保持码率不变的时候,提升分布率对视频质量并没有多大影响。2.比特率视频编码比特率和视频的质量是正相关的。3.帧率帧率对视频画质没有影响帧率和视频大小正相关。视频大小和FPS/GOP_SIZE存在一定的线性相关性。参考:比特率,帧率,分辨率对视频画质的影响视频质量,分辨率以及码率之间的关系...
2020-02-13 16:37:47
1825
翻译 HoloLens Mixed reality capture
MR介于VR和AR之间,即把虚拟的三维物体跟空间位置相结合,展示到显示世界中。 Mixed reality capture(MRC)通俗讲,Mixed reality capture就是HoloLens佩戴者的第一视角画面捕获成视频的功能。 MRC的重要性MRC拍摄的照片和视频可能是用户对您的应用的第一次曝光。无论是在Windows商店页面上的全息屏幕截图,还是在社交网...
2018-07-17 16:40:02
1431
原创 YUV 格式
1.何为YUV 一种颜色编码方法,是PAL和SECAM模拟彩色电视制式采用的颜色空间。在现代彩色电视系统中, 通常采用三管彩色摄影机或彩色CCD摄影机进行取像,然后把取得的彩色图像信号经分色、分别 放大校正后得到RGB,再经过矩阵变换电路得到亮度信号Y和两个色差信号B-Y(即U)、R-Y (即V),最后发送端将亮度和色差三个信号分别进行编码,用同一信道发送出
2016-09-19 14:33:35
875
原创 E/ACodec: [OMX.qcom.video.decoder.avc] ERROR(0x80001009)
这里记录下Android硬编解码的大坑 “E/ACodec: [OMX.qcom.video.decoder.avc] ERROR(0x80001009)”产生的原因:1:塞了错误的数据2:入队Frame数据时用了flag(BUFFER_FLAG_CODEC_CONFIG),但是入队的数据中没带sps,pps。 或者相反,没用这个flag,数据中带了sps,pps。
2016-09-05 16:50:12
10310
3
原创 Android 6.0(Marshmallow API level 23) 变更
1)Runtime Permission 在这个版本中,用户可以直接在运行时对应用权限进行管理。 在您的app中,需要在运行时对权限进行请求。 使用checkSelfPermission方法检查您的app是否有一个权限。 使用requestPermission方法来请求一个权限。2)Doze and App Standby Doze
2016-08-16 15:58:36
1089
转载 android面试 (基础篇 12) View绘制流程
1.下面是一个从这里找到的View绘制流程图2.概念 总的来说绘制view总共分三步:Measure , Layout , Draw Measure:自上而下的遍历,根据父视图对子视图的MeasureSpec以及ChildView自身的参数,通过: getChildMeasureSpec()方法获取子view的MeasureSp
2016-08-16 11:42:26
676
转载 android面试 (基础篇 11)
9)touch事件的传递 touch事件既是用手触摸屏幕所触发的事件。这些事件基本包括按下Down,移动Move 取消Cancel和离开触摸屏Up四种事件。一个完整的Touch过程一般是由Down->(Move) ->Up/Cancel这四个事件做成,值得注意的是,一个完整的触摸事件必须由Down开始, 再到Up/Cancel技术,中间的Move可有可无
2016-08-11 23:06:12
337
转载 android面试(基础篇 10)
7)Activity的launch mode的应用场景 standard:创建一个新的Activity singleTop:栈顶不是该类型的Activity,则创建一个新的Activity。否则,onNewIntent singleTask:回退占中没有该类型的Activity,则创建Activity。否则,onNewIntent+ClearTop 注意:
2016-08-11 15:22:22
271
转载 android面试(基础篇 9)
4)Activity,Window,View三者的差别,Fragment的特点? Activity是控制单元,Window是承载模型,View是显示视图(窗花),LayoutInflater是剪刀, Xml像窗花的图纸。 (1)在Activity中调用attach,创建一个window (2)创建window是其子类PhoneWindow,在atta
2016-08-10 21:32:54
376
原创 x264编码参数设置
H264Encoder *pEn = (H264Encoder *) AllocBuffer(sizeof(H264Encoder));pEn->param = (x264_param_t *) AllocBuffer(sizeof(x264_param_t));/*设置profile属性*///x264_profile_names数组定义如下:static cons
2016-08-09 09:04:22
6640
转载 android面试(基础篇 8)
1)数据库操作有哪些,如何导入外部数据库? 把数据库包括在项目源码的res/raw中,android系统下数据库应存放在 /data/data/包名/ 目录下,所以我们需要做的是把已有数据库传入那个目录下, 操作方法是用FileInputStream读取元数据库,在用FileOutputStream把读取的 数据库写到那个目录下。
2016-08-07 16:59:32
604
转载 android 面试(基础篇 7)
Java中hashmap和hashtable的区别1)继承和实现的区别 Hashtable是基于成就的Dictonary类,完成了Map接口;HashMap是java1.2引进的Map接口的 一个实现,继承于AbstractMap,AbstractMap完成了Map接口。2)线程安全不同 HashTable的方法是同步的,HashMap是未同步,所以在
2016-08-07 16:35:47
311
转载 android 面试(基础篇 6)
20.Java内部类 将一个类的定义放在另外一个类的内部,这就是内部类。内部类从表面看非常容易理解。 1)为啥要使用内部类呢? 在《Think in java》中有这样的一句话:使用内部类最吸引人的原因是:每个内部类都 能继承一个接口实现,所以无论外围类是否已经继承了某个接口实现,对于内部类都没 有影响。我们在程序设
2016-08-04 23:28:32
531
转载 IOS 多线程技术
IOS有三种多线程编程技术,分别是: 1)NSThread 2)Cocoa NSOperation 3)GCD(Grand Central Dispatch) 这三种编程方式从上到下,抽象层次从低到高,抽度越高越简单,也是Apple最推荐使用的。三种方式的优缺点介绍 1)NSThread 优点:比其他两种轻量级
2016-08-03 21:14:11
378
转载 android 面试 (基础篇 5)
19.容器类之间的区别 1)Array java所以存储及随机访问一连串对象的做法,array是最有效的一种 效率高,大师容量固定切无法动态改变。Array还有一个缺点是,无法判断其中实际存在有多少元素, length只是告诉我们array的容量 java中有一个Arrays类专门用来操作Array。其中有一组静态方法
2016-08-02 20:31:08
385
转载 android ANR分析
1.ANR排错一般有三中种类型 1)KeyDispatchTimeout(5s) 主要是类型案件或触摸事件在特定时间内无响应 2)BroadcastTimeout(10s) BroadcastReceiver在特定时间内无法处理完成 3)ServiceTimeout(20s) 小概率事件Service在特定时间内无法处理完成2.哪些操作会导致ANR
2016-07-26 20:58:10
418
转载 android 面试 (基础篇 4)
17.java多态,java多态性的理解,java中多态的实现,什么是多态。 面向对象的三大特性:封装,继承,多态。从一定角度来看封装和继承几乎都 是为多态而准备的。 多态的定义:指允许不同的类的对象对同一消息作出响应。既同一消息可以 根据发送对象的不同而采取多种不同的行为方式。(发送消息既函数调用) 实现多态的技术成为动态绑定(dynamic b
2016-07-25 23:21:06
528
转载 android 面试(基础篇 3)
14.java中int char long各占多少字节char16位2字节byte8位1字节short16位4字节int32位4字节long64位8字节floa
2016-07-21 22:02:29
277
转载 android 面试(基础篇 2)
9.进程和线程的区别 一个程序至少有一个进程,一个进程至少有一个线程。 线程的划分尺度小于进程,使得多线程程序的并发性高。 另外,进程在执行过程中拥有独立的内存单元,线程之间共享内存,从而极大 地提高了程序的运行效率。 线程在执行过程中和进程是有区别的。每个独立的进程有一个程序运行的入口, 顺序执行序列,和程序的出口。但线程不能独立执行,必须依赖应用程序中。
2016-07-21 18:21:13
293
转载 android 面试(基础篇 1)
1.接口的意义 规范、扩展、回调2.抽象类的意义 为其子类提供一个公共类型,封装自雷中重复内容,定义抽象方法 子类虽然有不同的实现但是定义是相同的3.内部类 所谓内部类,顾名思义,是定义在类内部的类。内部类可以用多个实例,每个实例都有自己的状态信息,并且与其他外围对象的信息相互独立。在单个外围类中可以让多个内
2016-07-20 22:59:03
628
原创 android动画定义
1.android动画类型动画类型XmlJava动画模式渐变透明度alphaAlphaAnimationTween渐变尺寸伸缩scaleScaleAnimation画面位置移动translateTra
2016-07-19 21:17:12
296
原创 android native中崩溃的调试办法
在android native开发中遇到比较头疼的就是Fatal error这时候传说中的gdb调试就该出场了直接上干活,嘿嘿1. 在命令行中执行下面的命令 /SDK目录/adb logcat | /NDK目录/ndk-stack -sym /Android Studio项目根目录/app/build/intermediates/jniLibs/debug
2016-07-05 22:28:42
2175
原创 IOS aac裸数据创建音频SampleBuffer
- (CMSampleBufferRef)createAudioSampleBuffer:(char*) buf withLen:(int) len withASBD:(AudioStreamBasicDescription) asbd{ AudioBufferList audioData; audioData.mNumberBuffers = 1; char* tmp
2016-06-13 21:31:06
2779
原创 AVCaptureDevice 曝光模式
Exposure ModesAVCaptureExposureModeContinuousAutoExposure ---自动调节曝光AVCaptureExposureModeLocked --使用当前曝光下面是设置为持续自动曝光的例子:if ([currentDevice isExposureModeSupported:AVCaptureExpos
2016-06-12 09:12:31
2348
原创 acitvity生命周期
1. startActivityonCreateonStartonRestoreInstanceStateonResume2. 切换到其他应用、退到后台onPauseonSaveInstanceStateonStop3. 从其他应用切换回来、回到前台onRestartonStartonResume4. 退出应用,结束act
2016-06-10 12:41:13
346
原创 IOS音频转换器 AudioConverterRef
1. 创建extern OSStatusAudioConverterNewSpecific( const AudioStreamBasicDescription * inSourceFormat, const AudioStreamBasicDescription * inDestinationFormat,
2016-06-07 23:26:33
4378
转载 PCM数据格式
PCM数据格式PCM(Pulse Code Modulation)也被称为 脉码编码调制。PCM中的声音数据没有被压缩,如果是单声道的文件,采样数据按时间的先后顺序依次存入。如果是双声道的文件,采样数据按时间先后顺序交叉地存入。PCM的每个样本值包含在一个整数i中,i的长度为容纳指定样本长度所需的最小字节数。首先存储低有效字节,表示样本幅度的位放在i的高有效位上,剩下的位置为0,这样8位和16位
2016-06-07 23:07:57
838
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人