gpt4 book ai didi

video - 用于将 flv 重新包装为 mp4 的 C 库?

转载 作者:行者123 更新时间:2023-12-04 23:17:09 25 4
gpt4 key购买 nike

假设我们有一个 FLV 包装的视频(在容器下,它是 h.264 和 aac)

目标是阅读它,然后以 MP4 格式将其发送*,以便在 Safari/iOS 中进行流式传输

有没有可以帮助解决这个问题的库?我正在研究 ffmpeg,但我还没有弄清楚,我不确定它是否真的是我需要的(如果我需要一个实用程序来文件 ->文件它是完美的,毫无疑问,但作为一个 block 一个 block 地使用的库,还不确定它是否是让我咬牙切齿的正确地方)

编辑:假设我们正在按需讨论,即持续时间是已知的,并且可以在初始读/写之前扫描所有标题

最佳答案

你问的是不可能的。没有办法流式传输 mp4。它不是流媒体格式。 mp4 有(至少)两个分区。 MDAT 和 MOOV。 MDAT 包含原始音频/视频帧。但是有简单的连接,没有开始代码或时间信息。因此,如果没有 MOOV,它就是胡言乱语。 MOOV 包含 MDAT 中每个帧的偏移量、大小和时间戳。但在记录所有帧之前无法计算。

iOS 上唯一支持的即时转换格式是 HLS。

编辑:
这只是因为 flv 在内部使用与 mp4 相同的基本流格式。
您可以扫描 flv,提取序列头,并记下所有 flv 标签有效负载文件的偏移量和大小。还要记住哪些帧是关键帧。构造一个假 moov atom,它使用 flv 中的字节偏移量(加上比 MOOV 更大的字节数,例如 100 MB)将这些值写入 stbl 子原子。使用来自序列头的数据来填充 tkhd。用 FREE atom 加上 MDAT atom 的 header 填充 MOOV,使其正好为 100MB。最后让您的网络服务器映射范围请求大于 100MB 到 flv 而不是 MDAT。

关于video - 用于将 flv 重新包装为 mp4 的 C 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21255041/

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