我找了很多,但没有找到任何解决方案。我的问题是,如何在录制时添加文本到视频中,以便我们在看到视频时可以获得相同的文本。当我看到截取的视频时,我想要这样的东西。
目前,我正在分别获得时间和视频。所以问题是如何结合it.Any类帮助将appreciated.Thanks提前..
发布于 2013-02-06 03:18:27
这是一个相当困难的问题,通常使用android来解决,假设你正在尝试将文本添加到实际的视频文件中,而不是简单地在VideoView
上显示TextView
。您提到您目前有单独的时间和视频,所以我假设您正在尝试将文本添加到视频文件本身。
为了向视频中添加文本,您需要在实际设备上对视频进行重新编码。在Android上重新编码视频很棘手,主要是因为Android手机上的处理器不同,而且编码依赖于处理器。有一个名为GPUImage
的开源iOS库可以让你做到这一点,但不幸的是,它不能在安卓上使用。
已经有一些努力来编译FFMPEG for Android (理论上会允许这种事情发生),但这涉及到一些与底层C++代码有关的严肃工作,我还没有找到任何应用程序在许多设备上简单地实现这一点(check out this video converter,注意不同手机的different codecs是如何需要下载的)。对于一个特定的设备,你可能会有更多的运气,但如果你正在寻找在许多设备上轻松分发,你可能会很难做到这一点。
目前,这个问题还没有简单的解决方案。
发布于 2021-02-17 20:57:29
我使用的是camera2接口。我创建了预览和ImageReader。我从记录表面得到画布。每一帧转换为位图并放入画布,然后绘制标志,文本等,
private val mOnImageAvailableListener = ImageReader.OnImageAvailableListener { reader ->
val image = reader.acquireNextImage() ?: return@OnImageAvailableListener
val bytes = image.toNV21()//image.convertYUV420888ToNV21()
val bitmap = Bitmap.createBitmap(image.width, image.height,
Bitmap.Config.ARGB_8888);
val bmData: Allocation = Converter.renderScriptNV21ToRGBA888(requireContext(),
image.width, image.height, bytes)
bmData.copyTo(bitmap)
val canvas = recorderSurface!!.lockCanvas(null)
canvas.drawBitmap(bitmap, 0f, 0f, Paint())
drawData(canvas)
recorderSurface!!.unlockCanvasAndPost(canvas)
bitmap.recycle()
image.close()
}
https://stackoverflow.com/questions/14660443
复制相似问题