精华内容
下载资源
问答
  • LFLiveKit详解

    千次阅读 2017-03-22 15:14:28
    我一直就想当一个可以不动脑的程序猿,于是我决定给大家翻译一遍LFLiveKit,以便争取更多像我一样的人。  首先LFLiveKit支持rtmp,flv两种流类型,LFLiveSession是整个库文件的入口,包含有那么几个属性 @property ...

    感谢原作者:点击打开链接


        首先LFLiveKit支持rtmp,flv两种流类型,LFLiveSession是整个库文件的入口,包含有那么几个属性

    @property (nullable,nonatomic, weak) delegate;//代理方法 稍后介绍
    
    @property (nonatomic, assign) BOOL running;//控制直播是开还是关的状态
    
    @property (nonatomic, strong,null_resettable) UIView *preView;//视频图层
    
    @property (nonatomic, assign) AVCaptureDevicePosition captureDevicePosition;//摄像头方向
    
    @property (nonatomic, assign) BOOL beautyFace;//美颜开关
    
    @property (nonatomic,assign) BOOL muted;//静音开关
    
    @property (nullable,nonatomic, strong,readonly) LFLiveStreamInfo * streamInfo;//控制直播流的信息
    
    @property (nonatomic,assign,readonly) LFLiveState state;//直播流上传的状态
    
    @property (nonatomic,assign) BOOL showDebugInfo;//
    
    @property (nonatomic,assign) NSUInteger reconnectInterval;//重连间隔 
    
        @property (nonatomic,assign) NSUInteger reconnectCount;//重连次数
    
    代理方法
    
    - (void)liveSession:(nullable LFLiveSession *)session liveStateDidChange:(LFLiveState)state; //监听直播的状态
    
    - (void)liveSession:(nullable LFLiveSession *)session debugInfo:(nullable LFLiveDebug*)debugInfo;
    
    - (void)liveSession:(nullable LFLiveSession*)session errorCode:(LFLiveSocketErrorCode)errorCode;
    
    初始化方法
    
    - (nullable instancetype)initWithAudioConfiguration:(nullable LFLiveAudioConfiguration*)audioConfiguration videoConfiguration:(nullable LFLiveVideoConfiguration*)videoConfiguration liveType:(LFLiveType)liveType //初始化session的方法 三个参数分别是 视频 音频 和 流类型设置
    
    - (void)startLive:(nonnull LFLiveStreamInfo*)streamInfo;//开始直播
    
    - (void)stopLive;//停止直播
    
    demo
    
    //初始化preView
    
    -(UIView *)livingPreView{
    
             if (!_livingPreView) {
    
                      UIView *livingPreView = [[UIView alloc]initWithFrame:self.view.bounds];
    
                      livingPreView.backgroundColor = [UIColor clearColor];
    
                      livingPreView.autoresizingMask = UIViewAutoresizingFlexibleWidth|                              UIViewAutoresizingFlexibleHeight;
    
                    [self.view insertSubview:livingPreView atIndex:0];
    
                    _livingPreView = livingPreView;
    
                                     }
    
           return _livingPreView;
    
    }
    
    //初始化session
    
    -(LFLiveSession *)session{
    
                  if (!_session) {
    
                  //采用默认的音视频质量 LFLiveAudioConfiguration(音频设置)                  LFLiveVideoConfiguration(视频质量)
    
                  _session = [[LFLiveSession alloc]initWithAudioConfiguration:    [LFLiveAudioConfiguration defaultConfiguration] videoConfiguration:[LFLiveVideoConfiguration defaultConfigurationForQuality:LFLiveVideoQuality_Medium2] liveType:LFLiveRTMP];
    
                 //设置代理
    
                   _session.delegate = self;
    
                 _session.running = YES;
    
                 _session.preView = self.livingPreView;
    
                                 }
    
                return _session;
    
    }
    
    - (void)viewDidLoad {
    
                [super viewDidLoad];
    
                LFLiveStreamInfo *stream = [[LFLiveStreamInfo alloc]init];
    
               stream.url = @"rtmp://10.130.28.4410.130.28.44"
    
               self.session.beautyFace = yes;
    
               [self.session startLive:stream];
    
               [self setup];
    
    }


    展开全文
  • LFLiveKit推流框架

    千次阅读 2017-02-28 10:44:44
    转自:https://github.com/LaiFengiOS/LFLiveKit LaiFeng IOS Live Kit,H264和AAC硬编码,支持GPUImage美观,rtmp传输,弱网络丢帧,动态切换速率 ...LFLiveKit is a opensource RTMP streaming SD

    转自:https://github.com/LaiFengiOS/LFLiveKit


    LaiFeng IOS Live Kit,H264和AAC硬编码,支持GPUImage美观,rtmp传输,弱网络丢帧,动态切换速率


    LFLiveKit

    icon~

    Build Status  License MIT  CocoaPods  Support  platform 

    LFLiveKit is a opensource RTMP streaming SDK for iOS.

    Features

    •  Background recording
    •  Support horizontal vertical recording
    •  Support Beauty Face With GPUImage
    •  Support H264+AAC Hardware Encoding
    •  Drop frames on bad network
    •  Dynamic switching rate
    •  Audio configuration
    •  Video configuration
    •  RTMP Transport
    •  Switch camera position
    •  Audio Mute
    •  Support Send Buffer
    •  Support WaterMark
    •  Swift Support
    •  Support Single Video or Audio
    •  Support External input video or audio(Screen recording or Peripheral)
    •  FLV package and send

    Requirements

    - iOS 7.0+
    - Xcode 7.3
    

    Installation

    CocoaPods

    # To integrate LFLiveKit into your Xcode project using CocoaPods, specify it in your Podfile:
    
    source 'https://github.com/CocoaPods/Specs.git'
    platform :ios, '7.0'
    pod 'LFLiveKit'
    
    # Then, run the following command:
    $ pod install
    

    Carthage

    1. Add `github "LaiFengiOS/LFLiveKit"` to your Cartfile.
    2. Run `carthage update --platform ios` and add the framework to your project.
    3. Import \<LFLiveKit/LFLiveKit.h\>.
    

    Manually

    1. Download all the files in the `LFLiveKit` subdirectory.
    2. Add the source files to your Xcode project.
    3. Link with required frameworks:
        * UIKit
        * Foundation
        * AVFoundation
        * VideoToolbox
        * AudioToolbox
        * libz
        * libstdc++
    

    Usage example

    Objective-C

    - (LFLiveSession*)session {
        if (!_session) {
            _session = [[LFLiveSession alloc] initWithAudioConfiguration:[LFLiveAudioConfiguration defaultConfiguration] videoConfiguration:[LFLiveVideoConfiguration defaultConfiguration]];
            _session.preView = self;
            _session.delegate = self;
        }
        return _session;
    }
    
    - (void)startLive { 
        LFLiveStreamInfo *streamInfo = [LFLiveStreamInfo new];
        streamInfo.url = @"your server rtmp url";
        [self.session startLive:streamInfo];
    }
    
    - (void)stopLive {
        [self.session stopLive];
    }
    
    //MARK: - CallBack:
    - (void)liveSession:(nullable LFLiveSession *)session liveStateDidChange: (LFLiveState)state;
    - (void)liveSession:(nullable LFLiveSession *)session debugInfo:(nullable LFLiveDebug*)debugInfo;
    - (void)liveSession:(nullable LFLiveSession*)session errorCode:(LFLiveSocketErrorCode)errorCode;

    Swift

    // import LFLiveKit in [ProjectName]-Bridging-Header.h
    #import <LFLiveKit.h> 
    
    //MARK: - Getters and Setters
    lazy var session: LFLiveSession = {
        let audioConfiguration = LFLiveAudioConfiguration.defaultConfiguration()
        let videoConfiguration = LFLiveVideoConfiguration.defaultConfigurationForQuality(LFLiveVideoQuality.Low3, landscape: false)
        let session = LFLiveSession(audioConfiguration: audioConfiguration, videoConfiguration: videoConfiguration)
    
        session?.delegate = self
        session?.preView = self.view
        return session!
    }()
    
    //MARK: - Event
    func startLive() -> Void { 
        let stream = LFLiveStreamInfo()
        stream.url = "your server rtmp url";
        session.startLive(stream)
    }
    
    func stopLive() -> Void {
        session.stopLive()
    }
    
    //MARK: - Callback
    func liveSession(session: LFLiveSession?, debugInfo: LFLiveDebug?) 
    func liveSession(session: LFLiveSession?, errorCode: LFLiveSocketErrorCode)
    func liveSession(session: LFLiveSession?, liveStateDidChange state: LFLiveState)

    Release History

    * 2.0.0
        * CHANGE: modify bugs,support ios7 live.
    * 2.2.4.3
        * CHANGE: modify bugs,support swift import.
    * 2.5 
        * CHANGE: modify bugs,support bitcode.

    展开全文
  • 上一篇项目中拉流的框架,我们用的是ijkplayer,这里推流的框架我介绍LFLiveKit 的使用,GitHub上现在已经3000多的star量了,使用的人还是挺多的。 1.首先我们去GitHub上下载LFLiveKit.目录结构如下 1.png 2....

    上一篇项目中拉流的框架,我们用的是ijkplayer,这里推流的框架我介绍LFLiveKit 的使用,GitHub上现在已经3000多的star量了,使用的人还是挺多的。

    1.首先我们去GitHub上下载LFLiveKit.目录结构如下


    1672235-0c339b09ce83cbfc.png
    1.png

    2.运行LFLiveKitDemo到真机上(因为推流需要录屏功能,模拟器无法录屏)
    3.运行效果


    1672235-42958696d1428083.jpg
    图2.jpg

    4.demo使用方法
    ① 直接用CocoaPods集成到项目中
    ② 在ViewController中添加LFLivePreview直播的view。

    - (void)viewDidLoad {
        [super viewDidLoad];
        
         [self.view addSubview:[[LFLivePreview alloc] initWithFrame:self.view.bounds]];
    }
    
    

    LFLivePreview类中修改demo中代码如下:

    
    - (LFLiveSession*)session {
        if (!_session) {
            _session = [[LFLiveSession alloc] initWithAudioConfiguration:[LFLiveAudioConfiguration defaultConfiguration] videoConfiguration:[LFLiveVideoConfiguration defaultConfiguration]];
            _session.preView = self;
            _session.delegate = self;
        }
        return _session;
    }
    
    - (void)startLive { 
        LFLiveStreamInfo *streamInfo = [LFLiveStreamInfo new];
        streamInfo.url = @"your server rtmp url";
        [self.session startLive:streamInfo];
    }
    
    - (void)stopLive {
        [self.session stopLive];
    }
    

    我们也可以根据项目中的实际需求,配置水印,若网等情况的处理。LFLiveKitDemo 推流的demo相比ijkpalyer的来说,非常简单,下载即可运行。

    展开全文
  • ios直播---基于LFLiveKit的直播项目

    千次阅读 2017-12-18 14:41:16
    这篇文章主要写一个iOS系统下基于LFLiveKit的直播demo ,如果你正好需要 , 希望你看完后能够对你的提升有所帮助 , 当然,阅读中如果发现什么错误和可优化的地方 , 希望可以得到你的指点 , 有任何不妥的地方 欢迎指正...

    这篇文章主要写一个iOS系统下基于LFLiveKit的直播推流demo ,如果你正好需要 , 希望你看完后能够对你的提升有所帮助 , 当然,阅读中如果发现什么错误和可优化的地方 , 希望可以得到你的指点 , 有任何不妥的地方 欢迎指正。喜欢的可以关注下我的博客我的简书


     最近一直在研究直播相关的东西,在网上遨游了几天,也算是有点成果了。其实直播在移动端的工作并没有太多的东西,其中观众端的实现比较简单,聊天室、弹幕、礼物系统比较麻烦点。这里主要说一下主播端的实现,主播端需要实现的也就是音视频采集、音视频处理、推流,当然有些公司还会有些挂件啊、特效啊的功能,就先不说了。刚开始最好先把这些自己走一遍,把原理和流程搞懂,推荐1小时学会:最简单的iOS直播推流(一)介绍  可以根据自己需要看一下。现在有很多第三方都可以帮你实现这些功能,包括金山的推流SDK,基本的功能都有而且免费,感兴趣的可以去看一下我的另一篇文章 ios直播---基于金山云直播推流SDK实现直播功能 下面就来说一下我们今天的主角LFLiveKit它已经帮我们实现了视频采集、后台录制、美颜功能、支持h264、AAC编码,动态改变速率,RTMP传输等,我们开发的时候就很简单了,先上几张demo截图











    废话不多说,开始你的第一个直播项目

    新建项目不用我说了吧,把文件拖入你的项目或者在你的podfile加入 pod 'LFLiveKit' ,(它的美颜使用的是GPUImage,感兴趣的可以看一下GPUImage详细解析),在直播控制器引用头文件


     #import "LFLiveKit.h"

    @property (nonatomic, strong)LFLiveSession *session;

    下面看一下常用的一些属性

    @property (nullable,nonatomic, weak) delegate;//代理方法 
    
    @property (nonatomic, assign) BOOL running;//控制直播是开还是关的状态
    
    @property (nonatomic, strong,null_resettable) UIView *preView;//视频图层
    
    @property (nonatomic, assign) AVCaptureDevicePosition captureDevicePosition;//摄像头方向
    
    @property (nonatomic, assign) BOOL beautyFace;//美颜开关
    
    @property (nonatomic,assign) BOOL muted;//静音开关
    
    @property (nullable,nonatomic, strong,readonly) LFLiveStreamInfo * streamInfo;//控制直播流的信息
    
    @property (nonatomic,assign,readonly) LFLiveState state;//直播流上传的状态
    
    @property (nonatomic,assign) BOOL showDebugInfo;//
    
    @property (nonatomic,assign) NSUInteger reconnectInterval;//重连间隔


    然后初始化配置

    -(void)viewDidAppear:(BOOL)animated
    
    {
    
    [super viewDidAppear:animated];
    
    //初始化LFLiveSession
    
    [self RtmpInit];
    
    }

    配置的时候可以使用默认设置,也可以自定义采集和推流设置,previewView自己创建吧,相关代码就不贴了


    LFLiveSession *session  = [[LFLiveSession alloc] initWithAudioConfiguration:[LFLiveAudioConfiguration defaultConfiguration] videoConfiguration:[LFLiveVideoConfiguration defaultConfiguration] captureType:LFLiveCaptureDefaultMask];
    
    session.preView= previewView;
    
    //设置代理
    
    _session.delegate = self;
    
    _session.running = YES;

    开始直播,这里的RTMP_URL_1为推流地址


    LFLiveStreamInfo *stream = [LFLiveStreamInfo new];
    
    stream.url = RTMP_URL_1;
    
    [self.session startLive:stream];


    结束直播

    [self.session stopLive];

    到这里其实就完成一个直播的基本流程了,下面来看一下他的代理方法

    1、直播状态,返回的是一个枚举类型

    - (void)liveSession:(nullable LFLiveSession *)session liveStateDidChange:(LFLiveState)state ;

    typedef NS_ENUM (NSUInteger, LFLiveState){
    
    /// 准备
    
    LFLiveReady = 0,
    
    /// 连接中
    
    LFLivePending = 1,
    
    /// 已连接
    
    LFLiveStart = 2,
    
    /// 已断开
    
    LFLiveStop = 3,
    
    /// 连接出错
    
    LFLiveError = 4,
    
    ///  正在刷新
    
    LFLiveRefresh = 5
    
    };
    


    2、连接失败

    - (void)liveSession:(LFLiveSession *)session errorCode:(LFLiveSocketErrorCode)errorCode;

    3、直播流的信息,如果需要显示当前流量和实时码率等信息可以在这个方法里实现

    - (void)liveSession:(LFLiveSession *)session debugInfo:(LFLiveDebug *)debugInfo;

    最后说一下闪光灯切换、静音开关等功能的使用


    _session.torch =!_session.torch;//闪光灯开关
    _session.muted = !_session.muted;//静音开关


    //切换摄像头
    
    AVCaptureDevicePosition devicePositon = self.session.captureDevicePosition;
    
    self.session.captureDevicePosition = (devicePositon == AVCaptureDevicePositionBack) ? AVCaptureDevicePositionFront : AVCaptureDevicePositionBack;

    最后再让我们来看一下美颜,我这里简单的做一个调节美颜程度和亮度的功能,创建两个UISlider,分别控制美颜和亮度,具体实现上代码

    #pragma mark --美颜效果调节
    
    - (void)sliderValueChage:(id)slider
    
    {
    
    UISlider *searchSlider = slider;
    
    switch (searchSlider.tag) {
    
    case 105:
    
    {
    
    self.session.beautyLevel = searchSlider.value/100;
    
    NSString *voiceValue = [NSString stringWithFormat:@"%.0f",searchSlider.value];
    
    _beautyValue.text = voiceValue;
    
    CGFloat change = (_lastBeautyValue - searchSlider.value) *2;
    
    if (searchSlider.value < 20) {
    
    _beautyValue.textAlignment = NSTextAlignmentRight;
    
    }else if (searchSlider.value>80)
    
    {
    
    _beautyValue.textAlignment = NSTextAlignmentLeft;
    
    }else
    
    {
    
    _beautyValue.textAlignment = NSTextAlignmentCenter;
    
    }
    
    [UIView animateWithDuration:0.1 animations:^{
    
    _beautyValue.x -= change;
    
    }];
    
    _lastBeautyValue = searchSlider.value;
    
    }
    
    break;
    
    case 106:
    
    {
    
    self.session.brightLevel = searchSlider.value/100;
    
    NSString *voiceValue = [NSString stringWithFormat:@"%.0f",searchSlider.value];
    
    _brightValue.text = voiceValue;
    
    CGFloat change = (_lastBrightValue - searchSlider.value) *2;
    
    if (searchSlider.value < 20) {
    
    _brightValue.textAlignment = NSTextAlignmentRight;
    
    }else if (searchSlider.value>80)
    
    {
    
    _brightValue.textAlignment = NSTextAlignmentLeft;
    
    }else
    
    {
    
    _brightValue.textAlignment = NSTextAlignmentCenter;
    
    }
    
    [UIView animateWithDuration:0.1 animations:^{
    
    _brightValue.x -= change;
    
    }];
    
    _lastBrightValue = searchSlider.value;
    
    }
    
    break;
    
    default:
    
    break;
    
    }
    
    }

    当然你也可以自定义你需要的美颜样式,这里就不多说了,还有截图、网络信号强度、电池电量等小功能,自己在demo里看吧,附上我自己写的demo地址ZQLiveDemo,因为主要是为了熟悉功能实现,所以没做什么代码优化。有需要做连麦功能的可以看一下我关于直播连麦的一些实现思路ios直播连麦功能实现,如果帮到你的话不妨试试给个赞,发现不对的地方,欢迎指正


    下面放一些不错的文章,可以看一下

    iOS 直播 —— 推流

    转 映客 LFLiveKit 推流

    【如何快速的开发一个完整的iOS直播app】(原理篇)

    最简单的基于FFmpeg的推流器(以推送RTMP为例)

    基于GPUImage的实时美颜滤镜

    声明:demo仅用于学习交流使用,不可实际应用于任何商业项目!







    展开全文
  • Kouclo-live 直播项目,使用swift3.0和Xcode8.2完成项目,简单实现拉取视频和直播视频功能的小项目 ...使用Bilibili/ijkplayer做拉流播放视频,使用LFLiveKit做推流直播 模拟直播界面弹幕功能 展示界面
  • 非常感谢大家利用自己宝贵的时间来阅读我的文章 , 这篇文章主要写一个iOS系统下基于LFLiveKit的直播demo ,如果你正好需要 , 希望你看完后能够对你的提升有所帮助 , 当然,阅读中如果发现什么错误和可优化的地方 , ...
  • LFLiveKit推流

    2018-02-05 11:45:54
    1、创建视频视图 //视频的视图 UIView *displayView = [[UIView alloc] initWithFrame:self.view.bounds]; self.displayView = displayView; [self.view addSubview:self.displayView];2、创建推流会话 ...
  • 1、推流:LFLiveKit  2、播放:ijkplayer  3、服务器:nginx+rtmp+ffmpeg  有了这三点技术就可以完成一个简约的直播系统。效果图如下(右边的是用模拟器设备运行播放的,中间的是用VLC播放器播放的,当前在...
  • 首先先从github上pod下来LFLiveKit 新建OnlyLiveSession类:主要用于管理直播的类 .h #import <UIKit/UIKit.h> @protocol OnlyLiveSessionDelegate <NSObject> // 返回的message - (void)...
  • 推流:LFLiveKit 播放:ijkplayer 服务器:nginx+rtmp+ffmpeg   有了这三点技术就可以完成一个简约的直播系统。效果图如下(右边的是用模拟器设备运行播放的,中间的是用VLC播放器播放的,当前在用手机推流直播)...
  • LFLiveKit架构简介

    2017-08-08 18:39:00
    LFLiveKit里面是没有具体实现这种策略的后续处理方法,只是回调了增加还是减少的状态。 缺点:每一个buffer数据上传后,没有回调上传的结果。如果可以这样的话,可以根据上传的结果来判断推流端的具体网络状况。...
  • LFLiveKit的背景什么的就不一一介绍了,这里主要介绍它的功能实现的基础架构如下表: LFLiveKit LFLiveSession 是整个sdk核心,提供对外部的主要接口。其主要功能有:管理推流开关,...
  • 推流:LFLiveKit播放:ijkplayer服务器:nginx+rtmp+ffmpeg 有了这三点技术就可以完成一个简约的直播系统。效果图如下(右边的是用模拟器设备运行播放的,中间的是用VLC播放器播放的,当前在用手机推流直播)。 ...
  • 视频库LFLiveKit分析

    2018-10-25 01:37:38
    LFLiveKit封装的数据,用来在图像处理组件之间传递,包含了图像的大小、纹理、纹理类型、采样格式等。在图像处理链里传递图像,肯定需要一个统一的类型,除了图像本身,肯定还需要关于图像的信息,这样每个组件...
  • 开发前准备:1、使用Cocoapod导入LFLiveKit框架2、合并IJKMediaPlayer库,Release版本和Debug版本3、MAC配置nginx+rtmp模块推流服务器,参照地址:...
  • 问题 nginx第二次打开时候 ginx: [alert] could not open error log file: open() "/usr/local/var/log/nginx/error.log" failed (13: Permission denied) 2020/07/23 18:07:44 [notice] 27087#0: signal ...
  • 映客 LFLiveKit 推流

    千次阅读 2017-07-12 16:47:19
    推送端的实现使用的是LFLiveKit,推流端可以选择很多GitHub上的开源项目替代LFLiveKit,比如上面所提到的VideoCore,和LiveVideoCoreSDK。商用的话可以选择各大厂商的SDK,网易直播云、七牛、腾讯、百度、新浪、其中...
  • APP会报错误: 当调取相册的时候APP崩溃并显示标题的错误:This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app’s Info.plist must contain an ...
  • 执行上面操作后,导入合成的拉流blibli包到工程中,然后新建个播放控制器来设置播放 1. 播放的一些操作。 2. 高斯模糊。 3. 新建聊天控制器。 ... // Do any additional setup after loading the view from its ...
  • /* 内联函数:用 inline 关键字修饰的函数。内联函数不是在函数调用时发生控制转移,类似于《宏》在编译时将函数体替换每一个调用的代码位置。 相较于普通函数: 1、普通函数(没有inline修饰)汇编时会...
  • ios 实时音频流获取---分解LFLiveKit

    千次阅读 2018-09-21 17:42:00
    AVRecorder: 录制成音频文件,无法直接获取实时音频数据; AudioQueue:可以生成音频文件,可直接实时获取音频数据,数据回调有延迟,根据缓冲区大小延迟在20ms~1s AudioUnit:可以生成音频文件,可直接实时获取...
  • - (void)reloadFilter{ /* 移除所有的下一级滤镜对象 */ [self.filter removeAllTargets]; [self.blendFilter removeAllTargets];... [self.uiElementInput removeAllTargets];... [self.videoCamera...
  • LFLiveKit是一个集成了视频采集-美颜-编码-推流为一体的框架,并且使用起来非常的简单, 我们可以在iOS中直接使用该框架进行推流. 下载地址 https://github.com/LaiFengiOS/LFLiveKit pod集成 pod 'LFLiveKit' ...
  • 请先参考一些概念的解读:https://www.cnblogs.com/madaha/p/9713170.html#import "LFHardwareVideoEncoder.h" #import <VideoToolbox/VideoToolbox.h> @interface LFHardwareVideoEncoder (){ ...
  • LFLiveKit库里已经集成GPUImage框架用于美颜功能,GPUImage基于OpenGl开发,纯OC语言框架,封装好了各种滤镜同时也可以编写自定义的滤镜,其本身内置了多达125种常见的滤镜效果。 以下是该框架主要类功能的分析: ...
  • LFLiveVideoConfiguration视频配置主要是三个方面分别是: 1.分辨率videoSize:视频画面大小,分辨率越高画面越清晰。分辨率控制着画面的清晰度。 2.采样帧数(也称帧率)videoFrameRate:每秒的画面数,视频是由很多...
  • 视频:泛指将一系列的静态影像以电信号的方式捕捉、记录、处理、储存、传送、重现的各种技术。连续的静态图像变化每秒超过24帧(frame)以上时,由于视觉残留,人眼无法识别单独的静态图片,此时看上去就是平滑且...

空空如也

空空如也

1 2 3 4 5 ... 13
收藏数 243
精华内容 97
关键字:

lflivekit