专栏首页ios技术安装ios摄像头推流(1)
原创

ios摄像头推流(1)

iOS之摄像头推流

功能概述

摄像头推流,是指采集手机摄像头的画面以及麦克风的声音,进行编码之后再推送到直播云平台上。腾讯云 LiteAVSDK 通过 TXLivePusher 接口提供摄像头推流能力,如下是 LiteAVSDK 的简单版 Demo 中演示摄像头推流的相关操作界面:

特别说明

  • 不绑定腾讯云 SDK 不绑定腾讯云,如果要推流到非腾讯云地址,请在推流前设置 TXLivePushConfig 中的enableNearestIP为 false。但当您要推流的地址为腾讯云地址时,请务必在推流前将其设置为 YES,否则 SDK 针对腾讯云的协议优化将不能发挥作用。
  • x86 模拟器调试 由于 SDK 大量使用 iOS 系统的音视频接口,这些接口在 Mac 上自带的 x86 仿真模拟器下往往不能工作。所以,如果条件允许,推荐您尽量使用真机调试。

示例代码

所属平台

GitHub 地址

关键类

iOS

Github

CameraPushViewController.m

Android

Github

CameraPushImpl.java

功能对接

1. 下载 SDK 开发包

下载 SDK 开发包,并按照 SDK 集成指引 将 SDK 嵌入您的 App 工程中。

2. 给 SDK 配置 License 授权

单击 License 申请 获取测试用的 License,您会获得两个字符串:一个字符串是 licenseURL,另一个字符串是解密 key。

在您的 App 调用 LiteAVSDK 的相关功能之前(建议在 - [AppDelegate application:didFinishLaunchingWithOptions:] 中)进行如下设置:

@import TXLiteAVSDK_Professional;
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    NSString * const licenceURL = @"<获取到的licenseUrl>";
    NSString * const licenceKey = @"<获取到的key>";

    //TXLiveBase 位于 "TXLiveBase.h" 头文件中
    [TXLiveBase setLicenceURL:licenceURL key:licenceKey]; 
    NSLog(@"SDK Version = %@", [TXLiveBase getSDKVersionStr]);
}
@end
复制代码

3. 初始化 TXLivePush 组件

首先创建一个TXLivePushConfig对象。该对象可以指定一些高级配置参数,但一般情况下我们不建议您操作该对象,因为我们已经在其内部配置好了所有需要校调的参数。之后再创建一个TXLivePush对象,该对象负责完成推流的主要工作。

 TXLivePushConfig *_config = [[TXLivePushConfig alloc] init];  // 一般情况下不需要修改默认 config   

 TXLivePush *_pusher = [[TXLivePush alloc] initWithConfig: _config]; // config 参数不能为空
复制代码

4. 开启摄像头预览

调用 TXLivePush 中的startPreview接口可以开启当前手机的摄像头预览。您需要为startPreview 接口提供一个用于显示视频画面的 view 对象。

 //创建一个 view 对象,并将其嵌入到当前界面中
 UIView *_localView = [[UIView alloc] initWithFrame:self.view.bounds];
 [self.view insertSubview:_localView atIndex:0];
 _localView.center = self.view.center;

 //启动本地摄像头预览
 [_pusher startPreview:_localView];
复制代码

注意: 如果要给 view 增加动画效果,需要修改 view 的 transform 属性而不是 frame 属性。 [UIView animateWithDuration:0.5 animations:^{ _localView.transform = CGAffineTransformMakeScale(0.3, 0.3); //缩小1/3 }]; 复制代码

5. 启动和结束推流

如果已经通过startPreview接口启动了摄像头预览,就可以调用 TXLivePush 中的startPush接口开始推流。563513413,不管你是大牛还是小白都欢迎入驻

//启动推流
NSString* rtmpUrl = @"rtmp://test.com/live/xxxxxx";    //此处填写您的 rtmp 推流地址
[_pusher startPush:rtmpUrl];
复制代码

推流结束后,可以调用 TXLivePush 中的stopPush接口结束推流。请注意,如果已经启动了摄像头预览,请在结束推流时将其关闭,否则会导致 SDK 的表现异常。

//结束推流
[_pusher stopPreview]; //如果已经启动了摄像头预览,请在结束推流时将其关闭。
[_pusher stopPush];
复制代码
  • 如何获取可用的推流 URL? 开通直播服务后,可以使用【直播控制台】>【辅助工具】> 【地址生成器】 生成推流地址,详细信息请参见 推拉流 URL

原创声明,本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

登录 后参与评论
0 条评论

相关文章

  • iOS摄像头推流(2)

    如果您的直播场景是纯音频直播,不需要视频画面,那么您可以不执行 第4步 中的操作,取而代之的是开启 TXLivePushConfig 中的enablePureA...

    ios-lan
  • 在iOS上推流

    编译librtmp需要用到openssl,所以先编译openssl,下载脚本OpenSSL。

    Helloted
  • Android平台下使用FFmpeg进行RTMP推流(摄像头推流)

    前面讲到了在Android平台下使用FFmpeg进行RTMP推流(视频文件推流),里面主要是介绍如何解析视频文件并进行推流,今天要给大家介绍如何在Android...

    用户2929716
  • JavaCV的摄像头实战之五:推流

    程序员欣宸
  • 【硬件设备】海康RTMP推流摄像头推流到腾讯云配置手册

    每天都有很多新老用户咨询我关于RTMP推流摄像头的问题,推流摄像头的配置手册我之前已经写过(RTMP推流摄像头如何接入EasyDSS视频平台),已经持有RTMP...

    EasyNVR
  • FFmpeg-iOS推流器的简单封装

    Bison
  • 如何联合RTMP推流摄像头构建智慧消防方案?

    随着云计算、大数据、智能分析等业界领先技术的广泛应用,各个行业都需要应用先进的信息技术来提升工作效率。而我们不太了解的消防行业,也开始使用车联网信息化平台将先进...

    TSINGSEE青犀视频
  • JavaCV的摄像头实战之七:推流(带声音)

    程序员欣宸
  • 视频流媒体推流平台EasyRTMP-Android前置摄像头推流画面镜像问题解决

    RTMP推流,就是将直播内容推送到服务器的过程。我们团队也研发了相应视频流媒体推流平台,使用简单便捷,不少用户都在使用这款推流平台,通过手机就能将视频流推送到自...

    EasyNVR
  • HLS推流的实现(iOS和OS X系统)

    前言 使用VideoToolbox硬编码H.264 使用VideoToolbox硬解码H.264 使用AudioToolbox编码AAC 使用AudioT...

    落影
  • RTMP推流安防摄像头的移动侦测功能介绍

    很多用户都对TSINGSEE青犀视频之前和海康合作研发的RTMP推流摄像头比较感兴趣,该款摄像头不仅在视频传输上能够保证1080P的分辨率,还能实现推流,将视频...

    TSINGSEE青犀视频
  • RTSP/GB28181协议视频平台对接RTMP推流摄像头编码简介

    视频是利用人眼视觉暂留的原理,通过播放一系列的图片,使人眼产生运动的感觉。单纯传输视频画面,视频量非常大,对现有的网络和存储来说是不可接受的。为了能够使视频便于...

    EasyNVR
  • iOS移动直播,自定义采集视频数据推流

    当音视频采集和预处理(即美颜、滤镜这些)开发者已经全部实现,只需要使用 SDK 来编码和推流,那么可以通过 TXLiteAVSDK 提供的自定义采集数据接口来满...

    腾讯云-chaoli
  • 【参数配置教程】RTMP推流摄像头内参数都应该如何配置?

    TSINGSEE青犀视频的RTMP推流摄像头受到了很多用户的认可,由于摄像头的配置与视频的清晰度及流畅度有着直接的关系,配置不匹配会导致视频的模糊或者卡顿,因此...

    TSINGSEE青犀视频
  • 开源流媒体服务器SRS学习笔记(1) - 安装、推流、拉流

    SRS(Simple RTMP Server) 是国人写的一款非常优秀的开源流媒体服务器软件,可用于直播/录播/视频客服等多种场景,其定位是运营级的互联网直播...

    菩提树下的杨过
  • FFMPEG音视频开发: 完成摄像头、桌面本地录制与rtmp推流(windows)

    该软件里推流和视频保存使用FFMPEG库完成,界面框架采用QT,视频和音频可以同步推流和录制,FFMPEG本身支持跨平台编译开发,QT也支持跨平台,在Andro...

    DS小龙哥

扫码关注腾讯云开发者

领取腾讯云代金券