编码后丢弃 MediaCodec 输出

问题描述

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

任何类型的黑客都可以,只是视频的编码应该继续但不保存。

解决方法

我找到了解决方案。我们确实可以在 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
}