ios - 使用 AVPlayerViewController 从 HTTP 实时流中获取视频详细信息

标签 ios swift

我目前正在使用 AVPlayerViewController/AVPlayer 处理 HTTP Live 流媒体视频

我正在播放支持 .m38u 文件的视频

它播放得很好,但我的问题是,我可以拥有视频数据吗,就像我在生成 .m38u 文件时设置了 4 种分辨率一样。我可以在终点改变分辨率,现在的问题是如何获取我在端点设置的所有值。我也在android中玩这个游戏,使用Track我可以获取所有视频信息,但在ios中我如何获取包含视频的所有详细信息,例如视频的高度、轨道、分辨率等。

我进行了很多搜索但未能成功.. 需要帮忙 提前致谢

最佳答案

Anita,我希望这里是播放视频的代码片段..

self.command.text = "Loading VIDEO"


            let videoURL = self.currentSlide.aURL
            self.playerItem = AVPlayerItem(URL: videoURL)
            self.player = AVPlayer(playerItem: self.playerItem)
            self.playerLayer = AVPlayerLayer(player: self.player)
            self.streamPlayer =  AVPlayerViewController()
            self.streamPlayer.player = self.player
            self.streamPlayer.view.frame = CGRect(x: 128, y: 222, width: 512, height: 256)

            let currentFM = self.streamPlayer.player?.currentItem?.asset
            for blah in (currentFM?.metadata.enumerate())! {
                print("blah \(blah)")
            }

            self.presentViewController(self.streamPlayer, animated: true)
                self.streamPlayer.player!.play()
            }

我添加了一些额外的内容来显示有关视频的元数据...它打印了...

blah (0, <AVMetadataItem: 0x15e7e4280, identifier=itsk/gsst, keySpace=itsk,     key class = __NSCFNumber, key=gsst, commonKey=(null), extendedLanguageTag=   (null), dataType=com.apple.metadata.datatype.UTF-8, time={INVALID}, duration=    {INVALID}, startDate=(null), extras={
dataType = 1;
dataTypeNamespace = "com.apple.itunes";
}, value=0>)
blah (1, <AVMetadataItem: 0x15e7e1a50, identifier=itsk/gstd, keySpace=itsk, key class = __NSCFNumber, key=gstd, commonKey=(null), extendedLanguageTag=(null), dataType=com.apple.metadata.datatype.UTF-8, time={INVALID}, duration={INVALID}, startDate=(null), extras={
dataType = 1;
dataTypeNamespace = "com.apple.itunes";
}, value=222980>)

希望它对你来说比对我意味着更多:)我认为你的样子在 Applespeak 中被分类/称为元数据......

也看看这篇文章

Capture still image from AVCaptureSession in Swift

它描述了如何捕获视频的帧,一旦你有了一个帧,你就可以仔细查看它的元数据,我怀疑会找到你想要的一些细节。

让元数据=信息[UIImagePickerControllerMediaMetadata]为? NSDictionary
让 image = info[UIImagePickerControllerOriginalImage] 为? UI图像

是否有尝试获取该内容的命令...如果您成功,请告诉我!

关于ios - 使用 AVPlayerViewController 从 HTTP 实时流中获取视频详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35668657/

相关文章:

ios - XCode 5 更新打破了 Storyboard场景布局

iOS 将自定义框架导入项目

ios - MKPolyLine 未显示在 Swift 2.0 中的 iOS 应用程序上

ios - 当关系从多变为一时如何执行迁移?

ios - 无法将我的类连接到我的 ViewController Swift

ios - 使用 iOS 8 SDK 在 iOS 9 设备上运行调试构建

ios - ABAddressBookCopyArrayOfAllPeopleInSourceWithSortOrdering 不工作

swift - 如何将 AnyObject 转换为 NSTaggedPointerString?

ios - 由于 GestureRecognizer,CollectionView 单元格需要两次点击

ios - MetricKit MXCallStackTree 符号