• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 如何使用 VideoCore 创建编码 session ?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 11:39:45 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在集成 VideoCore RTMP 编码器进入我的应用程序,但我无法启动新的编码 session 。我看到了 VCSimpleSession 类,但是如何启动编码器并查看输出?

VCSimpleSession *mySession = [[VCSimpleSession alloc] init];

我没有看到预览 View 。我做错了什么?



Best Answer-推荐答案


VideoCore 使用简单和复杂的图表。 VCSimpleSession 是设置编码器的最简单方法。

VCSimpleSession有几个不同的初始化器:

- (instancetype) initWithVideoSizeCGSize)videoSize
                         frameRateint)fps
                           bitrateint)bps;

// -----------------------------------------------------------------------------
- (instancetype) initWithVideoSizeCGSize)videoSize
                         frameRateint)fps
                           bitrateint)bps
           useInterfaceOrientationBOOL)useInterfaceOrientation;

// -----------------------------------------------------------------------------
- (instancetype) initWithVideoSizeCGSize)videoSize
                         frameRateint)fps
                           bitrateint)bps
           useInterfaceOrientation:(BOOL)useInterfaceOrientation
                       cameraState:(VCCameraState) cameraState;

// -----------------------------------------------------------------------------
- (instancetype) initWithVideoSize:(CGSize)videoSize
                         frameRate:(int)fps
                           bitrate:(int)bps
           useInterfaceOrientation:(BOOL)useInterfaceOrientation
                       cameraState:(VCCameraState) cameraState
                        aspectMode:(VCAspectMode) aspectMode;

videoSize 是您的编码视频所需的分辨率。

fps 是视频帧率。根据您的服务器设置,您可能希望将其设置为 30,如果您的服务器支持,甚至可以设置为 60。

bps 是视频比特率,以比特/秒为单位。

useInterfaceOrientation 用于通知编码器设备方向发生变化。传入YES将告诉编码器在您旋转设备时旋转视频。

cameraState 用于使用所需的相机源启动编码器。 VCCameraState 枚举有两个值:VCCameraStateFrontVCCameraStateBack

aspectMode 用于设置预览 View 的纵横模式。 VCAspectMode 有两个值:VCAspectModeFit(您的 session 视频预览应该“适合”其父 View ,以及 VCAscpectModeFill(缩放您的视频预览以填充其父 View )。

使用这些初始化程序之一来创建新 session 。确保在初始化后将 session 保留为属性或 ivar。初始化后,将 session 的 previewView 属性作为 subview 添加到 View Controller 上的某些 UIView

要连接到服务器,请在 session 中使用 startRtmpSessionWithURL: 方法。要停止您的编码器,请调用 endRtmpSession

您的完整设置可能如下所示:

@property (weak, nonatomic) IBOutlet UIView *previewView; // This is a UIView on your view controller
@property (weak, nonatomic) VCSimpleSession* session;

// ...

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.session = [[VCSimpleSession alloc] initWithVideoSize:CGSizeMake(1280, 720) frameRate:30 bitrate:1000000 useInterfaceOrientation:NO];

    [self.previewView addSubview:_session.previewView];
    [self.previewView bringSubviewToFront:self.session.previewView]
    [_session startRtmpSessionWithURL"rtmp://192.168.1.151/live" andStreamKey"myStream"];
}

完成后:

[self.session endRtmpSession];

我在 VideoCore 示例应用上做了一些工作,您应该查看 sample view controller .

关于ios - 如何使用 VideoCore 创建编码 session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33535218/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap