Ios 使用avplayervewcontroller从HTTP实时流媒体获取视频详细信息

Ios 使用avplayervewcontroller从HTTP实时流媒体获取视频详细信息,ios,swift,Ios,Swift,我目前正在使用avplayervewcontroller/AVPlayer制作HTTP流媒体直播视频 我正在播放支持.m38u文件的视频 播放效果很好,但我的问题是,在生成.m38u文件时,我是否可以像设置了4种分辨率那样获得视频数据,我可以在我的终点改变分辨率现在的问题是如何获得我在终点设置的所有值。我正在播放这也是在android中,使用Track,我可以获取所有视频信息,但在ios中,我如何获取包含视频的所有细节,如高度、轨迹、视频支持的分辨率等 4.我做了很多搜索,但都没有成功。。 需要

我目前正在使用avplayervewcontroller/AVPlayer制作HTTP流媒体直播视频

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

播放效果很好,但我的问题是,在生成.m38u文件时,我是否可以像设置了4种分辨率那样获得视频数据,我可以在我的终点改变分辨率现在的问题是如何获得我在终点设置的所有值。我正在播放这也是在android中,使用Track,我可以获取所有视频信息,但在ios中,我如何获取包含视频的所有细节,如高度、轨迹、视频支持的分辨率等

4.我做了很多搜索,但都没有成功。。 需要帮助吗
提前谢谢你

安妮塔,我开始我希望这里是播放视频的一段代码

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>)
blah(0

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

将metadata=info[UIIMAGEPICKERCONTROLLEMETADATA]设为NSDictionary
将image=info[UIImagePickerControllerOriginalImage]设为?UIImage


是尝试获取的命令…如果您成功了,请告诉我!

安妮塔,我开始,我希望这里是播放视频的代码片段

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>)
blah(0

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

将metadata=info[UIIMAGEPICKERCONTROLLEMETADATA]设为NSDictionary
将image=info[UIImagePickerControllerOriginalImage]设为?UIImage


是尝试获取的命令…如果成功,请告诉我!

如何获取分辨率数据,我们可以在youTube播放器中显示这些数据,如“自动”、“160”、“240”、“360”等等,或者我们如何实现这种选择功能,以不同的分辨率查看视频?对不起,我没有得到足够的信息,但仍然感谢您的帮助…:这是在线播放m3s8文件的链接,当您传递文件名时,它将在底部为您提供选项,如HD(自动,160240360)等等…我想开发我的视频diito,就像我在这个url上开发的一样…你能不能把代码传给我,让我在swift中的端点实现类似的功能..我如何获取分辨率数据,我们可以在youTube播放器上显示这些数据,如“Auto”,“160”,“240”,“360”等等,或者我们如何实现这种选择功能,以不同的分辨率查看视频?对不起,我没有得到足够的信息,但仍然感谢您的帮助…:这是在线播放m3s8文件的链接,当您传递文件名时,它将在底部为您提供选项,如HD(自动,160240360)等等…我想开发我的视频diito,就像我在这个url上开发的一样…你能不能把代码传给我,让我在swift中的端点实现类似的功能…你好,安妮塔。我已经读了你的问题。我有类似的问题,想实现你描述的一样。那么你有什么解决方案吗?如果有,请帮助我我面临同样的问题,有什么解决办法@Anita???你好,Anita。我已经读了你的问题。我有类似的问题,希望实现你描述的同样的事情。那么你有什么解决办法吗?如果有,请帮助我解决同样的问题@Anita???