我正在尝试结合 MediaCodec 和 Mp4Parser (封装成 .mp4)在 Android 上(使用 API 16)录制、编码并最终创建一个短片。
一切都工作得很好,除了 .mp4 的持续时间:它总是 3 秒长 - 并且运行速度大约是“正确”速度的两倍。
- 编码器的输入为 84 帧(间隔 100 毫秒)。
- 最后一帧设置“流结束”标志。
- 我将每帧的演示时间设置为
queueInputBuffer
我尝试过调整每一个可以想象的参数 - 但似乎没有什么区别 - 影片总是 3 秒长 - 而且总是播放得太快。
那么播放速度由什么决定呢?如何以“自然”速度生成影片?
我想通了:当用mp4parser封装时(如果你的目标APIqueueInputBuffer如果您不使用 Android 的内置复用器(仅可从 API18 获得),则似乎没有什么区别。
我偶然发现thisgithub上的问题,表明需要以下内容:
new H264TrackImpl(new FileDataSourceImpl(rawDataFile), "eng", 100, 10);
- 最后两个参数(timeScale 和frameTick)将播放速度设置为“正常”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)