gpt4 book ai didi

android - MediaMuxer 错误 "Failed to stop the muxer"

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:54:06 25 4
gpt4 key购买 nike

我正在使用 mime 类型为“video/avc”的 MediaCodecCamera 预览数据进行编码,并将编码后的数据(仅视频,无音频)传递给 MediaMuxer。混合器似乎运行良好并创建了一个合理大小的输出文件(即,我记录的时间越长,输出文件越大)。但是,当我尝试停止 muxer 时,出现“无法停止 muxer”错误:

10-21 10:39:40.755: E/AndroidRuntime(2166): Caused by: java.lang.IllegalStateException: Failed to stop the muxer

在停止失败之前有一些可疑的 MPEG4Writer 日志消息:

10-21 10:39:40.740: D/MPEG4Writer(2166): Stopping Video track
10-21 10:39:40.740: E/MPEG4Writer(2166): Missing codec specific data
10-21 10:39:40.740: W/MPEG4Writer(2166): 0-duration samples found: 122
10-21 10:39:40.740: I/MPEG4Writer(2166): Received total/0-length (123/1) buffers and encoded 123 frames. - video
10-21 10:39:40.740: D/MPEG4Writer(2166): Stopping Video track source
10-21 10:39:40.740: D/MPEG4Writer(2166): Video track stopped
10-21 10:39:40.740: D/MPEG4Writer(2166): Stopping writer thread
10-21 10:39:40.740: D/MPEG4Writer(2166): 0 chunks are written in the last batch
10-21 10:39:40.740: D/MPEG4Writer(2166): Writer thread stopped
10-21 10:39:40.740: E/MPEG4Writer(2166): writer error ended!

有什么线索是造成这种情况的原因吗?不确定您还需要什么信息。

最佳答案

E/MPEG4Writer(2166): Missing codec specific data

听起来您没有使用包含 CSD 的 MediaFormat 调用 MediaMuxer#addTrack()。查看EncodeAndMuxTest.java有关如何执行此操作的示例代码。

查看 MPEG4Writer implementation MediaMuxer 使用,第 2360 行有一个 isTrackMalformed() 检查;如果 CSD 数据不存在,它会设置 ERROR_MALFORMED,但不会立即返回。没有任何东西可以清除错误,所以它会做很多工作然后失败,这似乎与您所看到的相符。

关于android - MediaMuxer 错误 "Failed to stop the muxer",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19505845/

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