编码后丢弃 MediaCodec 输出
Discard MediaCodec output after encoding
我在 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()
如果您想 运行 编码有轨道索引超过最大值问题的几天,此解决方案更好。
我在 Camera2 应用程序中使用 MediaCodec,我有一个通过 运行 记录一天来测试它的用例。 我想要对视频进行编码,但我希望它在完成后立即被丢弃,这样就不会使用任何存储空间。如果可能的话,最好将 MediaCodec 输出路由到 dev/null。
任何类型的 hack 都可以,只是视频的编码应该继续但不保存。
我找到了解决方案。我们确实可以在 Android.
上重定向到 dev/nullprivate 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()
如果您想 运行 编码有轨道索引超过最大值问题的几天,此解决方案更好。