- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我尝试将定时元数据插入 .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/
此时我的解决方案正在运行,但仅作为 RTMP,我可以使用 URL 完美地观看我的流: rtmp://X.X.X.X:1935/show/name 但问题是我使用 WebOS 的 LG 智能电视不支持
将 hls 流重新混合为 mp4 文件时,我使用以下命令。 ffmpeg -i "http://example.com/master.m3u8" -c copy -bsf:a aac_adtstoas
我正在使用 Hls.js 将视频管理到我的 HTML 页面中。我需要构建一个音量计来告知用户视频的音频电平。由于我需要保留 video.muted = true,我想知道 Hls.js 是否有任何方法
我正在构建一个视频播放器,它需要播放 HLS 直播和点播流。 它似乎只在 Safari 中运行良好。 (减去我需要更新的自定义样式,忽略它) 在所有其他浏览器中,我收到此错误: VIDEOJS: ER
原始视频是来自 https://www.appsloveworld.com/download-sample-mp4-video-mp4-test-videos/ 的“示例视频 5” . 我的 /hom
我正在直播mp3流(可能它正在使用 icecast - 管理员要求我在另一台服务器上重新广播它)。我正在使用 ffmpeg对于这个任务,使用 HLS播放列表,公开URL地点。 有用!但有时(我的意思是
我正在使用最新的 hls.js 1.0.0(不是 rc)流式传输 .m3u8,但版本为 2021-04-01... 例如:直播从下午 5 点开始,现在是下午 5 点 15 分... 几乎所有浏览器中的
我正在尝试实现具有 3 种视频质量和一种音频质量的自适应流媒体。愿景是带宽减少时切换到仅音频。但由于某种原因,仅播放仅音频文件。它没有切换到任何其他质量。我在客户端使用 exoplayer。 这是主m
我在仅播放音频的 Android 上播放 HLS 时遇到困难。该流将播放第一个视频 fragment ,然后变成仅音频流。这是一个示例链接 https://clipter.com/c/aymels8/
在我的代码中,我试图生成 m3u8不同质量的我的单个视频的格式。我的代码能够生成m3u8但没有品质,它采用原始框架高度和宽度而不是我定义的框架。我对它进行了研究,但我无法完成正确的目标。因为我是 ff
我正在尝试将具有多个音频流的一些视频(不同格式,例如 mp4、mkv、avi)转换为只有一个音频的 HLS。我用 ffmpeg 尝试了不同的解决方案,但似乎没有一个是理想的。 例如 ffmpeg -i
我将视频转码为 HLS,使用以下命令一切正常: ffmpeg -i source -vcodec nvenc -acodec copy -f ssegment -segment_list playli
我们正在使用 JWPlayer 8.9.0,我们正在尝试在我们的视频中插入广告。 我们正在使用 EXT-X-DISCONTINUITY但显然,当我们开始转换广告时,播放器停止显示缓冲状态。 这是我们播
使用最近的 ffmpeg 主分支(commit 7fcbeb),我们可以使用生成主播放列表 -master_pl_name 选项。但我无法生成具有不同配置文件的主播放列表。尝试使用 -var_stre
使用 avformat_open_input 打开 HLS 流从所有流中检索数据,我只想从其中一些流中检索数据。那可能吗? 考虑以下 MWE: #include int main(int argc,
这可能不是一个纯粹的技术问题,但不能确定放置它的最佳位置。 因此,我们有一个直播网站(请考虑MTV)。我们使用HTTP Live Streaming交付内容。因此,视频流由一堆视频组成。我们希望对此进
HLS 协议(protocol)是否指定音频编解码器?如果支持,支持哪些? 我尝试搜索,但找到了不同的列表: MP3, HE-AAC or AC-3 根据 wikipedia AAC, AAC-LC,
我正在尝试在 iOS 中进行直播,因此遵循以下步骤 - 初始化播放器 player = AVPlayer() player.rate = 1.0
我使用 MPMoviePlayer、MPMovieAccessLogEvent 从服务器获取比特率文件视频 hls,我计算如下: double bitrate = 8 * event.observed
目前我正在使用 Kintex 7 和 microblaze 来实现伪随机位序列功能。我已经在HLS中执行了PRBS并创建了HLS IP,然后将HLS IP与vivado集成,生成比特流并将其导出到SD
我是一名优秀的程序员,十分优秀!