gpt4 book ai didi

android - 批量写入样本时,Mediamuxer 会生成损坏的视频

转载 作者:行者123 更新时间:2023-11-29 19:45:59 25 4
gpt4 key购买 nike

我正在尝试使用 Android 的 MediaMuxer 和 MediaCodec 来制作 MP4 视频。

如果我通过调用 writeSampleData() 将帧从编解码器直接抽取到多路复用器,则一切正常并生成正确的视频。

但是,如果我尝试先将这些帧存储在一个数组中,然后决定将它们发送到混合器,那么即使演示时间戳是正确的,我也无法制作出有效的视频。

出于某种原因,似乎 mediamuxer 输出不仅取决于呈现时间戳,还取决于调用“writeSampleData”的实际时间,尽管据我所知,拥有正确的时间戳就足够了。

任何人都可以阐明这个问题吗?

最佳答案

谢谢 mstorsjofadden .我实际上遇到了一系列错误,这些错误让我无法理解到底发生了什么。你的两个问题都让我找到了正确的代码,并确信使用 writeSampleData() 对时间不敏感。

是的,我第一次得到错误的缓冲区。这个问题最初并没有引起注意,因为在缓冲区被重写之前,复用器正在写入帧。当我引入延迟并决定复制缓冲区内容时,我遇到了另一个问题(基本上是竞争条件)并得出结论并非如此。

此代码(针对 SmartPolicing 项目)的作用是捕获视频和音频以创建 MP4 文件。我可以使用 MediaRecorder(这是最初的解决方案),但我们还想拦截帧并通过网络流式传输视频,因此我们放弃了 MediaRecorder 并创建了一个自定义解决方案。

现在一切顺利。非常感谢,伙计们。

关于android - 批量写入样本时,Mediamuxer 会生成损坏的视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37707410/

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