【问题标题】:Discard MediaCodec output after encoding编码后丢弃 MediaCodec 输出
【发布时间】:2021-04-12 06:31:38
【问题描述】:
我在 Camera2 应用程序中使用 MediaCodec,并且我有一个通过运行一天的录制来测试它的用例。
我想要对视频进行编码,但我希望它一完成就被丢弃,因此不使用存储空间。如果可能的话,最好将 MediaCodec 输出路由到 dev/null 之类的东西。
任何类型的 hack 也可以,只是应该继续对视频进行编码但不保存。
【问题讨论】:
标签:
android
testing
android-camera2
android-mediacodec
dev-null
【解决方案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()
如果您想在轨道索引超过最大值的问题上运行几天的编码,此解决方案会更好。