Tag: video操作

使用FFMPEG和VideoToolbox在iOS上加速H264解码

在LIVEOP,我们致力于以简洁的方式为急救人员提供最相关的信息,同时又不影响我们的无缝用户体验。 当我们与全球领先的无线(随身)摄像头系统提供商Zepcam合作时,我们希望确保我们提供的体验符合我们的高标准,而不影响性能或效率。 Zepcam托管的摄像机流有几种不同的格式,最重要的是,HTTP Live Streaming(HLS)是iOS生态系统中的一流公民,内置了AVFoundation和RTSP(实时流协议)的内置支持。 HLS流通常用于直播电视和新闻广播。 它专注于为观看者带来无缝体验:不允许丢帧,不允许无序播放帧,并保留少量即将出现的帧缓冲区以确保流畅的播放体验。 Zepcam流被激活的情况通常会危及生命。 警员可能在试图装防暴动时从佩戴在身上的摄像机进行实时直播,或者在顶部装有摄像机的梯形引擎可能会鸟瞰大建筑物的火灾,包括消防员在地面上的位置。 我们对无缝用户体验的定义与HTTP Live Streaming所规定的不同:在我们的案例中,向用户显示的帧尽可能实时是很重要的。 它们可以无序到达,并且可以丢弃几帧,只要这有利于流的实时性。 加上我们的要求,我们开始在UDP上使用RTSP。 Apple不在任何高级框架中提供对RTSP流回放的支持。 用于回放视频流的所有高级系统类MPMoviePlayerController , AVPlayerItem和AVPlayer不支持RTSP流。 幸运的是,瑞士的音频/视频处理军刀FFMPEG配备了正确的工具来处理和解码RTSP流。 FFMPEG在开源社区已有17年的历史了,自那时起,它就已经成为VLC,Google Chrome和Chromium¹等各种最终用户应用程序背后的可靠力量。 设置FFMPEG Zepcam提供的RTSP流使用H264编解码器进行编码。 为了防止最终iOS应用程序文件(.ipa)的二进制文件大量增加,我们选择从头开始编译最新版本的FFMPEG(v4.0.1),仅启用我们希望使用的那些功能。 我们使用此处找到的出色的构建脚本,并进行了一些调整: 将FF_VERSION变量更改为4.0.1 将DEPLOYMENT_TARGET更改为iOS应用程序的部署目标 更改CONFIGURE_FLAGS以启用位码,并禁用除流所需的所有功能之外的所有功能: CONFIGURE_FLAGS =“-启用交叉编译–disable-debug –disable-programs –disable-doc –extra-cflags = -fembed-bitcode –extra-cxxflags = -fembed-bitcode –disable-ffmpeg –disable-ffprobe –disable-avdevice –disable-avfilter –disable-encoders –disable-parsers –disable-decoders –disable-protocols –disable-filters –disable-muxers –disable-bsfs –disable-indevs –disable-outdevs –disable-demuxers –enable-protocol = file […]

是否有一个iOS录音机框架录制演示?

我想在设备上logging我的应用程序演示。 为了logging应用程序演示的目的,是否有框架可以放入应用程序来logging屏幕? 当然这个框架将在提交到App Store之前被删除。

AVAssetExportSession.requestExportSessioncallback从未调用(swift 3,iOS10)

下面的代码永远不会调用导出的callback。 导出会话创build得很好。 我没有看到任何错误,也没有任何进展。 CPU是0%。 我看没有例外。 状态为1(进行中),进度为0,错误为零。 video在画廊中播放。 我可以成功获取video的图像。 我已经提取代码到单个UIViewController进行testing,请参阅下面: 我使用iOS10.1.1testing了iPad上录制的video。 import UIKit import Photos class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } // MARK: Properties […]

是否有可能获得与MPMediaItemvideo相关的元信息?

我正在做一些MPMediaItems的工作,特别是我试图得到用户设备上的video列表。 现在,来自iTunes的video将被locking,因此无法从第三方应用播放,但用户添加的video(如家庭电影)可以播放,即使是来自iTunes的用户也可以查看并显示其元信息。 但是,这里是我越来越绊倒:我似乎无法find这些文件的任何video特定元信息? MPMediaItem类的引用有一个很长的属性列表,你可以访问,但他们大多是audio特定的。 像MPMediaItemPropertyAlbumTitle或MPMediaItemPropertyComposer 。 甚至还有一个专门针对Podcast的属性,但似乎找不到像“Season Number”或“Episode Number”或“Show Title”之类的内容。 这些信息显然是由iTunes存储的,而且是由内部的video应用程序显示的,但我找不到任何方法来获取它自己。 这些是我可以在类参考中find的唯一字段: NSString *const MPMediaItemPropertyPersistentID ; // filterable NSString *const MPMediaItemPropertyAlbumPersistentID ; // filterable NSString *const MPMediaItemPropertyArtistPersistentID ; // filterable NSString *const MPMediaItemPropertyAlbumArtistPersistentID ; // filterable NSString *const MPMediaItemPropertyGenrePersistentID ; // filterable NSString *const MPMediaItemPropertyComposerPersistentID ; // filterable NSString *const MPMediaItemPropertyPodcastPersistentID ; // filterable NSString […]

快速获取修剪video的缩略图

这是我的代码: 当我试图做到这一点 self.my.image = UIImage(contentsOfFile: "\(self.sharedelegate.editthumbforvideo)") , self.my.image的值总是打印为零。 self.videodelegate.editthumbforvideo数据types是(UIImage)和my.image是(UIImageview) 。 不知道如何解决这个问题,不能得到修剪video的缩略图。 提前致谢 let url=NSURL(fileURLWithPath: videoPath as String) let asset: AVAsset = AVAsset(URL: url) let imageGenerator = AVAssetImageGenerator(asset: asset); imageGenerator.appliesPreferredTrackTransform = true let timestamp = CMTime(seconds: 0.0, preferredTimescale: 60) var actualTime : CMTime = CMTimeMake(0, 0) let myImage = try?( imageGenerator.copyCGImageAtTime(timestamp, actualTime: &actualTime)) self.image=UIImage(CGImage: myImage!) print("my […]

获取/制作来自videourl的缩略图,获取API响应

我收到来自服务器的响应中的videoURL(例如,来自不存储在本地设备中的API)的videoURL; videos": [ "<iframe width=\\"560\\" height=\\"315\\" src=\\"//www.youtube.com/embed/-OB7y6ELDks?list=UUYv2cbGZE2SmAYPDZQRKiig\\" frameborder=\\"0\\" allowfullscreen></iframe>", "<iframe width=\\"560\\" height=\\"315\\" src=\\"//www.youtube.com/embed/igcIaNi-eHA?list=UUYv2cbGZE2SmAYPDZQRKiig\\" frameborder=\\"0\\" allowfullscreen></iframe>", "<iframe width=\\"560\\" height=\\"315\\" src=\\"//www.youtube.com/embed/3kGNMUfajJc?list=UUYv2cbGZE2SmAYPDZQRKiig\\" frameborder=\\"0\\" allowfullscreen></iframe>" ], 目前它只包含YouTubevideo,但不能确定,它也可能包含来自其他资源(即YouTube以外)的urlvideo。 我从这个回应中提取了youtube urls。 并且想在UICollectionView中显示这些video的缩略图。 我怎样才能做到这一点? 我search了很多关于这个,但无法得到任何适当的解决scheme。 请帮帮我。 谢谢..

在iOS Swift中以mp3格式下载YouTubevideo

有没有办法让youtubevideo的.mp3链接? 我尝试了多个在线youtube到MP3转换器的网站,但它只是在系统中下载文件,并没有给任何MP3链接。 要么 有什么办法可以从链接下载文件,所以可以说有一些链接,如www.somesongdownloader.com,在浏览器中加载此链接mp3文件正在下载。 但如果我尝试从我的ios代码下载相同的只是下载的PHP文件不是MP3文件。 下面是我的代码 – 下面的代码工作正常的MP3链接,我无法获得youtubevideo,但这段代码是不工作的任何url,让MP3文件下载浏览器 – class func loadFileAsync(url: NSURL, completion:(path:String, error:NSError!) -> Void) { print("Inside loadFileAsync") let documentsUrl = NSFileManager.defaultManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first! let destinationUrl = documentsUrl.URLByAppendingPathComponent(url.lastPathComponent!) if NSFileManager().fileExistsAtPath(destinationUrl.path!) { print("file already exists [\(destinationUrl.path!)]") completion(path: destinationUrl.path!, error:nil) } else { let sessionConfig = NSURLSessionConfiguration.defaultSessionConfiguration() let session = NSURLSession(configuration: sessionConfig, delegate: nil, delegateQueue: […]

只从风景视图返回到肖像应用程序

我有一个应用程序,只能在肖像模式,但是,有一个视图,需要支持肖像以及风景模式。 任何时候我从这个视图返回应用程序的其余部分搞砸了。 需要支持两个方向的视图包含用于播放直播的webview。 简单的设置shouldAutorotateToInterfaceOrientation不起作用。 呈现模态视图控制器的伎俩既不。 删除和插入根视图的技巧也不起作用。 我害怕使用[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait](实际工作),因为它是私人API。

在Facebook上添加当前位置发布video

我需要使用place密钥在Fac​​ebook中发布place 。 如图所示 起初我以为我不得不把经纬度的一个物体放到一个称为键的位置。 然后我意识到你必须在一个place发送关键的place_id pipe理得到与此最接近的place_id NSMutableDictionary *params2 = [NSMutableDictionary dictionaryWithCapacity:4L]; [params2 setObject:@"37.416382,-122.152659" forKey:@"center"]; //Hard code coordinates for test [params2 setObject:@"place" forKey:@"type"]; [params2 setObject:@"1000" forKey:@"distance"]; [[[FBSDKGraphRequest alloc] initWithGraphPath:@"/search" parameters:params2 HTTPMethod:@"GET"] startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) { NSLog(@"RESPONSE!!! /search"); NSLog(@"result %@",result); NSLog(@"error %@",error); }]; 所以,当我试图发送一个职位使用/me/videos的位置,出现一个错误。 (#3) Application does not have the capability to make this […]

录制video,包括iOS中的logging覆盖

我正在使用AVFoundation录制video。 我添加了一些覆盖视图,如2个标签。 我的想法是录制video也将重叠视图录制到结果video中。 我的意思是结果video也将覆盖视图通过video 我该怎么做?