1

我在 Camera2 应用程序中使用MediaCodec,并且我有一个通过运行一天的记录来测试它的用例。我想要对视频进行编码,但我希望它一完成就被丢弃,因此不使用存储空间。如果可能的话,最好将 MediaCodec 输出路由到 dev/null 之类的东西。

任何形式的 hack 也可以,只是视频的编码应该继续但不保存。

4

1 回答 1

-1

我找到了解决方案。即使在 Android 上,我们也确实可以重定向到 dev/null。

private fun create(): MediaMuxer {
    return  MediaMuxer(openFile("dev/null")!!, MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4)
}

private fun openFile(path: String): FileDescriptor? {
    val file = File(path)
    val fos = FileOutputStream(file)
    return fos.fd
}

另一种解决方案是使muxer null编码发生但不保存。muxer?.start() 如果您想在轨道索引超过最大值的问题上运行几天的编码,此解决方案会更好。

于 2021-01-06T14:48:33.013 回答