Tag: video操作

HTML 5video自动播放function检测

HTML 5 Video play()方法在手机上不受支持,除非该操作是用户生成的,例如来自点击/点击。 这可以。 我想知道的是,有没有一种可靠的方法来检测浏览器是否阻止了这个play()动作,而不是用户生成的。 例如,在Chrome中的桌面上,它不是,但在Android上。 具体来说,我的问题是,我们有第三个广告模块,需要知道它是否可以自动播放广告时,我们初始化。 对于桌面浏览器,它总是可以做到这一点,但对于移动浏览器则不行。 当移动浏览器(ipad上的ios 8)开始遵守no controls属性时,这最近成了一个问题。 这导致了广告模块将删除控件的情况,浏览器将阻止播放事件,并且用户将没有本地控件来实际启动广告,从而video。 (广告模块将删除控件以阻止您跳过广告)。 我真的想避免通过用户代理浏览器/平台嗅探,并希望更类似于function检测。 我目前最好的猜测是检查触摸事件function,并假设触摸手段不会允许从非用户操作播放,但我希望有东西,消除这种“最好的猜测”。

使用AVFoundation将章节信息添加到现有video

我正在尝试将章节标记(文本+图像)添加到iOS中的现有video。 使用内置函数读取它们非常简单: NSLocale * locale = [chapterLocalications lastObject]; NSLog(@"Locale: %@", [locale localeIdentifier]); NSArray *keys = @[AVMetadataCommonKeyTitle, AVMetadataCommonKeyArtwork]; NSArray *chapters = [asset chapterMetadataGroupsWithTitleLocale:locale containingItemsWithCommonKeys:keys]; for (AVTimedMetadataGroup * metadataGroup in chapters) { NSArray * items = metadataGroup.items; CMTimeRange timeRange = metadataGroup.timeRange; NSLog(@"time: %@", CMTimeCopyDescription(NULL, timeRange.start)); for (AVMetadataItem * metadataItem in items) { NSLog(@"key: %@", metadataItem.commonKey); NSLog(@"value: %@", […]

Quickblox iOS:连接2个用户进行video聊天,无需发起呼叫

我有一个video聊天的要求,我必须通过video聊天连接2(有点相关)的​​用户。 我没有find必要的答案,因此这个问题。 我基本上是按照这个教程,但似乎没有我需要的一切。 我不需要明确的“调用这个用户”这种function。 用户永远不会看到整个用户列表。 因此,我想知道是否可以有X个用户呼叫,另外有多less个用户正在等待接听这个呼叫。 总结: 我只想根据一些特征(如他们的注册标签)连接用户。 对于任何用户A,可以有多于一个具有与A相似的标签的用户 – 因此它们都是用户A的潜在video聊天用户。 我需要select其中的一个(随机可以工作)和streamA之间的video/audio。 我必须做什么? 这是部分列表,但我不知道我是对的最后。 1 – 调用[QBAuth createSessionWithDelegate:self] 2 – 从结果会话中,调用[QBUsers logInWithUserLogin] 3 – 从结果会话中,调用[[QBChat instance] loginWithUser:user] 4 – 从生成的chatDidLogin委托,调用什么? 是否应该进入一些聊天室,或使用chatRoomDidChangeOnlineUsers使用一些代码? 我不知道。 请用最less的必需顺序来帮助我,总之,修改1-2-3-4以上。 更新为什么不能发起呼叫: 这是因为聊天是非自愿的,通话可能会发生冲突。 如果我使用calluser API,每个人最终都会打电话。 同样,等待接受电话也是如此。 我无法想到一个公平的策略,即系统不会被呼叫请求所淹没,或者由于每个人都在等待而保持沉默。 换句话说,我是为了解决这个问题,每个用户都可以随便选一个人打电话,但是不介意别人打电话给他,而且他应该能够正常处理。

在录制的video上合成基于帧的animation贴纸的最佳方法是什么?

我们希望允许用户将animation“贴纸”放在他们在应用程序中录制的video中,并考虑采用不同的方法来组合这些贴纸。 使用AVAssetWriter从基于帧的animation贴纸(可以旋转,并应用翻译)创buildAVAssetWriter 。 问题是AVAssetWriter只写入一个文件,并不保持透明度。 这将阻止我们能够使用AVMutableComposition对video进行AVMutableComposition 。 提前创build.mov文件用于我们的基于框架的贴纸,并使用AVMutableComposition和带有transformations layer指令进行AVMutableComposition 。 这个问题是没有工具可以轻松地将我们的PNG帧转换为.mov同时保持一个alpha通道,我们必须写我们自己的。 为贴图animation中的每个帧创build单独的CALayers 。 这可能会在video的每帧速率上创build大量的图层。 还是有更好的点子? 谢谢。

CoreImage / CoreVideo中的内存泄漏

我正在构build一个iOS应用程序,可以进行一些基本检测。 我从AVCaptureVideoDataOutput获取原始帧,将CMSampleBufferRef转换为UIImage,调整UIImage的大小,然后将其转换为CVPixelBufferRef。 至于我可以检测到仪器泄漏是我将CGImage转换为CVPixelBufferRef的最后一部分。 这是我使用的代码: – (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection { videof = [[ASMotionDetect alloc] initWithSampleImage:[self resizeSampleBuffer:sampleBuffer]]; // ASMotionDetect is my class for detection and I use videof to calculate the movement } -(UIImage*)resizeSampleBuffer:(CMSampleBufferRef) sampleBuffer { UIImage *img; CVImageBufferRef imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer); CVPixelBufferLockBaseAddress(imageBuffer,0); // Lock the image buffer uint8_t *baseAddress = (uint8_t *)CVPixelBufferGetBaseAddressOfPlane(imageBuffer, 0); // […]

如何访问iOS上的video输出function?

当连接video连接器时,Netflix等应用程序能够从video连接器播放video。 应用程序是否可以将video中的任意数据输出? 还是video播放器是iOS上唯一可以这样做的组件? 如果前者是可能的,我的应用程序如何访问video输出?

本地iOS电子邮件客户端不能播放HTML5video(2015)

我正在尝试发送带有embedded代码的video的HTML电子邮件,并在iOS设备的本机电子邮件应用程序中查看该电子邮件。 原生iOS邮件应用程序支持HTML5video元素,而且在过去几年里我已经多次testing过这个function。 发送几个video邮件之后的上个星期,我注意到原生应用中的媒体播放器会加载,呈现video的初始帧,但不播放video。 我已经浏览了iOS软件的发行历史,看看有没有什么可能影响了这种行为,但是不成功。 以下是电子邮件 <html> <head> <title>TEST</title> <style></style> </head> <body> <div id="html5-video"> <p>THIS IS A HTML5 VIDEO</p> <video controls> <source src="http://www.quirksmode.org/html5/videos/big_buck_bunny.mp4" type="video/mp4"> <p>Your browser does not support H.264/MP4.</p> </video> </div> </body> </html> 附加说明: – video在其他支持的电子邮件环境中可以正常播放–iOS支持H.264 / MP4video文件格式 – 问题发生在三月或四月的某个时候 任何帮助指出我在正确的方向将不胜感激:)

如何修剪video文件,并转换为20秒的video与斯威夫特?

我想修剪一个video文件。 我想从图库中selectvideo并将其转换为15秒的video。 我正在关注Objective C的这个 链接 。它对我来说很好,但我是Swift语言的初学者。 任何人都可以帮助我在Swift中转换此代码? 以下是我在Objective C中的代码: -(void)cropVideo:(NSURL*)videoToTrimURL{ AVURLAsset *asset = [AVURLAsset URLAssetWithURL:videoToTrimURL options:nil]; AVAssetExportSession *exportSession = [[AVAssetExportSession alloc] initWithAsset:asset presetName:AVAssetExportPresetHighestQuality]; NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *outputURL = paths[0]; NSFileManager *manager = [NSFileManager defaultManager]; [manager createDirectoryAtPath:outputURL withIntermediateDirectories:YES attributes:nil error:nil]; outputURL = [outputURL stringByAppendingPathComponent:@"output.mp4"]; // Remove Existing File [manager removeItemAtPath:outputURL error:nil]; // […]

如何在AVFoundation中循环播放video,而不会有不必要的暂停?

我正试图播放无限期循环的video剪辑。 我按照苹果公司的build议来做这件事。 通过设置由AVPlayerItemDidPlayToEndTimeNotification触发的通知: @property(nonatomic) AVPlayer *videoPlayer; @property(nonatomic) AVPlayerItem *videoPlayerItem; -(void)loadVideo { NSURL *url = [[NSBundle mainBundle] URLForResource:filename withExtension:extension]; AVURLAsset *asset = [AVURLAsset URLAssetWithURL:url options:nil]; NSString *tracksKey = @"tracks"; [asset loadValuesAsynchronouslyForKeys:@[tracksKey] completionHandler: ^{ dispatch_async(dispatch_get_main_queue(), ^{ NSError *error; AVKeyValueStatus status = [asset statusOfValueForKey:tracksKey error:&error]; if (status == AVKeyValueStatusLoaded) { [self setVideoPlayerItem:[AVPlayerItem playerItemWithAsset:asset]]; [videoPlayerItem addObserver:self forKeyPath:@"status" options:0 context:&ItemStatusContext]; […]

在iOS中将RGB像素数据高效地复制到屏幕上

我们的产品包含一种软件图像解码器,它主要产生需要快速复制屏幕(我们在iOS上运行)的全帧像素数据。 目前我们使用的是CGBitmapContextCreate,我们直接访问内存缓冲区,然后为每一帧调用CGBitmapContextCreateImage,然后将该位图绘制到屏幕上。 这对于在iPad的视网膜显示器上进行全屏刷新的速度太慢了,但是对于非视网膜设备来说也是可以的。 我们已经尝试了各种基于OpenGL ES的方法,包括使用glTexImage2D和glTexSubImage2D(本质上是渲染纹理),但CPU使用率仍然很高,我们无法获得超过30 FPS的全屏刷新在iPad 3上。问题是,在30 FPS下,CPU使用率接近于100%,只是将像素复制到屏幕上,这意味着我们没有太多的工作来处理我们自己在CPU上的渲染。 我们愿意使用OpenGL或任何可以提供最佳性能的iOS API。 像素数据被格式化为每像素32位的RGBA数据,但我们有一些灵活性… 有什么build议么?