Tag: videostream

iPhone MPMoviePlayerController:下载文件,而stream媒体在本地播放

我有所有的TS文件m3u8文件。 MPMoviePlayerController在stream媒体服务器上通过http请求播放它们。 但是我想在本地获取这些文件,以便以后再次播放它们而不需要任何连接。 我设法在我的设备上本地下载m3u8文件和所有TS文件,我编辑m3u8文件指向本地.ts而不是http,但是我无法从这个版本中读取它们。 (VLC可以做得很好) 有没有一种方法可以在播放的时候下载这些段(避免2次下载),然后用MPMoviePlayerController或其他方式在本地播放它们。

如何在iOS上使用embedded式HTTP服务器实现Video Seek支持?

我有一个客户端iOS应用程序,它使用GCDWebServer来提供存储在我的设备上的应用程序的NSSearchPathDirectory.DocumentDirectory文件夹中的图像和video。 在应用程序启动时,我启动了一个GCDWebServer实例并为我的请求添加一个文件响应处理程序: self.addDefaultHandlerForMethod("GET", requestClass: GCDWebServerFileRequest.self) { request in return GCDWebServerFileResponse(file: self.filePathForResponse(request.URL)) } 我可以validation,当应用程序正在运行,我可以成功地从我的设备下载文件: curl -O http://192.168.0.15:8080/files/IMG_1213-1280×720.MOV 我的应用通过向媒体渠道发送类似上述内容的url与Chromecast设备通话,Chromecast接收器应用会通过指定的url加载和播放video – 目前为止都很好。 我的问题是我想实现对当前正在播放的video的寻求支持,只要我向媒体频道发送一个search请求,就会从GCDWebServer收到一个“Broken pipe”错误,并且video播放被中断。 从服务器login如下: …. [DEBUG] Connection sent 32768 bytes on socket 24 [DEBUG] Connection sent 32768 bytes on socket 24 [ERROR] Error while writing to socket 24: Broken pipe (32) [DEBUG] Did close connection on socket […]

我想在iPhone的uiimageview中显示url的video图像

是否有可能获得video的第一个图像帧,并显示在uiimageview。 我的video保存在服务器上。 我需要调用url来播放video

Progressive Video在iOS上下载

我正在尝试在iOS应用程序中通过AVPlayer播放video的渐进式下载 。 我已经实现了一个可以下载文件到iPad的下载器模块。 但是,我发现我无法播放仍在写入的文件 所以,据我所知,我唯一的解决办法是通过下载一个文件“块”的列表,然后继续播放每个文件,因为他们准备好了(即:下载),可能使用HLS search我遇到了这个通过hls实现渐进式下载的问题,除此以外 ,我找不到其他方法 不过,我不断遇到search结果,说如何configurationWeb服务器利用iOS支持HTTP渐进式下载,但没有提到如何从iOS端做到这一点 那么,有没有人有任何想法和/或经验呢? 编辑:我也发现有可能是这样做的其他方式(即:stream,然后写stream媒体数据到磁盘),这是由这个问题,但仍然无法得到它的工作,因为它似乎不工作非本地资产!

如何玩在线video那些在服务器上

我有我的服务器上的video。 我想在iPhone和iPad上播放这些video。 任何人都可以build议如何处理这种情况? 我知道如何使用MPMoviePlayerController在我的项目中使用相同的video播放video。

如何在不使用UIWebView的情况下播放YouTubevideo,或者当YouTubevideo开始使用webview播放时检测video播放器?

我需要在iOS应用程序中播放YouTubevideo,而在播放video时,我需要在video上添加叠加层。 如何在本地播放器中运行YouTubevideo? 2.如果我在UIWebview中播放video,那么我如何检测video播放以及如何在video上添加叠加层?

移动并修复手机iOS上录制的video的moovprimefaces

问题是如何find并移动iOS设备上logging的.mov文件的moovprimefaces,以便通过http进行stream式处理。 有一种方法可以做到这一点,但需要将其导出到文件中,理论上使您可以将整个文件复制过来,然后就可以对其进行stream式处理。 有没有其他方法可以做到这一点?

AVPlayer seekToTime不能播放正确的位置

我有一个播放HLSvideostream的AVPlayer。 我的用户界面提供了一排button,video中每个“章节”都有一个button(button标记为“1”,“2”,“3”)。 应用程序从服务器下载一些元数据,其中包含以秒表示的章节切入点列表。 例如,一个video的长度是12分钟 – 章节切入点的列表是0,58,71,230,530等等。 当用户点击其中一个“章节button”时,button处理程序代码将执行以下操作: [self.avPlayer pause]; [self.avPlayer seekToTime: CMTimeMakeWithSeconds(seekTime, 600) toleranceBefore: kCMTimeZero toleranceAfter: kCMTimeZero completionHandler: ^(BOOL finished) { [self.avPlayer play]; }]; 其中“seekTime”是包含切入点的本地variables(如上所述)。 问题是video并不总是从正确的位置开始。 有时候确实如此。 但有时在请求的seekTime前十秒到两秒之间。 永远不会在请求的seekTime之后启动。 以下是关于video编码的一些统计数据: 编码器:handbrakeCLI编解码器:h.264帧速率:24(实际上,23.976 – 相同如它被拍摄)video比特率:多比特率(64/150/300/500/800/1200)audio比特率:128k关键帧:23.976 1每秒) 当然,我正在使用Apple mediafilesegmenter工具,并使用variantplaylistcreator来生成播放列表。 这些文件是从Amazon Cloud / S3存储桶提供的。 我仍然不清楚的一个领域是CMTimeMakeWithSeconds – 我已经尝试了几个基于不同的文章/文档我已经阅读的变化。 例如,在上面的摘录中,我正在使用: CMTimeMakeWithSeconds(seekTime,600) 我也试过了: CMTimeMakeWithSeconds(seekTime,1) 我不知道哪个是正确的,尽pipe两者似乎产生了相同的不一致的结果! 我也试过了: CMTimeMakeWithSeconds(seekTime,23.967) 有些文章声称这是一个分子/否定的工作,所以n / 1应该是正确的,其中'n'是秒数(如CMTimeMakeWithseconds(n,1))。 但是,代码最初是由另外一个程序员创build的(他现在已经走了),并且他使用了600的数字作为preferredTimeScale(即CMTimeMakeWithseconds(n,600))。 任何人都可以提供任何我做错的线索,或者即使我尝试实现的那种准确性甚至是可能的吗? […]

在下载iOS时stream式传输video

我正在使用iOS 7,我有一个.mp4video,需要在我的应用程序中下载。 video很大(〜1 GB),这就是为什么它不包括在应用程序的一部分。 我希望用户能够在开始下载时立即开始观看video。 我也希望video能够被caching在iOS设备上,以便用户不需要稍后再下载。 播放video的普通方法(渐进式下载和实时stream式传输)似乎不能让您cachingvideo,因此我已经制作了自己的Web服务,将video文件分块并将字节stream式传输到客户端。 我使用NSURLConnection开始HTTPstream式传输: self.request = [[NSMutableURLRequest alloc] initWithURL:self.url]; [self.request setTimeoutInterval:10]; // Expect data at least every 10 seconds [self.request setHTTPMethod:@"GET"]; self.connection = [[NSURLConnection alloc] initWithRequest:self.request delegate:self startImmediately:YES]; 当我收到一个数据块时,我将它追加到本地副本的末尾: – (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { NSFileHandle *handle = [NSFileHandle fileHandleForWritingAtPath:[self videoFilePath]]; [handle truncateFileAtOffset:[handle seekToEndOfFile]]; [handle writeData:data]; } 如果我让设备运行,文件下载成功,我可以使用MPMoviePlayerViewController播放它: NSURL *url=[NSURL fileURLWithPath:self.videoFilePath]; […]

是否有可能使用AVPlayercachingHLS段?

根本问题 在iOS上search时,我们的videocaching很多。 它比我们的networking播放器缓冲了很多,它将已经观看的片段的副本保存在临时存储器中。 期望的解决scheme 在设备的磁盘上本地cachingvideo片段。 caching一个单独的质量,并且总是重放它,我们没事。 拦截器 我们无法在AVFoundation / AVPlayer中find执行caching的方法。 我们试过的 用AVPlayer拦截networking请求的两种方法。 符合AVAssetResourceLoaderDelegate并手动处理媒体加载 不适用于HLS。 您可以通过实现AVAssetResourceLoaderDelegate来加载m3u8文件,这允许您通过身份validation或解密响应,但无法加载.ts文件。 以下是我们尝试的代码: https : //gist.github.com/nathanhillyer/84e46152d7c4c88183b6 实现NSURLProtocol来捕获.ts文件的请求。 AVURLAsset实际上避免被拦截。 networking请求不知何故被捕获。 (不知道为什么)