自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小伙儿在这儿烤地瓜

It's never too late to start

  • 博客(94)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

转载 非阻塞同步算法与CAS(Compare and Swap)无锁算法

锁(lock)的代价锁是用来做并发最简单的方式,当然其代价也是最高的。内核态的锁的时候需要操作系统进行一次上下文切换,加锁、释放锁会导致比较多的上下文切换和调度延时,等待锁的线程会被挂起直至锁释放。在上下文切换的时候,cpu之前缓存的指令和数据都将失效,对性能有很大的损失。操作系统对多线程的锁进行判断就像两姐妹在为一个玩具在争吵,然后操作系统就是能决定他们谁能拿到玩具的父母,这是很慢的。用户态...

2019-05-15 21:57:31 267

转载 用户态和内核态

内核态:cpu可以访问内存的所有数据,包括外围设备,例如硬盘,网卡,cpu也可以将自己从一个程序切换到另一个程序。用户态:只能受限的访问内存,且不允许访问外围设备,占用cpu的能力被剥夺,cpu资源可以被其他程序获取。为什么要有用户态和内核态?由于需要限制不同的程序之间的访问能力, 防止他们获取别的程序的内存数据, 或者获取外围设备的数据, 并发送到网络, CPU划分出两个权限等...

2019-05-15 21:26:33 326

转载 常见的网站服务器架构有哪些?

1. 初始阶段的网站架构一般来讲,大型网站都是从小型网站发展而来,一开始的架构都比较简单,随着业务复杂和用户量的激增,才开始做很多架构上的改进。当它还是小型网站的时候,没有太多访客,一般来讲只需要一台服务器就够了,这时应用程序、数据库、文件等所有资源都在一台服务器上,网站架构如下图所示:2. 应用服务和数据服务分离随着网站业务的发展和用户量的增加,一台服务器就无法再满足需求了。大量用户访问导致访问...

2018-06-19 14:37:35 1752

转载 HM使用+码流分析教程

一、HM使用教程1.下载HM为HEVC的参考软件,下载地址:https://hevc.hhi.fraunhofer.de/svn/svn_HEVCSoftware/分成三个大类:trunk:主干程序,是最新的HM主线版本。branches:分支程序,是扩展的HM版本。tags:各个版本的HM版本。这里下载需要使用TortoiseSVN,网上可以直接下载,这是一个版本控制工具软件,具体介绍见百度百科...

2018-03-26 11:45:45 2453 1

原创 如何使用编码265视频

本文介绍x265中的两种编码视频方法,一是采用命令行的方法;二是GUI的方式。 1、命令行的方法 (1)、第一种方式生成*.265格式的视频文件         第一种方式可以生成*.265格式的视频文件,对应的命令为:[cpp] view plain copyx265 --input-res 352x288 --fps 30 hall_cif_352x288_300.yuv -o hall_ci...

2018-03-26 11:42:27 1377

转载 x265 命令行参数大全(比较详细)

除非一个参数被标记为 CLI ONLY,否则该参数也被x265_param_parse() 支持。CLI使用getopt 函数来解释命令行参数,长短版本的参数都可以使用,长参数在不引起歧义的情况下可以截断成短参数。API用户必须把完整的参数名传递给 x265_param_parse()。Preset和tune 有特殊的含义,API用户需要在调用x265_param_parse()设置其他参数之前使...

2018-03-26 11:14:05 2267

原创 x265的使用方法

第一步:        进入“...x265_1.8\build\vc10-x86”,双击“build-all.bat”,则进行编译。文件夹中的内容变化如下两图所示。    第二步:        用VS打开上一步中生成的x265.sln,其具体位置在“...\x265_1.8\build\vc10-x86”(如下图,根据平台选择)打开后,VS出现如下界面:第三步:        Build So...

2018-03-26 11:12:32 2430

原创 安装和配置x265

        研究了这么久的HEVC Test Model(HM),相信大家对x265开源代码的实现与框架早就充满了好奇,接下来的日子,我将把自己入手学习与探索“x265开源代码的实现与框架”的过程记录下来,与大家共同进步学习。1、x265下载地址与参考资料x265的官网为: http://x265.org/x265下载地址: https://bitbucket.org/multicorewar...

2018-03-26 11:11:19 2028

转载 QImage 与 cv::Mat 之间的相互转换

转自:http://blog.csdn.net/liyuanbhu/article/details/46662115Qt 中处理图像主要用的是QImage类,OpenCV中主要用的是cv::Mat类。下面的两个函数可以用来实现这两个类相互转换。[cpp] view plain copyQImage cvMat2QImage(const cv::Mat& mat)  {      // 8-...

2018-02-28 15:50:57 575

转载 X265不同Preset下的默认参数

转自:http://blog.csdn.net/cyril1121/article/details/51323824不同的Preset将直接影响编码的速度和解码后图像的质量,Preset级别越高,编码速度越慢,解码后的质量也越高;级别越低,速度也越快,解码后的图像质量也就越差,可以通过几下几个参数调节编码速度和解码后图像质量。其中最常见的参数Coding QT: max CU si

2017-10-16 15:53:45 1562

原创 回溯法输出字符串入栈出栈的全部可能序列

输入:abc输出:abcacbbacbcacba

2017-10-13 21:47:05 1169

转载 C语言中手把手教你动态内存分配

动态内存分配常见的内存分配的错误先上一个内存分配的思维导图:便于联想想象,理解:首先我们介绍一下内存分配的方式:1:在静态存储区域中进行分配 内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量122:在栈中进行分配 在执行函数时,函数内局部变量的存储单元都可以在栈上创

2017-09-28 21:22:08 417

原创 音频倍速(变速不变调)的实现

背景:        项目需要,开发一款自己的安卓端播放器,其中需要有一个视频倍速播放的功能。需要实现的效果是变速不变调。项目基于FFMpeg和WebRtc,通过FFMpeg从网络读取视频流,经过解封装、解复用分离成音频数据包和视频数据包。并分别对音视频数据包进行解码,解码完成之后的音频PCM(44100Hz,16bit,MONO)数据通过WebRtc提供的接口抛给AudioTrack,视

2017-08-15 17:47:41 21567 2

转载 依赖注入那些事儿

目录目录1 IGame游戏公司的故事    1.1 讨论会    1.2 实习生小李的实现方法    1.3 架构师的建议    1.4 小李的小结2 探究依赖注入    2.1 故事的启迪    2.2 正式定义依赖注入3 依赖注入那些事儿    3.1 依赖注入的类别        3.1.1 Setter注入        3.1.2 Co

2017-08-04 11:38:05 451

转载 同步、异步与阻塞和非阻塞

综合 知乎 怎样理解阻塞非阻塞与同步异步的区别?   严肃的回答  愚抄的回答1.同步与异步同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)所谓同步,就是在发出一个*调用*时,在没有得到结果之前,该*调用*就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由

2017-07-31 12:53:59 371

转载 静态方法和实例化方法的区别

方法是我们每天都在写得,很多程序员大多都使用实例化方法,而很少使用静态方法,问原因也说不出来所以然,或者简单的回答两者定义的区别,静态方法不需要new就可以使用 实例化方法需要new了以后才可以使用。。。。我们真的理解了吗?从实际项目开发说起,这里有开发项目的三种方式:开发项目中把BLL和DAL分开,在BLL调用DAL的代码。一、在DAL中使用静态方法,不创建实例直接调用(大概有很多人

2017-07-31 11:38:25 528

转载 ffmpeg之demux 解复用

今天学习解析媒体文件。写了一个用例,解析MP4文件得到视频帧和音频帧,并分别保存到不同的文件。照惯例,先学习,再代码。学习av_register_all[cpp] view plain copy /**  * 初始化 libavformat,并且注册所有的合并器、解析器和协议。  * 如果你不调用这个方法,你可以明确地选择你想要程序支持的

2017-07-29 16:47:46 1343

转载 cv::Mat到YUV420的转换

某些特定场合我们会经常遇到yuv420格式的视频文件,这种视频帧无法直接用于OpenCV,故而,需要进行格式转换;幸运的是,opencv提供了rgb到yuv420的格式转换函数;下面给出基本用法;函数1:读取avi格式的视频文件,转换成Yuv420格式,并写入文件;[cpp] view plain copy void WriteYuv()  {

2017-07-26 14:49:55 1885

转载 FFmpeg数据结构:AVPacket解析

本文主要从以下几个方面对AVPacket做解析:AVPacket在FFmpeg中的作用字段说明AVPacket中的内存管理AVPacket相关函数的说明结合AVPacket队列说明下AVPacket在传递过程中数据缓存的管理查了一些资料,发现FFmpeg的版本更新还是挺快,而且有很多API也有改动,本文使用的FFmpeg的最新版本3.1。AVPacket简介AVPacket是F

2017-07-19 10:14:23 899

转载 JNI实现回调| JNI调用JAVA函数|参数和返回值的格式

代码下载:http://dl.dbank.com/c0c0xs3b24一、JNI实现回调通过JNI在Native层调用Java层的方法,来实现Native层向JAVA层传递消息。JNICallback.java[java] view plain copy public class JNICallback extends Activity {   

2017-07-13 19:38:37 917

原创 H264码流分析:NAL VCL层,SPS PPS,annexb模式

1、码流总体结构: ( 参考:http://blog.csdn.net/chenchong_219/article/details/37990541                          http://www.cnblogs.com/lidabo/p/4602422.html)h264的功能分为两层,视频编码层(VCL)和网络提取层/网络抽象层(NAL)。H.264 的

2017-07-13 11:44:10 1515

转载 Android JNI 传递对象

JNI初步入门后,在传递数据的时候,遇到一个需求:有多个数据需要在Java与C代码之间进行传递。如果都做为函数参数传入,则函数很长很难看,并且多个数据的返回也不好实现。所以想到了把数据打包后传递。这在C语言中就是结构体,在Java中就是类了。我们要做的工作就是,先确定要传递的数据,然后相应在C与Java中定义相应的数据类型,然后通过JNI进行数据对应。下面以一个例程来逐步说明。为了更好

2017-07-11 20:43:28 558 1

转载 回调方法介绍之中国好室友篇(Java示例)(什么是回调函数?)

转自知乎:https://www.zhihu.com/question/19801131/answer/26586203作者:futeng链接:https://www.zhihu.com/question/19801131/answer/26586203来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。前言在Java社区的各种

2017-07-10 10:38:57 443

原创 学习硬解码视频过程(安卓)中参考的一些文档

Android MediaCodec编码解码实例解析源代码:https://github.com/WangShuo1143368701/VideoView/tree/master/mediacodecdemo

2017-07-05 17:22:53 665

原创 Vim常用操作整理备份

1.上下左右移动光标:    h:左    l:右    k:上    j:下2.删除一行:dd3.删除一个字符:x4.删除一个换行符:J5.在光标下方新建一行,并且进入插入模式:o(小写字母o)6.在光标上方新建一行,并且进入插入模式:O(大写字母O)7.光标移动到下一单词的词首:w8.光标移动到前一单词的词首:b9.光标移动到下一单词的词尾:e10.

2017-07-03 19:22:36 493 1

转载 YUV420P像素数据编码为JPEG图片

转自:http://www.cnblogs.com/ht-beyond/p/5265710.html/*FFmpeg环境配置:配置包含目录,库目录,附加依赖性添加dll到工程debug文件下*//*libavcodec encoding/decoding librarylibavfilter graph-based frame editing

2017-06-29 17:18:32 1188

原创 编写播放器SDK过程中参考的一些文档

结构体分析: 分析文章:FFMPEG结构体分析:AVFrame   原始文档:http://ffmpeg.org/doxygen/trunk/structAVFrame.html#detailsffmpeg decoding 文档:http://ffmpeg.org/doxygen/trunk/group__lavc__decoding.ht

2017-06-27 13:55:32 454

原创 AVFormatContext,AVStream,AVCodecContext,AVPacket,AVFrame之间的关系分析

一个AVFormatContext包含多个AVStream,每个码流包含了AVCodec和AVCodecContext,AVPicture是AVFrame的一个子集,他们都是数据流在编解过程中用来保存数据缓存的对像,从数据流读出的数据首先是保存在AVPacket里,也可以理解为一个AVPacket最多只包含一个AVFrame,而一个AVFrame可能包含好几个AVPacket,AVPack

2017-06-26 16:10:59 1112 1

转载 环形缓冲区的设计与实现

环形缓冲区是嵌入式系统中十分重要的一种数据结构,比如在一个视频处理的机制中,环形缓冲区就可以理解为数据码流的通道,每一个通道都对应着一个环形缓冲区,这样数据在读取和写入的时候都可以在这个缓冲区里循环进行,程序员可以根据自己需要的数据大小来决定自己使用的缓冲区大小。    环形缓冲区,顾名思义这个缓冲区是环形的,那么何谓环形这个意思也很好理解,就是用一个指针去访问该缓冲区的最后一个内存位置的

2017-06-15 15:30:43 746

转载 ffmpeg将多媒体文件的Video Stream每帧画面保存为PPM格式图片

转自:http://blog.chinaunix.net/uid-20846214-id-4193590.html注:本文参考http://dranger.com/ffmpeg/tutorial01.html,但是这篇比较老旧了,文中用的最新版的FFmpeg,很多API都跟老版的不同,请大家注意。        在最简单的情况下,其实处理Video和Audio的步骤是非常简单的:

2017-06-09 17:39:55 1735

转载 C++实现RTMP协议发送H.264编码及AAC编码的音视频

RTMP(Real Time Messaging Protocol)是专门用来传输音视频数据的流媒体协议,最初由Macromedia 公司创建,后来归Adobe公司所有,是一种私有协议,主要用来联系Flash Player和RtmpServer,如FMS, Red5, crtmpserver等。RTMP协议可用于实现直播、点播应用,通过FMLE(Flash Media Live Encoder

2017-06-09 14:30:24 484

转载 ffmpeg常用基本命令

1.分离视频音频流ffmpeg -i input_file -vcodec copy -an output_file_video  //分离视频流ffmpeg -i input_file -acodec copy -vn output_file_audio  //分离音频流2.视频解复用ffmpeg –i test.mp4 –vcodec copy –an –f m4v

2017-06-08 15:19:03 421

原创 C++ 堆上创建对象与栈上创建对象的区别 创建对象时有和无花括号的区别

在C++中类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* p=new A(),A*p=(A*)malloc();静态建立一个类对象,是由编译器为对象在栈空间中分配内存,通过直接移动栈顶指针挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象。动态建立类对象,是使用new运算符将对象建立在堆空间中,在栈中只保留了指向该对象的指针。栈是由编译器自动分配释放

2017-06-07 20:50:47 988

转载 简单理解Socket

TCP/IP要想理解socket首先得熟悉一下TCP/IP协议族, TCP/IP(Transmission Control Protocol/Internet Protocol)即传输控制协议/网间协议,定义了主机如何连入因特网及数据如何再它们之间传输的标准,从字面意思来看TCP/IP是TCP和IP协议的合称,但实际上TCP/IP协议是指因特网整个TCP/IP协议族。不同于ISO模型的七个

2017-06-07 19:25:42 381

原创 Ubuntu 16.04 + win7 双系统 引导修复 grub修复之路

环境: win7 + Ubuntu 16.04双系统   250G SSD  win7一开始是C盘100G,D盘150G,装Ubuntu时从D盘压缩出40G            问题产生原因:装Ubuntu的时候分配了40G的空间(swap 4G,/  36G)不够用了,于是在win7中从D盘又压缩出20G空间准备给Ubuntu系统用,但是重启的时候遇到了

2017-06-06 11:24:03 11279 1

原创 Android 使用NDK-build生成so文件 C++ JNI NDK

1、将ndk添加至环境变量至添加一次即可,即下面语句使用一次之后以后就不用再使用了echo 'export PATH=~/Desktop/Android/android-sdk-linux/ndk-bundle/:$PATH' >> ~/.bashrc 11echo ‘export PATH=你的具体ndk路径/ndk-bundle/:$PATH’ >> ~/.bashrc 让环境

2017-06-03 19:42:43 872

原创 Git使用中遇到的问题记录

SSH keysAn SSH key allows you to establish a secure connection between yourcomputer and GitLab.Before generating an SSH key, check if your system already has one byrunning cat ~/.ssh/id_rsa.

2017-06-03 14:04:45 978

转载 RTMP协议

RTMP协议是Real Time Message Protocol(实时信息传输协议)的缩写,它是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing)的问题。随着VR技术的发展,视频直播等领域逐渐活跃起来,RTMP作为业内广泛使用的协议也重新被相关开发者重视起来。正好最近在从事这方面的工作,在此记录下自己对RTMP的

2017-06-01 17:10:50 2120 1

转载 直播技术点整理-链接

直播关键字采集、前处理、编码、传输、解码、渲染, 推流, 拉流、连麦、直播、互动、RTMP原理科普为何一直推荐WebRTC?RTMP vs RTMFP大话直播android音视频点/直播模块开发一些基本概念【如何快速的开发一个完整的iOS直播app】(原理篇)姚东(YY),金山18667号码农,张云龙(全民TV), 何李石(七牛)分享如何搭建直播平台浅谈视频参数(流媒体

2017-06-01 16:00:16 1956

原创 ffmpeg解决H.264原始数据包去隔行的问题(上半场/顶场与下半场/底场合并) 待续。。。

首先需要了解场的概念:       每个电视帧都是通过扫描屏幕两次而产生的,第二个扫描的线条刚好填满第一次扫描所留下的缝隙。每个扫描即称为一个场。因此 25 帧/秒的电视画面实际上为 50 场/秒 (若为 NTSC 则分别为 30 & 60 - 因为我是中国人,因此我采用 PAL 的数值)。       若要取得包含最大细节的帧,您需要合并两个场内的信息。截至目前为止,这些观念都很

2017-05-17 11:16:20 2263 1

H.265与H.264的对比

H.265与H.264的对比

2016-12-20

基于C/S模式的网络论坛系统

JAVA网页设计基础文件,利用java和javascript编写了一个网上论坛系统,利用JDBC:ODBC数据源实现了数据库的连接,前台后台数据库都有,均为自己编写。

2015-05-17

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除