gpt4 book ai didi

ios - 如何从视频 url iOS 获取可用的视频尺寸/质量?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:20:56 25 4
gpt4 key购买 nike

我正在使用 iOS 中的 AVPlayer (OBJECTIVE-C) 创建自定义视频播放器。我有一个设置按钮,单击该按钮将显示可用的视频尺寸和音频格式。下面是设计:

enter image description here

所以,我想知道:

1).如何从视频 url(不是本地视频)获取可用尺寸?

2).即使我能够获取尺寸,我可以在播放 AVPlayer 时在可用尺寸之间切换吗?

谁能给我一个提示?

最佳答案

如果不是HLS(streaming)视频,可以通过以下代码获取Resolution信息。

示例代码:

// player is playing
if (_player.rate != 0 && _player.error == nil)
{
AVAssetTrack *track = [[_player.currentItem.asset tracksWithMediaType:AVMediaTypeVideo] firstObject];
if (track != nil)
{
CGSize naturalSize = [track naturalSize];
naturalSize = CGSizeApplyAffineTransform(naturalSize, track.preferredTransform);

NSInteger width = (NSInteger) naturalSize.width;
NSInteger height = (NSInteger) naturalSize.height;
NSLog(@"Resolution : %ld x %ld", width, height);
}
}

但是,对于 HLS 视频,上面的代码不起作用。我已经以不同的方式解决了这个问题。当我播放视频时,我从视频中获取图像并计算其分辨率。

示例代码如下:

// player is playing
if (_player.rate != 0 && _player.error == nil)
{
AVAssetTrack *track = [[_player.currentItem.asset tracksWithMediaType:AVMediaTypeVideo] firstObject];
CMTime currentTime = _player.currentItem.currentTime;
CVPixelBufferRef buffer = [_videoOutput copyPixelBufferForItemTime:currentTime itemTimeForDisplay:nil];

NSInteger width = CVPixelBufferGetWidth(buffer);
NSInteger height = CVPixelBufferGetHeight(buffer);
NSLog(@"Resolution : %ld x %ld", width, height);
}

关于ios - 如何从视频 url iOS 获取可用的视频尺寸/质量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36590883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com