ios - AVURLAsset tracks 为空,但视频/音频可播放

标签 ios ffmpeg avplayer avasset avurlasset

我有视频放在这里:

http://195.16.112.71/adaptive/66aebabb-2632-44fc-abf1-df29bca6b941.video/66aebabb-2632-44fc-abf1-df29bca6b941.m3u8

Ffmpeg 说这个视频有 5 个轨道而且是正确的。

但是如果我对该链接使用 AVURLAsset,它会告诉我没有任何轨道:

NSArray* const tracks = asset.tracks; // it's empty

我修改了 Apple 的 StichedStreamPlayer 示例以重现此问题,它位于此处: https://yadi.sk/d/hV3jfbx1Z9sfC

只需点击“加载电影”,然后点击“播放”按钮 - 电影可以完美播放,但如果您检查 prepareToPlayAsset 函数中的 tracks 变量,您会发现它是空的。 问题是:如 AVURLAsset 所说,如果实际上视频有 5 个轨道,为什么它是空的?如果不存在轨道,该视频如何播放?

提前感谢您的帮助!

最佳答案

如果您直接流式传输视频,那么它不会有轨道。您可以下载该文件并索取视频文件 Assets 的轨道。

关于ios - AVURLAsset tracks 为空,但视频/音频可播放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25154576/

相关文章:

iOS推送/弹出 View Controller 内存仍在增加

ios - 如何为 iPad 应用程序添加条码阅读器功能?

ffmpeg - 使用 ffmpeeg 编码视频时出现共享 libavfilter.so.0 错误

java - 如何读取/写入 ProcessBuilder 流并最终在 ffmpeg 中创建输出文件

ios - AVPlayer 无明显原因暂停

ios - MPMusicPlayerController 打破锁屏控制

objective-c - 如何静音 AVPlayer 中播放的视频?

c# - 如何将 Objective-C initXXX 方法绑定(bind)到 Xamarin.iOS 的具有相同类型参数的构造函数?

ffmpeg mov to mp4 在 linux 上可以正常播放 windows 上没有视频

ios - 我可以将 IBOutletCollection 与 WatchKit 一起使用吗?