自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 FFmpeg——Windows下,视频播放器4:播放音频、音视频同步

播放音频步骤 音频参数设置#include "czyplayer.h"#include <QtWidgets/QApplication>#include <XFFmpeg.h>#include <QAudioOutput>//视频处理, 要时刻注意内存溢出问题, 前后对应申请、释放int main(int argc, char *argv[]){ QAudioOutput *out;

2017-06-29 15:05:46 1668

转载 FFmpeg I, P, B帧和PTS, DTS时间戳的关系

FFmpeg里有两种时间戳:DTS(Decoding Time Stamp)和PTS(Presentation Time Stamp)。 顾名思义,前者是解码的时间,后者是显示的时间。要仔细理解这两个概念,需要先了解FFmpeg中的packet和frame的概念。FFmpeg中用AVPacket结构体来描述解码前或编码后的压缩包,用AVFrame结构体来描述解码后或编码前的信号帧。 对于视频来说,A

2017-06-29 14:34:37 624

原创 FFmpeg——Windows下,视频播放器3:绘制画面、缩放、暂停、拖拽进度条

#include "XFFmpeg.h"#pragma comment(lib, "avformat.lib")#pragma comment(lib, "avutil.lib")#pragma comment(lib, "avcodec.lib")#pragma comment(lib, "swscale.lib")static double r2d(AVRational r){

2017-06-29 12:50:41 1215 2

原创 FFmpeg——Windows下,视频播放器2:视频解码、转码

FFmpeg解码的流程图如下所示 #include "czyplayer.h"#include <QtWidgets/QApplication>//封装格式#pragma comment(lib, "avformat.lib")//工具(如错误信息)#pragma comment(lib, "avutil.lib")//解码#pragma comment(lib, "avcodec.l

2017-06-28 21:34:45 1185

原创 FFmpeg——Windows下,视频播放器1:音视频处理基础

1. 视频播放器原理视频播放器播放一个本地视频文件,需要经过以下几个步骤:解封装,解码视音频,视音频同步。他们的过程如图所示。2. 封装格式视频码流和音频码流按照一定的格式存储在一个文件中,常见的视频封装格式有AVI,MP4,FLV,RMVB……..3. 视频编码数据将视频像素数据(RGB,YUV等)压缩成为视频码流,从而降低视频的数据量 常见视频编码格式: 4.

2017-06-28 20:43:08 1369

原创 Android——蓝牙错误状态码大全

/* Success code and error codes */ #define GATT_SUCCESS 0x0000 #define GATT_INVALID_HANDLE 0x0001 #define GATT_READ_NOT_PERMIT 0x0002

2017-06-15 01:35:03 7216 1

原创 Socket通信——TCP、UDP区别总结、使用场景

TCP 1.TCP是面向连接的 2.每条TCP连接只能用于两个断点,一对一 3.TCP提供可靠交付的服务:连接传输数据、无差错、不丢失、不重复、并且按序到达 4.TCP提供全双工通信 5.面向字节流。TCP根据对方给出的窗口和当前网络拥塞的程度来决定一个报文应该包含多少个字节UDP 1.无链接。 2.UDP使用尽最大努力交付,不保证可靠性UDP是面向报文的,U

2017-06-14 17:34:32 5486

原创 Socket通信——Linux下,TCP滑动窗口

窗口机制   滑动窗口协议的基本原理就是在任意时刻,发送方都维持了一个连续的允许发送的帧的序号,称为发送窗口;同时,接收方也维持了一个连续的允许接收的帧的序号,称为接收窗口。发送窗口和接收窗口的序号的上下界不一定要一样,甚至大小也可以不同。不同的滑动窗口协议窗口大小一般不同。发送方窗口内的序列号代表了那些已经被发送,但是还没有被确认的帧,或者是那些可以被发送的帧。下面举一个例子(假设发送窗口尺寸

2017-06-14 15:41:27 2648

原创 Socket通信——TCP三次握手、数据通信、四次关闭

三次握手   1.客户端发出段1,SYN位表示连接请求。序号是1000,这个序号在网络通讯中用作临时的地址,每发一个数据字节,这个序号要加1,这样在接收端可以根据序号排出数据包的正确顺序,也可以发现丢包的情况,另外,规定SYN位和FIN位也要占一个序号,这次虽然没发数据,但是由于发了SYN位,因此下次再发送应该用序号1001。mss表示最大段尺寸,如果一个段太大,封装成帧后超过了链路层的最大帧长度

2017-06-14 11:23:17 423

原创 Socket通信——Linux下,socket、bind、listen、accept、connect的含义

socket#include <sys/types.h> /* See NOTES */#include <sys/socket.h>int socket(int domain, int type, int protocol);domain: AF_INET 这是大多数用来产生socket的协议,使用TCP或UDP来传输,用IPv4的地址 AF_INET6 与上面类似,不过是

2017-06-14 10:44:37 1181

原创 Socket通信——Linux下,errno=EINTR的错误处理

socket接口,例如recv接口会做2件事情: 1.检查buffer是否有数据,有则复制清除返回 2.没有数据,则进入睡眠模式,当超时、数据到达、发生错误则唤醒进程处理 采用睡眠来等待,发生信号的时候进程会被唤醒,socket接口唤醒后检查有无未处理的信号(signal_pending)会返回EINTR错误。处理方式,无需理会,重新运行该函数。 以下为封装好的函数处理,引用wrap.h,替

2017-06-13 19:50:59 1514

原创 Socket通信——Linux下,TCP协议

在TCP/IP协议中,“IP地址+TCP或UDP端口号”唯一标识网络通讯中的一个进程,“IP地址+端口号”就称为socket。下图展示了TCP的通信过程在Linux系统下,使用TCP协议进行socket通信。服务器端:#include <sys/types.h>#include <sys/socket.h>#include <strings.h>#include <arpa/inet.

2017-06-13 17:27:12 538

原创 手机暗屏下,后台不能使用蓝牙,后台gps不能定位

一般情况下手机锁屏后,部分手机,Android系统为了省电以及减少CPU消耗,在一段时间手机将会进入休眠状态。解决方案:首先在AndroidManifest.xml中申请WakeLock权限。<uses-permission android:name="android.permission.WAKE_LOCK"/>因为在锁屏情况下,服务可能会停止 private PowerManager

2017-05-02 11:59:08 3462 3

原创 android studio jni入门详解(一)

android studio jni入门详解(一)NDK开发环境 编写native方法、加载动态链接库public native static String GetVersionStr();static { System.loadLibrary("TestJNI");}在Terminal控制板中进入到java下,使用javac编译TestJNI.java 使用javah命令,生成头文件

2017-04-30 11:32:16 387

空空如也

空空如也

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

TA关注的人

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