相关疑难解决方法(0)

我可以使用AVFoundation将下载的视频帧流式传输到OpenGL ES纹理中吗?

我已经能够使用AVFoundation的AVAssetReader类将视频帧上传到OpenGL ES纹理中.但是,它有一个警告,因为当它与AVURLAsset指向远程媒体一起使用时会失败.这个失败没有很好的记录,我想知道是否有任何解决方法的缺点.

streaming opengl-es objective-c avfoundation ios

20
推荐指数
1
解决办法
8930
查看次数

iOS:AVPlayer - 获取视频当前帧的快照

我花了一整天时间,经历了很多SO答案,Apple参考文献,文档等,但都没有成功.

我想要一个简单的事情:我正在使用AVPlayer播放视频,我想暂停它并获取当前帧UIImage.而已.

我的视频是一个位于互联网上的m3u8文件,它在AVPlayerLayer没有任何问题的情况下正常播放.

我试过了什么:

  1. AVAssetImageGenerator.它不起作用,该方法copyCGImageAtTime:actualTime: error:返回null image ref.根据答案,此处 AVAssetImageGenerator不适用于流媒体视频.
  2. 拍摄玩家视图的快照.我第一次尝试renderInContext:AVPlayerLayer,但后来我意识到,这不是渲染这种"特殊"层.然后我发现了iOS 7中引入的一种新方法 - drawViewHierarchyInRect:afterScreenUpdates:它应该能够渲染特殊的图层,但没有运气,仍然可以获得带有空白黑色区域的UI快照,其中显示视频.
  3. AVPlayerItemVideoOutput.我为我添加了一个视频输出AVPlayerItem,但每当我调用hasNewPixelBufferForItemTime:它时返回NO.我想问题是再次流式传输视频,我并不孤单.
  4. AVAssetReader.我正在考虑尝试,但决定在这里找到相关问题后不要浪费时间.

所以,有没有办法得到我现在在屏幕上看到的东西的快照?我简直不敢相信.

video objective-c avfoundation ios avplayer

9
推荐指数
2
解决办法
6941
查看次数

AVAsset"tracksWithMediaType"返回一个空数组

这是我用来将视频合并在一起的方法的开始

-(void) mergeVideosAndAudio:(AVAsset *)audioAsset{

    //Load Video Assets

    NSError *error;
    NSArray *dirFiles;
    if ((dirFiles = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:[self documentsDirectory] error:&error]) == nil) {
        // handle the error
    };
    // find all the temp files
    NSArray *movFiles = [dirFiles filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self BEGINSWITH 'temp'"]];
    NSLog(@"The are %i temp files",movFiles.count);

    //Create assets array
    NSMutableArray *assets = [[NSMutableArray alloc]init];

    for (int i = 0; i < movFiles.count; i++) {
        NSString *videoURL = [[self documentsDirectory] stringByAppendingPathComponent:
                              [NSString stringWithFormat:@"temp%i.mov", i]];

        NSURL *url = [NSURL fileURLWithPath:videoURL];

        AVURLAsset *videoAsset …
Run Code Online (Sandbox Code Playgroud)

ios avasset

7
推荐指数
1
解决办法
4307
查看次数

在 iOS 中实时访问视频帧

我必须从服务器访问视频,我希望能够实时访问它的帧,以便我可以对它们进行一些图像处理。

我知道如何使用 AVAssetReader 离线完成,但此解决方案不适用于实时处理。

video avfoundation ios swift

2
推荐指数
1
解决办法
1843
查看次数