使用AVPlayer播放H.265视频文件

5

我正在尝试使用AVPlayer播放H.265视频文件(在iOS 10和11中均可)。以下是代码:

 let fileUrl = Bundle.main.url(forResource: "sample-h265-360", withExtension: "mp4")
 player = AVPlayer(url: fileUrl!)
 player?.play()

音频播放正常,但视频不显示(我正在使用AVPlayerViewController)。我已经阅读过iOS 11支持H.265的说明,但对我来说结果是相同的(音频播放但视频不显示)。

我尝试使用其他应用程序传输文件并播放它。使用ShareIt时可以正常工作。有人可以建议播放此内容的库吗?或者分享使用的内置音乐播放器是什么?我的代码是否有任何错误?是否有人成功地使用AVPlayer播放H.265文件?

1个回答

13

由于某些愚蠢的原因,苹果只播放标记为'hvc1'的hevc mp4文件。大多数制作工具会标记为'hev1'。

您可以使用最新版本的ffmpeg重新标记文件。

ffmpeg -i input.mp4 -vcodec copy -acodec copy -tag:v hvc1 output.mp4


谢谢回复。我会尝试并检查。 - Bharath Reddy
我创建了一个新的mp4文件,并将标签更改为hvc1。在macOS上使用Quick Time播放器可以正常播放,但是当我将其添加到iOS项目中时,仍然无法显示视频。我需要做些其他的事情吗? - Bharath Reddy
它在iOS 11设备上完美播放,但在iOS 10设备上无法播放。我们能否更改一些内容,以便即使在iOS 10设备上也可以播放? - Bharath Reddy
1
iOS10不支持HEVC。 - szatmary
相同的视频文件在ShareIt应用程序中即使在iOS 10设备上也可以播放。你知道他们是如何做到的吗? - Bharath Reddy
1
感谢苹果给我们留下了这个小地雷。我花了一整天的时间来追踪它。 - Mike

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接