我正在将VideoCore RTMP编码器集成到我的应用程序中,但是我很难启动一个新的编码会话。我看到了VCSimpleSession类,但是如何启动编码器并查看输出呢?
VCSimpleSession *mySession = [[VCSimpleSession alloc] init];我没看到预览图。我做错什么了?
发布于 2015-11-05 01:41:44
VideoCore使用简单而复杂的图形。VCSimpleSession是设置编码器的最简单方法。
VCSimpleSession有几种不同的初始化器
- (instancetype) initWithVideoSize:(CGSize)videoSize
frameRate:(int)fps
bitrate:(int)bps;
// -----------------------------------------------------------------------------
- (instancetype) initWithVideoSize:(CGSize)videoSize
frameRate:(int)fps
bitrate:(int)bps
useInterfaceOrientation:(BOOL)useInterfaceOrientation;
// -----------------------------------------------------------------------------
- (instancetype) initWithVideoSize:(CGSize)videoSize
frameRate:(int)fps
bitrate:(int)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枚举有两个值:VCCameraStateFront和VCCameraStateBack。
aspectMode用于设置预览视图的方面模式。VCAspectMode有两个值:VCAspectModeFit (会话视频预览应该“方面适合”到其父视图;VCAscpectModeFill (缩放视频预览以填充父视图)。
使用这些初始化器之一创建新会话。确保在初始化后将会话保留为属性或ivar。初始化后,将会话的previewView属性作为子视图添加到视图控制器上的某些UIView中。
若要连接到服务器,请在会话中使用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示例应用程序上做了一些工作,您应该检查一下样本视图控制器。
https://stackoverflow.com/questions/33535218
复制相似问题