- 博客(22)
- 资源 (2)
- 收藏
- 关注
转载 1小时学会:最简单的iOS直播推流(七)h264/aac 硬编码
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源代码:https://github.com/hardman/AWLive前面已经介绍了如何从硬件设备获取到音视频数据(pcm,NV12)。但是我们需要的视频格式是 aac和 h264。现在就介绍一下
2017-01-31 15:56:18
907
转载 最简单的iOS直播推流(六)h264、aac、flv介绍
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源代码:https://github.com/hardman/AWLive前面介绍了如何捕获音视频原始数据,介绍了yuv和pcm。下面来介绍一下我们的想要转换的目标音视频格式:h264,aac,flv
2017-01-31 15:54:09
588
转载 1小时学会:最简单的iOS直播推流(五)yuv、pcm数据的介绍和获取
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源代码:https://github.com/hardman/AWLive前面介绍了如何通过相机实时获取音视频数据。我们接下来就需要了解获取到的数据到底是什么样的。使用系统提供的接口获取到的音视频数据
2017-01-31 15:52:47
896
1
转载 1小时学会:最简单的iOS直播推流(四)如何使用GPUImage,如何美颜
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源代码:https://github.com/hardman/AWLive上一篇文章介绍了如何使用系统方法捕获视频数据,但是更多的时候,为了使用美颜滤镜,我们会选择GPUImage来获取视频数据。GP
2017-01-31 15:51:44
653
转载 1小时学会:最简单的iOS直播推流(三)使用系统接口捕获音视频数据
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源代码:https://github.com/hardman/AWLive通过系统相机录制视频获取音视频数据,是推流的第一步。 源码中提供2种获取音视频数据的方法:一是使用系统自带接口;二是使用GP
2017-01-31 15:50:28
512
转载 1小时学会:最简单的iOS直播推流(二)代码架构概述
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源代码:https://github.com/hardman/AWLive推流流程使用rtmp协议(其他协议也类似)推流的大体流程如下: 1. 通过系统相机捕获视频及声音,该美颜的美颜,该滤镜的滤镜
2017-01-31 15:46:40
402
转载 1小时学会:最简单的iOS直播推流(一)介绍
最简单的iOS 推流代码,视频捕获,软编码(faac,x264),硬编码(aac,h264),美颜,flv编码,rtmp协议,陆续更新代码解析,你想学的知识这里都有,愿意懂直播技术的同学快来看!! 源代码:https://github.com/hardman/AWLive介绍最近在做iOS直播,研究了相关直播技术,主要包含两方面:推流,播放。因为之前使用cocos2dx做过一个视频游戏(恋爱公寓
2017-01-31 15:41:02
357
原创 NSArray排序
NSMutableArray *array_1 = [[NSMutableDictionary alloc] init];...NSMutableArray *array_2 = [NSMuatableArray array];array_2 = [[[[array_1.allKeys sortedArrayUsingSelector:@selector
2016-03-17 15:37:17
314
转载 #define STRINGIZE(x) #x
#符号把一个符号直接转换为字符串,例如:#define STRING(x) #xconst char *str = STRING( test_string ); str的内容就是"test_string",也就是说#会把其后的符号直接加上双引号。##符号会连接两个符号,从而产生新的符号(词法层次),例如:#define SIGN( x ) INT_##xint SIGN(
2016-03-04 14:59:11
1430
转载 select函数详解及应用 .
Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect、 accept、recv或recvfrom这样的阻塞程序(所谓阻塞方式block,顾名思义,就是进程或是线程执行到这些函数时必须等待某个事件的发生,如果事件没有发生,进程或线程就被阻塞,函数不能立即返回)。可是使用Select就可以完成非阻塞(所谓非阻塞方
2013-07-09 18:05:14
446
转载 c++中的list用法
#include iostream> #include list> #include numeric> #include algorithm> using namespace std; //创建一个list容器的实例LISTINT typedef listint> LISTINT; //创建一个list容器的实例LISTCHAR typedef list
2013-07-08 18:05:32
402
转载 python 抓取腾讯微博数据并做简单的分析 .
利用python去读取腾讯微博中某个人的数据,统计和他相关的一些连接,并对每个打印每个连接的数据,本人采用的python版本为3.3.[python] view plaincopyprint?from html.parser import HTMLParser import urllib.request import re pattern = re.c
2013-06-17 11:15:31
568
转载 Log4cpp
简介Log4cpp是一个开源的C++类库,它提供了在C++程序中使用日志和跟踪调试的功能。使用log4cpp,可以很便利地将日志或者跟踪调试信息写入字符流、内存字符串队列、文件、回滚文件、调试器、Windows日志、syslog和远程syslog服务器中。编辑本段优点Log4cpp是个基于LGPL的开源项目,移植自Java的日志处理跟踪项目log4j,并保持了API上的一致。其类似的支
2013-06-07 17:21:05
765
转载 封装log4cpp
log4cpp 是参考 log4j 所写的 c++ 版本的写 log 的库。可以在这里下载 http://log4cpp.sourceforge.net/ 我的使用方法是:1,定义了一个 _LOG4CPP 宏,用来打开或关闭 log4cpp 的调用,以便在完全不需要 log 的情况下可以运行,例如进行性能测试时;又比如 log4cpp 可能有内存泄露,关闭使用它,可以检查程序其
2013-06-07 17:16:56
2312
转载 输入系统的事件派遣流程
//注入鼠标移动的消息bool System::injectMouseMove(float delta_x, float delta_y){MouseEventArgs ma(0);MouseCursor& mouse = MouseCursor::getSingleton();//看到d_mouseScalingFactor 的作用了吧!ma.moveDelta.d_x =
2013-05-28 15:02:54
862
转载 第3 章 CEGUI 基类的实现
这一章介绍CEGUI 最基本的窗口类Window。CEGUI 中所有的窗口都必须派生自Window(不管直接还是间接)。在介绍Window 类之前,我认为介绍窗口原理比较重要。所以第1 节介绍窗口的原理。3.1 窗口设计原理游戏中的窗口系统,没有Window 窗口系统那么复杂。但他们的结构是类似的。窗口从外表上看是由一些图片的累加而成。从行为上看,它可以接受用户的输入,并做出合
2013-05-28 13:02:18
2380
转载 属性事件与布局文件
CEGUI 设计属性和事件有一个原因就是为了方便的在XML 文件中设置窗口的数据(属性)和窗口的逻辑操作(事件)。属性和事件是如何从XML 布局文件中获取的。注意:CEGUI 中的布局文件和其他许多文件并不是以xml 为文件扩展名的,布局文件以为扩展名layout,资源管理文件以schema 文件为扩展名,控件外观文件是以looknfeel 为扩展名的,字体文件是以fo
2013-05-28 11:27:56
1503
1
转载 FunctorPointerSlot 是某个类的指针的封装
templateclass FunctorPointerSlot : public SlotFunctorBase{public:FunctorPointerSlot(T* functor) :d_functor(functor){}virtual bool operator()(const EventArgs& args){return (*d_functor
2013-05-28 11:19:40
463
转载 类的成员变量有一个隐含的参数this,所以必须保存这个this 到MemberFunctionSlot 类里面
templateclass MemberFunctionSlot : public SlotFunctorBase{public://!成员变量的回调函数定义typedef bool(T::*MemberFunctionType)(const EventArgs&);MemberFunctionSlot(MemberFunctionType func, T* obj) :d
2013-05-28 11:15:21
650
转载 定义一个函数指针类型comm_callback
typedef void (*comm_callback)(char*, int, void*); 这个函数类型是这样:返回值void, 参数:char*,int,void*可以直接使用comm_callback定义一个函数指针如:comm_callback pFun;
2013-05-28 10:58:58
486
转载 回调函数的概念及其使用
1 什么是回调软件模块之间总是存在着一定的接口,从调用方式上,可以把他们分为三类:同步调用、回调和异步调用。同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即
2013-05-28 10:13:13
570
转载 C++类构造函数初始化列表
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如:class CExample {public: int a; float b; //构造函数初始化列表 CExample(): a(0),b(8.8) {} //构造函数内部赋值 CExample()
2013-05-28 09:57:52
421
红外遥控六足爬虫机器人
2013-04-01
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人