gpt4 book ai didi

ios - 使用 id3taggenerator 和 mediafilesegmenter 将定时元数据插入 HLS(HTTP 直播流)

转载 作者:可可西里 更新时间:2023-11-01 03:56:11 25 4
gpt4 key购买 nike

我尝试将定时元数据插入 .mov 或 .mp4 视频文件。我确实在这里读到了它:

基本上,我的问题是无论我尝试什么,我都能按预期获得生成的 .m3u8 和一堆 .ts 文件,没有任何错误,但我觉得没有插入元数据。

让我详细解释一下我的工作。

首先我生成一些 id3 标签如下:

id3taggenerator -o tag1.id3 -t "Test"

然后我编写了一个名为“macrofile.txt”的宏文本文件,其中包含:

5 id3 tag1.id3

我确保文件以换行符结尾,并且每个字段由一个空格而不是制表符分隔。

然后我使用 mediafilesegmenter 创建带有 .ts 文件的 m3u8,命令还包含宏文件,如下所示:

mediafilesegmenter -index-file test.m3u8 -M macrofile.txt -no-floating-point-duration -iframe-index-file none test.mp4

这将成功生成 m3u8 文件 + 一堆 .ts 文件(每 10 秒视频一个 ts)

我将这些上传到我的网络服务器上(显然我添加了正确的 MIME 类型等),然后从我的 iOS 应用程序中打开流:

NSURL* url = [NSURL URLWithString:@"http://url.com/test.m3u8"];
player = [[MPMoviePlayerController alloc] initWithContentURL:url];

我还确保添加如下 MPMoviePlayerTimedMetadataUpdatedNotification 通知:

NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self
selector:@selector(metadataUpdate:)
name:MPMoviePlayerTimedMetadataUpdatedNotification
object:nil];

现在的问题是,永远不会触发 MPMoviePlayerTimedMetadataUpdatedNotification。

如果我尝试使用每 5 秒包含一次定时元数据的 Apple 测试流 (https://devimages.apple.com.edgekey.net/resources/http-streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8) -> 它完美运行

所以这就是为什么我假设我生成的 .ts 文件不包含任何元数据,或者至少我在某处做错了什么,但我检查了所有可能的东西,现在我没有想法了。

最佳答案

在这方面花了更多时间后,我决定联系 Apple Developer Technical Support。

确实是最新版mediafilesegmenter工具1.1(130110)的bug

这是访问错误报告的直接链接 https://bugreport.apple.com/cgi-bin/WebObjects/RadarWeb.woa/67/wo/quUWkJlEHk4L6S6U9geEZ0/21.83.28.0.13

BUG ID为13178898

一旦 bug 得到解决或 Apple 向我提供解决方法,我会立即在此处更新我的答案。

关于ios - 使用 id3taggenerator 和 mediafilesegmenter 将定时元数据插入 HLS(HTTP 直播流),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14646343/

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