0

我正在创建一个带有 2 个轨道的 FMP4(一个用于视频,一个用于音频)。我试图找出我应该在 mdat 中包含多少视频样本以及多少音频。

所以我的 FMP4 具有以下结构:

ftyp
moov
moof (track1 - video)
mdat (track1 - video)
moof (track2 - audio)
mdat (track2 - audio)
moof (track1 - video)
mdat (track1 - video)
moof (track2 - audio)
mdat (track2 - audio)
...

每个视频 mdat 应该只有 1 帧还是整个 GOP?

如果每个音频 mdat 都有前一个视频 mdat 的相应音频样本,或者我可以发送尽可能多的音频样本(因为音频样本要小得多,我可以发送 2 秒的音频,而之前发送的视频 mdat 只有 1 秒持续时间)。

PS:我想在每个视频 mdat 上发送整个 GOP,但我注意到当我使用 ffmpeg 重新编码 fmp4 时,它使得 mdat 只有 1 帧。我可以做到(每个 mdat 上只有 1 个视频帧),但是我不知道应该发送多少音频样本。如果我只发送该 1 个视频帧的相应音频样本,则音频播放效果不佳。

谢谢!

4

2 回答 2

0

您可以自由选择分组,它可以像每盒一帧/数据包一样简单。分组对读者来说很重要,因为它可能更喜欢在开始处理之前阅读完整的盒子。

于 2021-11-12T19:47:04.867 回答
0

从使用 ffmpeg 的几次经验测试来看,它似乎喜欢将 0.5 秒的视频帧和 0.5 秒的音频帧组合在一起,而且效果非常好。

于 2021-11-12T15:30:35.657 回答