葡京在线开户iOS视频直播初窥:高仿<喵播APP>

效果图

gif1

gif2

由于licecap录制的GIF失帧太严重, 都模糊掉了, 再放开少摆放高清截图

png1

png2

本书讲了啊

本书由成品经营介绍道起,系统讲述了活简历准备、产品求职作品准备、各大互联网介绍、产品牛人事情访谈、产品笔面试技巧与攻略、笔试/群面/专业面/Boss面/HR面的70道历年真题详细分析和解答等情节,具有莫大的对。

前言

现年三月份,斗鱼腾讯领投的1亿美元融资的信于列大平台报道转载,在电竞、泛娱乐已是走俏投资的当即,网络直播平台自为得了各界的关怀。盗用两张有关游戏直播的主旋律图

戏直播规模

娱直播规模

随即还只是游玩直播这块的蛋糕.直播业之竞争会越加强烈,
不管是主播还是直播平台还面临着激烈的竞争, 当然直播业吗会越规范,
直播元素也愈来愈多.

作者什么来头

蓝鲸部落

视频直播初窥

视频直播,可以分成 采集,前处理,编码,传输, 服务器处理,解码,渲染

  • 收集: iOS系统以软硬件种类不多, 硬件适配性比较好, 所以比较简单.
    而Android端市面上机型众多, 要举行些机型的适配工作.PC端是极致累的,
    各种奇葩摄影头驱动.所以现在广大的中小型直播平台, 都放弃了PC的直播,
    更发出一些直播平台就开iOS端的视频直播.

  • 面前处理: 美颜算法,视频的歪曲效果, 水印等都是当这个环节做.
    目前iOS端最红开源框架的必然就是GPUImage.其中坐了125栽渲染效果,
    还支持各种本子自定义. 我高仿的喵播的美颜功效也是依据GPUImage的.

  • 编码:
    重难点在使以分辨率,帧率,码率,GOP等参数设计及找到最佳平衡点。iOS8之后,
    Apple开放了VideoToolbox.framework, 可以直接进行硬编解码,
    这也是为何现在多数直播平台最低只有支持到iOS8之缘由之一.
    iOS端硬件兼容性比较好, 可以直接下硬编码.
    而Android得硬编码又是均等坏坑.

  • 传输: 这块一般还是付诸CDN服务商.
    CDN不过提供带宽和服务器之间的传输,
    发送端和接到端的网络连接抖动缓存还是要和谐实现之.目前国内极充分之CDN服务商应该是网宿.

  • 服务器处理: 需要以服务器做片注处理工作,
    让推送上来的流适配各个平台各种不同的商事, 比如:RTMP,HLS,FLV…

  • 解码和渲染: 也尽管即音视频的播放. 解码毫无疑问也必要硬解码.
    iOS端兼容于好, Android依然很坑.这块的困难在于音画同步,
    目前众直播平台这块是硬伤.国内比较好的开源项目相应是B站开源之<a
    href=”https://github.com/Bilibili/ijkplayer"&gt;ijkplayer
    </a>. 斗鱼不畏是根据<a
    href=”https://github.com/Bilibili/ijkplayer"&gt;ijkplayer
    </a>的, 本项目为是依据<a
    href=”https://github.com/Bilibili/ijkplayer"&gt;ijkplayer
    </a>的.

艺坑 : 降噪, 音频解码器, 蓝牙适配, 回声消除, 信令控制, 登录, 鉴权,
权限管理, 状态管理, 应用信息, 消息推送, 礼物系统, 即时拉, 支付体系,
统计系统, 数据库, 缓存, 分布式文件存储, 消息队列,
运维系统等等大小不一的坑等你来填!!!

本坑 : 以带动富也例, 2万丁同时在线, 手机码率在600KB,
每个月份之带富费用至少在30万左右. 根据欢聚时代(YY)15年四季度财务报,
他们的带来富成本为人民币1.611亿正, 折合每月5000万+.
人力财力+渠道支出及其他支出就一无所知谈了.

社会坑: 还得时刻与各种黑暗势力斗争, 包括韵, 广告, 刷小号,
刷充值, 告侵权, DDos…(我反而编译喵播的官方APP,
他们的品种名为就被Shehui, O(∩_∩)O哈哈~)

第1回 产品经营入门

品类下载地址

<a
href=”https://github.com/SunLiner/MiaowShow"&gt;GitHub下载地址&lt;/a&gt;

老三种植产品观

花色一:工匠,即创造者。艺人类制品观强调体验,在互联网发展前期,工匠类产品方法论带来的收益是伟大的:精雕细琢打磨后底活可以和各种粗糙产品延长显著差异。而且,随着工作方式的不断完善,个人的成品合计一旦形成,就见面老拉开同竞争对手的别,形成一定的竞争壁垒。

项目二:领袖,即领导者。首脑类制品观强调驱动力。很多顿时类产品人的正统力量比相似,设计不如专业UI(视觉设计师),技术不如专业RD(开发工程师),测试不若正式QA(测试工程师),但纵然能依赖个人的强有力执行力和驱动力,选准一个十分方向,持续地向下开,直至获得成功。如果说工匠型产品人是花费了9个月拿一个出品之成功率从30%增高至90%(因为优化了体验),那么领袖型产品人则是花费了9单月将成功率为30%之成品分割三单方案做了三不善(强有力的大举向执行),而由理论来说二者的期望值是均等的。

色三:老板,即纳税人。老板类制品观不拘细节,讲究的是低收入和生存能力。换句话说,不管是用工匠的法子要领袖的手腕,只要能活着下来并且最后收获利益,老板还无介意。

初期准备

花色根本是基于<a
href=”https://github.com/Bilibili/ijkplayer"&gt;ijkplayer </a>的.
最好是自包改成framework. 原本自己准备写一个包教程,
不了后来在简书上发现了千篇一律首专门详细的从包blog, 分享给大家: <a
href=”http://www.jianshu.com/p/1f06b27b3ac0"&gt;http://www.jianshu.com/p/1f06b27b3ac0&lt;/a&gt;.

假若您因教程打包失败了(当然这种概率比粗),
我及时还有同份本身已于包好之(Release版), 下充斥地址:
链接:http://pan.baidu.com/s/1eRVetdK
密码:2dc0
下载后, 直接解压即可.

第2节 撰写一卖好简历

品类文件结构

  • Frameworks: 如果文件夹不设有, 点击classes选择Show in Finder,
    新建一个即可, 将你打包之抑下载的framework拖入其中并累及上路中.
    你为可友善修一个文件夹, 把此Frameworks直接delete即可

  • Profile : 个人核心, 这之中独自出一个ProfileController.
    因为总写重复代码, 都写吐了, 这儿有趣味之投机写一下吧, So easy…

  • Network : 关于网络连接的工具类. 关于网络的实时监控, 网络状态的切换,
    网络请求的工具类都在此间面.

  • Other : 全局的常量. 当然你吗得以于里边用文件结构更加细化.

  • Home : 包含最新主播, 最暖直播, 关注的直播, 礼物排行榜等模块.
    还有无限要的视频直播呢以及时其中了.

  • ShowTime :见名知意. 视频直播的前面处理,
    智能美颜和H264硬编码等都以这里面.

  • Main : UITabBarControllerUINavigationController的配置

  • Toos : 这儿命名有点不正规, 这个中放的都是种类因此到之归类

  • Login : 登录模块

  • Resource : 项目用到的资源文件

哎是简历

无异于客简历首先是若协调对过往的下结论,把您认为的有长处都位列上去,所有认为可以用来讲述的始末还可以摆上去,这个历程应该要蛮爽的;痛苦的次步是怎站于旁观者的角度,把您看的助益进一步提炼或者索性删掉,最终形成相同卖好被人口看得爽、觉得您牛之事物,这样才是千篇一律卖好的简历。简历是为此来传递信息的,要好好地传递有效管用的信。

花色详解

  • tip1: 判读网络类型.

于见到直播的早晚, 我们司空见惯还是为此WiFi或者3/4G(土豪级别之),
一般用户以拓展网络切换的时候, 我们且设给来友善的提示, 告诉TA:
您的大网状态切换到了XX状态. 假设用户从WiFi切换至4G,
你的动为远非个提醒, 导致TA的流量归零甚至不够了运营商一屁股的钱,
我怀念你的APP的用户体验呢就是归零或者也负了.

咱得采用苹果的Reachability重组下面的代码实时监听网络状态的改

typedef NS_ENUM(NSUInteger, NetworkStates) {
    NetworkStatesNone, // 没有网络
    NetworkStates2G, // 2G
    NetworkStates3G, // 3G
    NetworkStates4G, // 4G
    NetworkStatesWIFI // WIFI
};

// 判断网络类型
+ (NetworkStates)getNetworkStates
{
    NSArray *subviews = [[[[UIApplication sharedApplication] valueForKeyPath:@"statusBar"] valueForKeyPath:@"foregroundView"] subviews];
    // 保存网络状态
    NetworkStates states = NetworkStatesNone;
    for (id child in subviews) {
        if ([child isKindOfClass:NSClassFromString(@"UIStatusBarDataNetworkItemView")]) {
            //获取到状态栏码
            int networkType = [[child valueForKeyPath:@"dataNetworkType"] intValue];
            switch (networkType) {
                case 0:
                   //无网模式
                    states = NetworkStatesNone;
                    break;
                case 1:
                    states = NetworkStates2G;
                    break;
                case 2:
                    states = NetworkStates3G;
                    break;
                case 3:
                    states = NetworkStates4G;
                    break;
                case 5:
                {
                    states = NetworkStatesWIFI;
                }
                    break;
                default:
                    break;
            }
        }
    }
    //根据状态选择
    return states;
}
  • tip2: 登录模块

假使您差不多运行几次于就会见意识,
登录模块背景中播放的视频是2单视频每次随机播放一个底.并且是极端重复的,
也就是说只要你一直呆在登录界面, 就会单视频循环播放时之看来频.
这儿的报到就是几只按钮, 没有切实可行的报到逻辑,
随便点哪一个按钮都可以进入首页.

俺们要监听视频, 是否播放完成.

// 监听视频是否播放完成
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didFinish) name:IJKMPMoviePlayerPlaybackDidFinishNotification object:nil];

若播放完成了, 让IJKFFMoviePlayerController再次play即可

- (void)didFinish
{
    // 播放完之后, 继续重播
    [self.player play];
}
  • tip3: 首页

首页

这种功能相信广大人数犹视了要做过.我简单说一样下我之做法(不自然是极品的,
只是供一个思路)

一个父控制器HomeViewController+三只子控制器(最热/最新/关注.
每个控制器各自管理好之事情逻辑, 高内集低耦合).
重写HomeViewControllerloadView,
self.view替换成UIScrollView.
将三独子控制器的view添加到UIScrollView上即可. 其他的效用实现,
请参照我的代码, 都有详实的中文注释.

  • tip4: 直播(面向观众捧)
    夫是合项目之主要之一了.这种直播的布局, 应该是比较主流的了.
    我下载的广大直播类APP都是此项目布局,
    包括YY也是这种界面布局.这个里面涉及的物比多矣, 三言两语真说不清.

简易说一下早已落实之功用:
A: 主播的直播
B: 关联主播的视频直播, 默认是仅仅发界面, 没有动静之.
点击该视图可以切换至之主播
C: 下拉切换其他一个主播, 这个力量是坏广阔的.
做法是直播控制器是一个UICollectionViewController, 只生一个cell,
cell.frame就是self.collectionViewb.bounds.
我们进来直播控制器的时节, 其实是传染上一个干主播数组,
每次下拉的时, 就加载数组里面的主播
D. 查看观众席的观众详情
E. 查看主播详情
F. 足迹: 粒子动画, 后面详解
G. 弹幕: 点击最下方的工具栏第一独按钮可以开启/关闭弹幕, 后面详解

  • tip5: 粒子动画实现游客足迹
    粒子动画的layer是添加到播放器的view上面的. 下面代码有详实的注释

CAEmitterLayer *emitterLayer = [CAEmitterLayer layer];
// 发射器在xy平面的中心位置
emitterLayer.emitterPosition = CGPointMake(self.moviePlayer.view.frame.size.width-50,self.moviePlayer.view.frame.size.height-50);
// 发射器的尺寸大小
emitterLayer.emitterSize = CGSizeMake(20, 20);
// 渲染模式
emitterLayer.renderMode = kCAEmitterLayerUnordered;
// 开启三维效果
//    _emitterLayer.preservesDepth = YES;
NSMutableArray *array = [NSMutableArray array];
// 创建粒子
for (int i = 0; i<10; i++) {
    // 发射单元
    CAEmitterCell *stepCell = [CAEmitterCell emitterCell];
    // 粒子的创建速率,默认为1/s
    stepCell.birthRate = 1;
    // 粒子存活时间
    stepCell.lifetime = arc4random_uniform(4) + 1;
    // 粒子的生存时间容差
    stepCell.lifetimeRange = 1.5;
    // 颜色
    // fire.color=[[UIColor colorWithRed:0.8 green:0.4 blue:0.2 alpha:0.1]CGColor];
    UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"good%d_30x30", i]];
    // 粒子显示的内容
    stepCell.contents = (id)[image CGImage];
    // 粒子的名字
    //            [fire setName:@"step%d", i];
    // 粒子的运动速度
    stepCell.velocity = arc4random_uniform(100) + 100;
    // 粒子速度的容差
    stepCell.velocityRange = 80;
    // 粒子在xy平面的发射角度
    stepCell.emissionLongitude = M_PI+M_PI_2;;
    // 粒子发射角度的容差
    stepCell.emissionRange = M_PI_2/6;
    // 缩放比例
    stepCell.scale = 0.3;
    [array addObject:stepCell];
}

emitterLayer.emitterCells = array;
[self.moviePlayer.view.layer insertSublayer:emitterLayer below:self.catEarView.layer];
  • tip6: 弹幕
    弹幕使用的呢是一个老三着轮子<a
    href=”https://github.com/unash/BarrageRenderer"&gt;BarrageRenderer
    </a>. 这个开源项目的文档都是中文的, 用法也是十分粗略的.

    中心配置

 _renderer = [[BarrageRenderer alloc] init];
// 设置弹幕的显示区域. 基于父控件的.
_renderer.canvasMargin = UIEdgeInsetsMake(ALinScreenHeight * 0.3, 10, 10, 10);
[self.contentView addSubview:_renderer.view];

弹幕配置

#pragma mark - 弹幕描述符生产方法
/// 生成精灵描述 - 过场文字弹幕
- (BarrageDescriptor *)walkTextSpriteDescriptorWithDirection:(NSInteger)direction
{
    BarrageDescriptor * descriptor = [[BarrageDescriptor alloc]init];
    descriptor.spriteName = NSStringFromClass([BarrageWalkTextSprite class]);
    descriptor.params[@"text"] = self.danMuText[arc4random_uniform((uint32_t)self.danMuText.count)];
    descriptor.params[@"textColor"] = Color(arc4random_uniform(256), arc4random_uniform(256), arc4random_uniform(256));
    descriptor.params[@"speed"] = @(100 * (double)random()/RAND_MAX+50);
    descriptor.params[@"direction"] = @(direction);
    descriptor.params[@"clickAction"] = ^{
        UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"提示" message:@"弹幕被点击" delegate:nil cancelButtonTitle:@"取消" otherButtonTitles:nil];
        [alertView show];
    };
    return descriptor;
}

末一步, 千万一旦记得start

[_renderer start];
  • tip7: 智能美颜功能
    而今之直播平台, 美颜是标配.
    不然绝大多数的主播都是迫不得已看之.美颜算法需要用到GPU编程,
    需要了解图像处理的人. 图像处理就同一块我弗是十分熟稔,
    相关的文献也是看得云里雾里的. 所以, 依然采取开源之车轮:<a
    href=”https://github.com/BradLarson/GPUImage"&gt; GPUImage
    </a>. 这个开源框架来守1.3W+star(7月5日数), 真不是坐之,
    内置125种植滤镜效果, 没有你飞, 只有你切莫见面就此.
    我的色被都产生详实的用法, 还是好简短的.
    在这里摘抄一份其.h文件的注释. 一方面有利于大家修改我种遭到的美颜功能,
    另一方面也是开只备份.(具体有处于自己真忘了, 如果有人找到了源地址链接,
    可以沟通自己长)

#import "GLProgram.h"

// Base classes
#import "GPUImageOpenGLESContext.h"
#import "GPUImageOutput.h"
#import "GPUImageView.h"
#import "GPUImageVideoCamera.h"
#import "GPUImageStillCamera.h"
#import "GPUImageMovie.h"
#import "GPUImagePicture.h"
#import "GPUImageRawDataInput.h"
#import "GPUImageRawDataOutput.h"
#import "GPUImageMovieWriter.h"
#import "GPUImageFilterPipeline.h"
#import "GPUImageTextureOutput.h"
#import "GPUImageFilterGroup.h"
#import "GPUImageTextureInput.h"
#import "GPUImageUIElement.h"
#import "GPUImageBuffer.h"

// Filters
#import "GPUImageFilter.h"
#import "GPUImageTwoInputFilter.h"


#pragma mark - 调整颜色 Handle Color

#import "GPUImageBrightnessFilter.h"                //亮度
#import "GPUImageExposureFilter.h"                  //曝光
#import "GPUImageContrastFilter.h"                  //对比度
#import "GPUImageSaturationFilter.h"                //饱和度
#import "GPUImageGammaFilter.h"                     //伽马线
#import "GPUImageColorInvertFilter.h"               //反色
#import "GPUImageSepiaFilter.h"                     //褐色(怀旧)
#import "GPUImageLevelsFilter.h"                    //色阶
#import "GPUImageGrayscaleFilter.h"                 //灰度
#import "GPUImageHistogramFilter.h"                 //色彩直方图,显示在图片上
#import "GPUImageHistogramGenerator.h"              //色彩直方图
#import "GPUImageRGBFilter.h"                       //RGB
#import "GPUImageToneCurveFilter.h"                 //色调曲线
#import "GPUImageMonochromeFilter.h"                //单色
#import "GPUImageOpacityFilter.h"                   //不透明度
#import "GPUImageHighlightShadowFilter.h"           //提亮阴影
#import "GPUImageFalseColorFilter.h"                //色彩替换(替换亮部和暗部色彩)
#import "GPUImageHueFilter.h"                       //色度
#import "GPUImageChromaKeyFilter.h"                 //色度键
#import "GPUImageWhiteBalanceFilter.h"              //白平横
#import "GPUImageAverageColor.h"                    //像素平均色值
#import "GPUImageSolidColorGenerator.h"             //纯色
#import "GPUImageLuminosity.h"                      //亮度平均
#import "GPUImageAverageLuminanceThresholdFilter.h" //像素色值亮度平均,图像黑白(有类似漫画效果)

#import "GPUImageLookupFilter.h"                    //lookup 色彩调整
#import "GPUImageAmatorkaFilter.h"                  //Amatorka lookup
#import "GPUImageMissEtikateFilter.h"               //MissEtikate lookup
#import "GPUImageSoftEleganceFilter.h"              //SoftElegance lookup




#pragma mark - 图像处理 Handle Image

#import "GPUImageCrosshairGenerator.h"              //十字
#import "GPUImageLineGenerator.h"                   //线条

#import "GPUImageTransformFilter.h"                 //形状变化
#import "GPUImageCropFilter.h"                      //剪裁
#import "GPUImageSharpenFilter.h"                   //锐化
#import "GPUImageUnsharpMaskFilter.h"               //反遮罩锐化

#import "GPUImageFastBlurFilter.h"                  //模糊
#import "GPUImageGaussianBlurFilter.h"              //高斯模糊
#import "GPUImageGaussianSelectiveBlurFilter.h"     //高斯模糊,选择部分清晰
#import "GPUImageBoxBlurFilter.h"                   //盒状模糊
#import "GPUImageTiltShiftFilter.h"                 //条纹模糊,中间清晰,上下两端模糊
#import "GPUImageMedianFilter.h"                    //中间值,有种稍微模糊边缘的效果
#import "GPUImageBilateralFilter.h"                 //双边模糊
#import "GPUImageErosionFilter.h"                   //侵蚀边缘模糊,变黑白
#import "GPUImageRGBErosionFilter.h"                //RGB侵蚀边缘模糊,有色彩
#import "GPUImageDilationFilter.h"                  //扩展边缘模糊,变黑白
#import "GPUImageRGBDilationFilter.h"               //RGB扩展边缘模糊,有色彩
#import "GPUImageOpeningFilter.h"                   //黑白色调模糊
#import "GPUImageRGBOpeningFilter.h"                //彩色模糊
#import "GPUImageClosingFilter.h"                   //黑白色调模糊,暗色会被提亮
#import "GPUImageRGBClosingFilter.h"                //彩色模糊,暗色会被提亮
#import "GPUImageLanczosResamplingFilter.h"         //Lanczos重取样,模糊效果
#import "GPUImageNonMaximumSuppressionFilter.h"     //非最大抑制,只显示亮度最高的像素,其他为黑
#import "GPUImageThresholdedNonMaximumSuppressionFilter.h" //与上相比,像素丢失更多

#import "GPUImageSobelEdgeDetectionFilter.h"        //Sobel边缘检测算法(白边,黑内容,有点漫画的反色效果)
#import "GPUImageCannyEdgeDetectionFilter.h"        //Canny边缘检测算法(比上更强烈的黑白对比度)
#import "GPUImageThresholdEdgeDetectionFilter.h"    //阈值边缘检测(效果与上差别不大)
#import "GPUImagePrewittEdgeDetectionFilter.h"      //普瑞维特(Prewitt)边缘检测(效果与Sobel差不多,貌似更平滑)
#import "GPUImageXYDerivativeFilter.h"              //XYDerivative边缘检测,画面以蓝色为主,绿色为边缘,带彩色
#import "GPUImageHarrisCornerDetectionFilter.h"     //Harris角点检测,会有绿色小十字显示在图片角点处
#import "GPUImageNobleCornerDetectionFilter.h"      //Noble角点检测,检测点更多
#import "GPUImageShiTomasiFeatureDetectionFilter.h" //ShiTomasi角点检测,与上差别不大
#import "GPUImageMotionDetector.h"                  //动作检测
#import "GPUImageHoughTransformLineDetector.h"      //线条检测
#import "GPUImageParallelCoordinateLineTransformFilter.h" //平行线检测

#import "GPUImageLocalBinaryPatternFilter.h"        //图像黑白化,并有大量噪点

#import "GPUImageLowPassFilter.h"                   //用于图像加亮
#import "GPUImageHighPassFilter.h"                  //图像低于某值时显示为黑


#pragma mark - 视觉效果 Visual Effect

#import "GPUImageSketchFilter.h"                    //素描
#import "GPUImageThresholdSketchFilter.h"           //阀值素描,形成有噪点的素描
#import "GPUImageToonFilter.h"                      //卡通效果(黑色粗线描边)
#import "GPUImageSmoothToonFilter.h"                //相比上面的效果更细腻,上面是粗旷的画风
#import "GPUImageKuwaharaFilter.h"                  //桑原(Kuwahara)滤波,水粉画的模糊效果;处理时间比较长,慎用

#import "GPUImageMosaicFilter.h"                    //黑白马赛克
#import "GPUImagePixellateFilter.h"                 //像素化
#import "GPUImagePolarPixellateFilter.h"            //同心圆像素化
#import "GPUImageCrosshatchFilter.h"                //交叉线阴影,形成黑白网状画面
#import "GPUImageColorPackingFilter.h"              //色彩丢失,模糊(类似监控摄像效果)

#import "GPUImageVignetteFilter.h"                  //晕影,形成黑色圆形边缘,突出中间图像的效果
#import "GPUImageSwirlFilter.h"                     //漩涡,中间形成卷曲的画面
#import "GPUImageBulgeDistortionFilter.h"           //凸起失真,鱼眼效果
#import "GPUImagePinchDistortionFilter.h"           //收缩失真,凹面镜
#import "GPUImageStretchDistortionFilter.h"         //伸展失真,哈哈镜
#import "GPUImageGlassSphereFilter.h"               //水晶球效果
#import "GPUImageSphereRefractionFilter.h"          //球形折射,图形倒立

#import "GPUImagePosterizeFilter.h"                 //色调分离,形成噪点效果
#import "GPUImageCGAColorspaceFilter.h"             //CGA色彩滤镜,形成黑、浅蓝、紫色块的画面
#import "GPUImagePerlinNoiseFilter.h"               //柏林噪点,花边噪点
#import "GPUImage3x3ConvolutionFilter.h"            //3x3卷积,高亮大色块变黑,加亮边缘、线条等
#import "GPUImageEmbossFilter.h"                    //浮雕效果,带有点3d的感觉
#import "GPUImagePolkaDotFilter.h"                  //像素圆点花样
#import "GPUImageHalftoneFilter.h"                  //点染,图像黑白化,由黑点构成原图的大致图形


#pragma mark - 混合模式 Blend

#import "GPUImageMultiplyBlendFilter.h"             //通常用于创建阴影和深度效果
#import "GPUImageNormalBlendFilter.h"               //正常
#import "GPUImageAlphaBlendFilter.h"                //透明混合,通常用于在背景上应用前景的透明度
#import "GPUImageDissolveBlendFilter.h"             //溶解
#import "GPUImageOverlayBlendFilter.h"              //叠加,通常用于创建阴影效果
#import "GPUImageDarkenBlendFilter.h"               //加深混合,通常用于重叠类型
#import "GPUImageLightenBlendFilter.h"              //减淡混合,通常用于重叠类型
#import "GPUImageSourceOverBlendFilter.h"           //源混合
#import "GPUImageColorBurnBlendFilter.h"            //色彩加深混合
#import "GPUImageColorDodgeBlendFilter.h"           //色彩减淡混合
#import "GPUImageScreenBlendFilter.h"               //屏幕包裹,通常用于创建亮点和镜头眩光
#import "GPUImageExclusionBlendFilter.h"            //排除混合
#import "GPUImageDifferenceBlendFilter.h"           //差异混合,通常用于创建更多变动的颜色
#import "GPUImageSubtractBlendFilter.h"             //差值混合,通常用于创建两个图像之间的动画变暗模糊效果
#import "GPUImageHardLightBlendFilter.h"            //强光混合,通常用于创建阴影效果
#import "GPUImageSoftLightBlendFilter.h"            //柔光混合
#import "GPUImageChromaKeyBlendFilter.h"            //色度键混合
#import "GPUImageMaskFilter.h"                      //遮罩混合
#import "GPUImageHazeFilter.h"                      //朦胧加暗
#import "GPUImageLuminanceThresholdFilter.h"        //亮度阈
#import "GPUImageAdaptiveThresholdFilter.h"         //自适应阈值
#import "GPUImageAddBlendFilter.h"                  //通常用于创建两个图像之间的动画变亮模糊效果
#import "GPUImageDivideBlendFilter.h"               //通常用于创建两个图像之间的动画变暗模糊效果


#pragma mark - 尚不清楚
#import "GPUImageJFAVoroniFilter.h"
#import "GPUImageVoroniConsumerFilter.h"
  • tip8: H264硬编码
    假设用<a
    href=”https://github.com/Bilibili/ijkplayer"&gt;ijkplayer
    </a>使用硬解码, 一句代码即可.

// 开启硬解码
[option setPlayerOptionValue:@"1" forKey:@"videotoolbox"];

硬编码的动场景: 我们要用主播的视频数据传送给服务器

由此录像头来收集图像,然后用收集到的图像,通过硬编码的法门展开编码,最后编码后的数据将那个构成成H264之码流通过网传遍。

摄像头采集图像, iOS系统提供了AVCaptureSession来收集摄像头的图像数据.
项目面临自是直用<a
href=”https://github.com/BradLarson/GPUImage"&gt; GPUImage
</a>中的GPUImageVideoCamera,
直接设置GPUImageVideoCamera的代办即可,
在那摄方- (void)willOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer;展开数据编码即可.

牢记一点:
不管是系自带的AVCaptureSession还是GPUImageVideoCamera募集到之数还是免经过编码的CMSampleBuffer.

下一场拿征集到之数量, 用iOS开放之VideoToolbox展开硬编码.
关于VideoToolbox硬编解码网上广大科目, 当然最好是看Apple的法定文档,
如果只是硬编码, 看本身之类别即可.

重大之编码函数(来自YOLO直播负责人的开源项目<a
href=”https://github.com/Guikunzhi/BeautifyFaceDemo"&gt;
BeautifyFaceDemo </a>)

void didCompressH264(void *outputCallbackRefCon, void *sourceFrameRefCon, OSStatus status, VTEncodeInfoFlags infoFlags,
                     CMSampleBufferRef sampleBuffer )
{
    if (status != 0) return;
    // 采集的未编码数据是否准备好
    if (!CMSampleBufferDataIsReady(sampleBuffer))
    {
        NSLog(@"didCompressH264 data is not ready ");
        return;
    }
    ALinH264Encoder* encoder = (__bridge ALinH264Encoder*)outputCallbackRefCon;

    bool keyframe = !CFDictionaryContainsKey((CFArrayGetValueAtIndex(CMSampleBufferGetSampleAttachmentsArray(sampleBuffer, true), 0)), kCMSampleAttachmentKey_NotSync);

    if (keyframe) // 关键帧
    {
        CMFormatDescriptionRef format = CMSampleBufferGetFormatDescription(sampleBuffer);
        size_t sparameterSetSize, sparameterSetCount;
        const uint8_t *sparameterSet;
        OSStatus statusCode = CMVideoFormatDescriptionGetH264ParameterSetAtIndex(format, 0, &sparameterSet, &sparameterSetSize, &sparameterSetCount, 0 );
        if (statusCode == noErr)
        {
            size_t pparameterSetSize, pparameterSetCount;
            const uint8_t *pparameterSet;
            OSStatus statusCode = CMVideoFormatDescriptionGetH264ParameterSetAtIndex(format, 1, &pparameterSet, &pparameterSetSize, &pparameterSetCount, 0 );
            if (statusCode == noErr)
            {
                encoder->sps = [NSData dataWithBytes:sparameterSet length:sparameterSetSize];
                encoder->pps = [NSData dataWithBytes:pparameterSet length:pparameterSetSize];
                NSLog(@"sps:%@ , pps:%@", encoder->sps, encoder->pps);
            }
        }
    }

    CMBlockBufferRef dataBuffer = CMSampleBufferGetDataBuffer(sampleBuffer);
    size_t length, totalLength;
    char *dataPointer;
    OSStatus statusCodeRet = CMBlockBufferGetDataPointer(dataBuffer, 0, &length, &totalLength, &dataPointer);
    if (statusCodeRet == noErr) {

        size_t bufferOffset = 0;
        static const int AVCCHeaderLength = 4;
        while (bufferOffset < totalLength - AVCCHeaderLength)
        {
            uint32_t NALUnitLength = 0;
            memcpy(&NALUnitLength, dataPointer + bufferOffset, AVCCHeaderLength);
            NALUnitLength = CFSwapInt32BigToHost(NALUnitLength);
            NSData *data = [[NSData alloc] initWithBytes:(dataPointer + bufferOffset + AVCCHeaderLength) length:NALUnitLength];
            bufferOffset += AVCCHeaderLength + NALUnitLength;
            NSLog(@"sendData-->> %@ %lu", data, bufferOffset);
        }

    }

}

简历的评级标准

从今“鹅厂”(腾讯)筛选的角度与同大气正规朋友交流的结果来拘禁,各店之观角度大致相近:看简历时会见根据绝关怀的、分值体系最高的情来拓展高效筛。所以自然要是注意将筛选者关注的、含金量高之情在显眼的岗位(靠前都篇幅较丰富)。

感触

尽管这类型是只山寨的, 高仿的, 但是还已经坏巨大了.
具体的细节要用大家好失去看我之门类源码.
短短几千配还真的说不清这么多之文化点. blog的篇章名字说了凡初窥,
还真的只是初窥, 视频直播中的坑太多. 且行且珍惜…

tip: 本文理论知识部分, 采集自网络.
请记住一句话talk is cheap show me the code, 重点在于Demo类型本身.
理论有自只是一个挑夫和总结者…

1.核心素:产品实习经历(60细分)

活实习经历得是主要,也是具有简历筛选者会首先眼睛还唯一寻找的始末。

当,不同实习的含金量也富有较生区别,具体来说,简历筛选者会起实习公司、业务方向、实习时长等角度来概括评价。

列编译环境

Xcode7(及以上)
极是将项目走在真机上. 有些地方模拟器是无支持的, 也看不到任何成效的,
比如硬编码/智能美颜等, 这些功能模块, 我做了限制的, 需要真机状态才能够上行.

2.核心因素:项目(15分开)

合作社以筛简历的长河被,对品种实际上看得连无是好细心,尤其是在你的见习经历很充分的情下。因为了解项目的目的是圈君在学堂的知识背景及辩护积累,如果实习那栏实在没什么可圈的,只好退而求其次,看一下校内积累。

花色下载地址

<a
href=”https://github.com/SunLiner/MiaowShow"&gt;GitHub下载地址&lt;/a&gt;
要star和fork. 后续的bug会持续创新至github上的.
来问题得以在简书给自己留言/私信, 或者微博(简书个人及篇页有自家之微博)私信我.

7月9日黎明更新: 项目都合龙视频直播推流
blog地址详解<a
href=”http://www.jianshu.com/p/8ea016b2720e"&gt;快速集成iOS基于RTMP的视频推流&lt;/a&gt;

3.课外(15分)

比方说,实习及花色算是学校在中之望族正派,可强调积薄发,是王道心法的话,那么课外活动这同一宗大子类可以算是剑走偏锋的霸气心法,如果得以磨练出单名堂,那么该影响力还会见愈于手握几客好之见习(简历分值60分割)。即使一般可以水平,也可以体现出爱慕产品,努力折腾和积累,往往会用到得的分值。

联系我

<a href=”https://github.com/SunLiner"&gt;github&lt;/a&gt;

<a
href=”http://www.weibo.com/5589163526/profile?rightmod=1&wvr=6&mod=personinfo&is\_all=1"&gt;微博&lt;/a&gt;

<a
href=”http://www.jianshu.com/users/9723687edfb5/latest\_articles"&gt;简书&lt;/a&gt;

简历内容之只是准备点

翻阅产品类似图书。迅速了解产品经营职务,积累基本产品理论知识。

与会校园产品社团、校外产品沙龙等移动。交产品人,学活知识,拓宽产业视野。

创办一个本校的成品经营社团。需求把握,产品走谋划,组织制作,人脉资源整合。

刊产品专栏、科技评价。互联网产业思维,逻辑思考能力,文字表达能力。

有针对地准备产品笔、面试题。超强的求职针对性,笔、面试应试能力的快提升。

备各种产品类作品。产品合计锻炼,产品基本技能培养。

营业微信公众号(或微博)。产品一定,用户需要分析,内容运营,用户运营。

到各级大互联网企业之产品大赛/创业大赛。产品设计、市场分析、需求分析、产品稳定、团队管理。

失去互联网企业见习。认可度最高的产品更、真实工作环境暨情节。

同人家一起进行创业活动。真实的商海条件,全方位的力培训。

吓简历的8个因素

情节框架明确,形式朴实清晰。

中心信息但出现必需项。

春风化雨信息挑亮点写。

见习经历细节进行。

校园经历而跟PM相关。

品种阅使生特点。

得奖情况写来分量的。

综合信息紧跟JD。

易读。简历的根本职责是飞有效地传递信息,而未简单地经验堆叠。面试官阅读每一样份简历的流年还颇紧缺,在几乎眼睛内要让面试官迅速掀起你若发挥的重大,并针对你生出一个横了解,很据“眼缘”。你的有着风采只能集中在同一摆放A4张上,没有人见面错过读书过同样张纸之外的情(仅对互联网)。简历内出色的有些应加粗或高亮,方便人家一眼看出。但注意不要影响电子版和纸质版阅读时的一体化效益,多要就凡管根本。在你的各国一样段子更前,列有而快捷提取的第一词,对首要词感兴趣之人口会晤顺着读下来的。

突出“我”。面试官无在一齐而的品种完全进展,他们重新体贴而以列面临任什么岗位,你当类型被做了什么,因为你,项目有了什么变化。多用动作句式:多用动词开头,突出“我”的干活与作用。比如,我顶××××,取得了×××的实绩,数据及发×××的更动。数字化:尽量将公的孝敬用数字直观表示,面试官不爱好文字游戏。数据永远是最精的。动作列表:在叙述一个类型被“我”的行事时,多用1、2、3召开总结排版。例如,1.访谈×名叫用户,并写用户调研报告。2.顶住产品设计并推动产品达丝。

职涉及。倘您的简历很精美,却跟求职岗位涉及不坏,那照试官只能说很惋惜了,你很不错但切莫是咱们要摸索的丰姿。列有一致摆放求职岗位的技术词汇表,琢磨每个词之切切实实意思,并同自家经历相对比,努力将抽象的技艺关键词与友爱之经历形成联系。

简历迭代策略

封内测阶段。把简历关自己深谙的先生、毕业的学长学姐(HR更好),让对方评论与打分。根据报告及打分数据,迭代1~3独版本,至得封测较好之祝词为止。

聊范围公测阶段。选择部分不重要之庄,投递简历,统计简历发出数、简历打开数、面试邀请次数、实习Offer收获次数。根据上述数据与电话回访,迭代1~3个版本。

全网公测阶段。针对自己喜爱、重要之商号,进行全网投递,随时总结。

第3段 准备好作

竞品分析报告

编排竞品分析报告,可天天了解竞争对手的活和市场动态,掌握对手的成品策略、资本背景,保持对市场的灵敏,为自身制定产品决策提供参考、获得新的切入点,快速自我调整并保持优势。通过竞品分析,可了解竞争产品的战略性、定位及容许一发的动作,并以这个来制订合理之本身提高计划。

竞品可以分成以下三像样:

直白竞争类:产品定位(目标方向、目标用户用户需、产品功能等)相似,这同一接近是最轻找到为最为要常关心的竞品。

间接竞争类:产品之靶子人群或者相似,但是意义要求面不太一致;或者产品的商业模式不同,但任何内容相似。

绝密竞争类:行业相近、业务类似之店家产品。

竞品分析目的

不等竞品分析报告分析主要不同,具体的重视也截然不同,有的偏向于头行业调研或小卖部发展,有的偏向于功能对比,有的可能偏于现实职能的化解方案。

获消息渠道

编写竞品分析报告,获得消息之沟多,主要出以下几种:

庄之季报、年报。

供销社的官网(包括版本更新、人才招聘、最近情报等)、产品论坛(用户的反馈、客服的对答等)。

艾瑞、易观国际等数码网站的本行分析报告等。

行媒体的情报、论坛或者分析文章等。

自对方公司、相关水道、市场、运营等部门取得对方内部的音讯相当。

当用户,使用对方产品,进行客服或技术咨询等,获取想询问的信(特别是产品实现规则等方面)。

找对方产品用户(核心用户、普通用户等)进行访谈等。

百度指数、alexa.com、Google
adplanner等。

浅析维度

行分析:了解行业之总体状况,如产品市场占比、包含盈利模式及代表性产品、目标用户区别等。

盈利模式:包括产品之盈利模式,盈利状态、运营的资金投入(可以同拖欠企业外产品线拓展对比,有时可以肯定欠产品是否是企业的进化中心)。

出品技术:技术是不是前沿、对于用户迅速搭的下压力承受能力、稳定性、技术框架等(这点对许多产品经理来说比难以)。

战略层:产品稳定,目标用户是安(用户特征:地域距离、年龄差别、学历差异、收入距离等)?核心要求是啊?想给用户从成品受获什么?

克层:目标用户之系需求发生安?应该出什么样成效?

结构层:流程结构,用户如何达到某个页面,并且在他们开得了事情后能够去啊地方(可以吃起产品之效益结构图)?

框架层:页面布局,按钮、表格、照片及文书区域的职位,是否达标这些因素的尽老效益。

见层:产品UI和UE(产品在互动上、视觉上的体会)。

数量解析:包含盈利状态、推广情况、用户群体覆盖面、市场占有率,总登记用户量/装机量/转化率/用活/在线时长/等。

分析方法

SWOT分析法。就是将竞品的优劣势等表达出来,但待注意简洁,避免超负荷分析、过度复杂。

消息相比。将用的解析维度罗列出,包括:目标用户、盈利模式、核心力量(功能的有管,功能的贯彻差异、用户满足的期望值)、UI和UE。

十字交叉法(2×2象限图)。此种方式可简单、直观地显现一些对待等,在象限坐标的选料取上,可以因人而异。

进行竞品分析时,可以不时用5W1H底法(What、Why、Where、When、Who、How),比如分析一个作用时,功能是啊?解决了啊问题?使用状况是呀?何时使用?使用多久?用户群是何人?问题是啊?通过什么艺术解决的?在这个基础及,可以针对各国一样步进行质询和自己想。如对于Where,质疑:为什么是此以状况?自我想:还有什么样状况可以以?

产品分析报告

第一栽:层次分析法

战略层:产品目的,用户需,经营者与用户想打产品受到获什么。

克层:规格功能,某个功能是否该成为该产品之力量有,各种力量的结措施是如何的。

结构层:流程结构,用户如何到某页面,并且他们走了事流程后能去何方。

框架层:页面布局,按钮,表格和文书区域之岗位,是否上这些要素的极特别功能。

表现层:视觉设计,产品图片,文字的表现样式、交互形式。

老二栽:递进分析法

出品之一定是呀?

目标用户是何许人也?

用户采取的状况是呀?

对诺场景下的需要是怎么的?

该需求的兑现步骤闭环是什么的?每步骤下还生什么维度?

活发展前景如何,产品即居于什么流?

市场容量、市场变化趋势、技术基础是什么的?

活之易用性、功能完整性、用户体验等什么?

如果开改进方案,添加什么功效?优化哪些职能?优先级如何?

活定位

活定位是极端要紧之题目,产品定位决定了对象用户群体,决定了用户之采用状况和需。

产品之永恒决定了挪运营、推广、调研之群体。

出品之定势也包含公司内部对活的战略地位,产品不同的战略定位也殊,如部分产品稳定为赚,有的产品稳定为塑造用户基础,有的产品稳定为形成体验闭环。不同的战略地位,决定产品的着力点和中心也不比。

活一定决定了出品功效的优先级,也是分析产品遇到问题常常重要之控制根据。

活定位不是不变的,会趁试错、市场转、用户增加、习惯漂移、技术进步相当因要变更还是追加。

对象用户

出同样慢产品前,需要固定产品都面向哪些用户,也就是目标用户是何许人也。很少来成品是相符有用户之,必须依据产品定位确定目标用户,同时于条分缕析时要以不同之对象用户进行特色归类,方便满足不同需求状况。

问询了不同需求下,我们尚用分析需求的靶子用户。某个需求到底是满足谁的求,是普通用户,还是正式用户之急需?这需要我们本着已落到之需做更的辨析。通常咱们遂目标用户为活之要涉众,从涉众利益之角度去分析,即用户需求增大商业目标,也堪进行反推,这样咱们便会找到需要的劳务对象。比如财务软件的首要涉众是店业主,而无是公司内的先生,老板想看怎样的财务报表,决定了会计要什么做账。

于产品用户,一般的话可以划分做出以下几种植情形:高端用户和低端用户,学生用户和白领用户,活跃用户以及不欢用户,初级用户、普通用户和高等用户。在骨子里情形中,用户的特征信息包含非常多,几乎任何一个风味因素的差还见面导致用户对成品应用的行为习惯不同,如何进展中用的用户分类为?

人口统计学属性的归类方法可较直观地展现来用户属性差异,从而得到肯定之细分结果,这种划分方式几乎能适用于任何一样款产品。虽然这分类方法能够准确地得分类数据,但是对于用户需的设想相对较少,划分之后的用户群相对于产品的永恒精确度较逊色。

为更好地冲用户要求特点来取得用户划分结果,在人口统计学属性划分的基本功及衍生出了多维度用户特征研究方式。多维度的分类方法,就是当设想产品对用户的束缚因素跟用户自己特点的素后开展筛,获得第一之维度因素来划分用户。一般的话,基本的特性包括用户年龄、性别、计算机应用背景、收入水平、用户对于该产品之利用更与偏好、使用目的等元素。而产品对用户的自律因素概括形状的规定、颜色之不行更改性、按键的唯一性等。

应用状况

使状况是千篇一律栽更连贯地气的剖析及讲述用户需的章程。它应有所如此的布局:“在某个时间(when),某某地点(where),周围出现了一些事物时(withwhat),特定项目的用户(who)萌发了某种欲望(desire),想经过某种手段(method)来满足欲望。”这几沾消息实际统一地讲述了需来的环境。从这些条件信息方可分析产生诱导需求的口径和需要有时之条件极。

要求分析

于满足急需的经过中,需分析以下4个点的题目。

源点:企业的现状。

目的地:未来的结果。

驱动力:问题、某种场景或状态。

阻力:成本多少?需要付出什么代价?

浅析这4个方面问题时常,应特别注意两触及。

1)我们得了解的无是实情,而是用户对于这些点的“认知”。这些体会可能无是客观事实,但是认知决定了她们的一言一行。

2)用户呈现有“显性需求”,需要针对源点和目的地进行认知,并且驱动力的强度要多超出阻力的强度。

产品市场分析

时下同类产品在市场高达的光景,包括品牌、质量、价位、产品附加值等。

眼前同类产品市场竞争情况分析,主要评估时之竞争档次跟市场空间。

活之性价比、市场营销手段、产品综合优势和市场同类产品的对立统一。

活之易用性

易见。靠的是功力容易给发觉,让用户能够一眼望他惦记使的功力,即所谓的“所思就算所表现,所展现就所得”。这要我们统计分析用户之操作效率,把极常用之功用在最显著的职。

易学。易学就是活效果学起来容易,上心灵。业界流行一种说法:好之产品设计不欲支援手册。因为好的计划能叫客户一看便理解怎样去操作,减少查看帮助手册的次数。这需要产品设计师熟悉用户操作习惯,从界面提示、名称术语等地方下功夫。

易操作。纵然操作起来顺手、快捷。易操作性和制品的切实成效相关,但也有局部则可以参见,比如尽量在一个页面就同样模拟功能操作,避免切换页面;提供默认的操作选项和数目,减少用户的输入次数;避免频繁切换鼠标、键盘操作,等等。比如用吃用户输入手机号的输入框,默认帮用户调起数字键盘;比如微信支付当用户输入六位密码后默认帮用户提交请求而不要还点击“确认”按钮。

第4节 笔试和面试

专业面定位

专业面的面试官,往往是于呢好引的事体团队招人。所以,你当店堂开得好不好,你也集团创办的价几近无多,会一直影响至面试官的个人名誉和团体成绩。也正是这层高补关联,让许多专业面的面试官更加认真、刨根究底地把求职者了解得透透,从而保证好做出科学的裁定。同时鉴于他会变成您的直上司,所以他本着而个人方面是否欣赏也会针对结果有决定性的用意——这就算是所谓的气场是否适宜,他会晤实际地考虑自己的社中是否少你如此的丁。

现实的准备工作,可以考虑以下几点:

庄和成品准备:需要针对目标企业的管理人员、近期战略性与重大新闻有一个盖的打听,做到心中有数,这是最核心的。同时最好对目标企业之香产品,进行一些针锋相对深入的研究暨揣摩。所有这些准备,都能给你在面试中之表达和思考具有更强之针对和贴近感。

简历准备:必不可少的面试前准备项还包站于面试官视角,对好简历的各国一样项进行精心深入之问话,问大问细,把各种类型细节以及实证数据整理清楚。

面试基本问题准备清楚:一些例行的成品给试题(比如:“你怎么当温馨适合做产品经营?”“请分析你顶常用之出品”等)是过多店还见面咨询底,一定要是提早想知道,结合自己特质,给出一个逻辑性强、论证有理、情感及打动人的答案,最好做到脱口而出。

面试官信准备:下面还享受一个大抢眼的专业面准备方法。因为单面的面试官可能就是是您群面时的面试官之一,所以当群面结束时,你无与伦比好鼓起勇气和面试官或者HR攀谈一番,收集一下对方的人名、负责的活、微博号、岗位等消息。

随意提问环节

反映学习热情:比如,“对急需的精准把握,是一个成品经营的主导能力,但是用户之需而真正模糊化和个性化,把握起来有自然难度。我专门想放你分享一下自己于这个题材及之思索和阅历,谢谢。”

反映对商厦的倚重:比如,“用腾讯新闻就款产品非常老了,很喜爱,很多活细节还计划得对。请问,腾讯公司内这种过机构的成品享受活动多吗?假如在贵公司,会发出机遇与腾讯新闻之活经营基本上交流为?”

反映面试官的力量:比如,“通过公的微博,我询问及公当贵公司打车相关的作业很遥远了,而近日以互联网出行领域,新的局以及初的活,都十分多。而自我专门想请教您的是,您看像滴滴出行这样的互联网出行创业企业及风俗习惯的垄断型出租车企业竞争起来,有啊优势以及劣势?谢谢。”

第5节 笔试真题解析

第6章节 产品多面题

第7节 一直面专业面题

出品上线后,最需关怀的指标来什么

第一像样:流量类指标。

总PV:每日总页面浏览数,反映网站的吃欢迎程度。

平均浏览页面数:用户每次登录查看页面数量,反映网站的用户价值高低。

平均访问时长:用户每次登录停留时长,反映网站的用户价值高低。

流量的每沟来占比较:总流量中,不同渠道的占有比分别是小。可以用优化SEO和SEM,提升转化率。

跳出率。

退出率。

次类:文章类指标。

浏览量最高的章:反映用户更欣赏什么项目的篇章,从而来针对地多此类文章。

浏览量最低的章:反映用户比头痛什么种的文章,从而发出对地减少此类文章。

浏览量最高的栏目/频道:反映用户更爱好什么项目的栏目/频道,从而加重此类栏目/频道。

浏览量最低的栏目/频道:反映用户比头痛什么种的栏目/频道,从而削弱此类栏目/频道。

每日发表文章数:反映网站的运营状况。

文章流量之流年分布:反映用户还爱以啊时间段登录网站,从而发出针对性地调文章刊登时。

日用户评价数:反映用户的介入程度。

老三像样:用户类指标。

天总UV:每日总独立访客数,反映网站的于欢迎程度。

挂号用户数。

新用户占比。

明朝留存率、周留存率。

日/月活蹦乱跳用户数。

季好像:商业类指标。

天广告点击次数。

引入新广告品牌是否是知名品牌。

怎样进行产品改版

改版前,主要用以下三沾开展改版的评定:

意征集:集中分析和拍卖用户之各种报告,整理和包括出用户抱怨比较多的功能模块、页面布局。

数码解析:通过监测各页面模块的点击数计算各国模块的用户黏性,从而发现需要重构的触发。

问卷调研:从用户的角度出发,去引导其论述他们以成品中想要开的事情以及遇的紧。

改版后,主要用于下四触及开展改版评定:

整流量分析:从流量方向变化、来源构成、去往分布变化等角度来分析。注意观察流量变动之默默原因,但需要专注的是,要排除由于改版后顺势而推进的营业移动造成的流量短期增大的场面。

用户黏性分析:从用户流失率、存留率、访问数分布等指标来分析。

页面效率分析:分析页面的点击效率(总体、各分页面)、点击黏性(改版前后页面或内容的人均点击次数差异)等指标来分析。

经过用户调研、微博用户举报、产品汇报等路线,收集用户对新改版页面/功能的满意度、口碑及评价,并找有可以继承优化的触及。

经眼动测试与可用性测试,了解用户指向改版后页面/功能的动状态。(眼动测试,就是经过视线追踪技术,监测用户在羁押特定对象时之双眼运动和注视方向,并开展相关分析的长河。过程遭到需要使用眼动仪和有关软件。早期人们要运用拍摄、电影拍摄等方法来记录眼球活动情况,现在运眼动仪等先进工具,可以得越来越规范的笔录。)

业内人士访谈是老有因此之计,竞品的改版动向也是边反映产品改版效果的一个地方。行业举报的来自可以是标准的访谈,也得来同行/高级用户的朋友围。

广告变现价值之上升为是鉴定改版成功为的关键因素。需要针对数码指标、广告主来源(是否引入了高端品牌)、实际收入对比三上面综合考量。

什么样做需求的预先级排序和版本规划

率先级:跨越一切高级压迫:boss的要求!

亚层:版本的重大功用以及商业化。

其三层:明显得增长日活/拉新当之优化及调动类需求。

季层:尝试性功能和增强营业效率等。

暨开发人员闹僵了什么样处理

张数据:拿出有关数据来佐证需要变更的功能的必要性。数据可以是页面点击数、用户黏性等。

谈实际:在数码论证的功底及,阐述项目设计、目标和负责人预期,并结所而重新改的效能点开展求证。论证修改后会见获双方联合赢的良好效果。

当让步:站在技术之角度,首先要解技术拒绝再改之原委。在成立界定外做适当让步,如项目延迟时间等,关键是路有输出并保证质量。

进化沟通:如果基础的维系无效,不妨以两者leader拉入到关系过程遭到,通过邮件的计实时沟通,条理清晰地陈述己方观点。

首先批判用户如何赢得

冷启动:初创店是因为产品最初数据为空或者数据量太少造成所要的数据量达不至要求,第一批用户需要企业因接近“肉搏战”的点子去搜寻、吸引或导入。它产生如下热点:

率先,通过上内容要熟人推广,形成口碑传播的根底。

其次,减少市场推广的资费及难度,从而降低项目风险。

其三,控制产品发布节奏,为高效迭代赢得时机。

热启动:公司通过大量资源投入为产品快速启动,特点如下:

率先,借助公司平台一直导入用户。

次,通过资金力量开展广告还是补贴类推广,为占领市场赢得时机。

出品于同行抄袭如何处理

对技术和彼此的剽窃,诉的法庭是无比好的解决办法。而对于模式及之剽窃,最为根本之是集中优势建立基本资源壁垒,抓紧时间抢占市场。

立技术壁垒:例如两贱产品以做搜索,公司A打算抄袭公司B,但是公司B之前曾经有充分丰富的技艺积淀,可以以需要识别、相关性、检索速度还做到远超行业其他对手,那么企业A即使举行了单相同的检索,也无法和店B的实际感受相比。

建资源壁垒:产品平台达成存有的资源,可以包括但非压制独家信息内容、服务等,例如公司S和商店T都开电商,公司S打算抄袭公司T的极速物流模式,但是公司T有重复多的商品可以供,那么企业S就算是可以极速,但是因可出售的事物不见杀多,用户要再愿意失去商品还丰富的铺T买。

起用户口碑壁垒:这或多或少股本就不如而极致为难立,尤其是当用户口碑形成后,用户就是会理所当然地流向还得人心的出品,那么相应的用户既可为企业提供再多之资源,也足以供更多用户数据用于技术研发。

第8节 二面素质面题

什么判断一个出品之好和坏

首先步:定评判“好坏”的角度。一个产品,在功利相关人群的归类及,涉及C端用户、B端商家、开发者、运营者、背后投资者(企业)、竞争对手、其他人。站在不同角色看同一个产品,标准未雷同,结论为就算未一致。

第二步:定分析“好坏”的正规化。如果是立于C端用户角度,标准自然有夫产品是否满足刚需、有没有产生喜怒哀乐功能、体验是否可以、产品价是不是足够好等许多维度。

本着一个APP进行产品方面的品

定点分析:目标用户群体是孰?为她们排忧解难一个呀问题?

急需分析:用户要求频度和强度如何?产生需要的场面有哪些?

市场分析:市场层面多特别?市场现状如何?市场之开拓进取大势如何?

竞品分析:有什么竞品?分别占大半格外的市场份额?各竞品的切入点,有怎样区别?

视觉分析:整体色调如何?各种图标设计得如何?

相分析:整体导航方便啊?产品的各种关键意义,触达效率如何?

功能分析:有哪主要作用?分别举行得争(好/不好)?有怎样改进之空中?(重点)

营业分析:产品之情节饱满吗?质量高呢?

第9段HR面试题你做产品经营发出啊优势

说各级一点优势时,都尽心尽力使结PM的行事内容和能力要求来讲,以便更好地见自己对PM岗位的垂询。

极端好叫起显著、正面的回应,不宜太过谦虚,不宜富含含糊糊。

说每一点优势时,最好能组成我经验,列举一个简而与此同时生出代表性的例证。

君以为温馨最好充分之弱点是啊

回这道题的如果掀起个别个第一:①克认得自己,②力所能及圆满自己。首先,我们要讲一个实事求是的短。并且这毛病不会见硌如达到所说之禁区。谈就于正的败笔/有拨云见日计划来纠正的欠缺。尤其是公可知尽量论证在最近就算可解决之通病。谈一个动公的独到之处改正的弱项,顺便带起一个长。其次,举个实际的例子,来证实是毛病确实影响了好的活着与劳作。然后,谈谈您方或者即将如何改这个毛病。既然能够认识及自己的贫,那么积极改变其就是劈试官非常乐见的尊重态度。

第10段 如何度过试用期

第11章BAT 2015年暑期实习生招聘真题解析

第12段 产品总监职业生涯访谈