我在 Camera2 应用程序中使用MediaCodec,并且我有一个通过运行一天的记录来测试它的用例。我想要对视频进行编码,但我希望它一完成就被丢弃,因此不使用存储空间。如果可能的话,最好将 MediaCodec 输出路由到 dev/null 之类的东西。
任何形式的 hack 也可以,只是视频的编码应该继续但不保存。
我在 Camera2 应用程序中使用MediaCodec,并且我有一个通过运行一天的记录来测试它的用例。我想要对视频进行编码,但我希望它一完成就被丢弃,因此不使用存储空间。如果可能的话,最好将 MediaCodec 输出路由到 dev/null 之类的东西。
任何形式的 hack 也可以,只是视频的编码应该继续但不保存。
我找到了解决方案。即使在 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()
如果您想在轨道索引超过最大值的问题上运行几天的编码,此解决方案会更好。