黄文君

Results 29 comments of 黄文君
trafficstars

现在我都没啥时间弄这块,天天加班填坑。配音功能,你可以通过单独录制AAC文件,然后将视频流单独抽取出来再做merge就好。配音不涉及太高深的技术,除非是要做变声处理,这时候应该会涉及sox之类的库的使用,原声配音最大的难点无非就是音视频的latency问题,做一下同步处理就好。视频压缩的话,需要用FFmpeg 和 libx264 进行转码,目前MediaCodec在 Android 7.0以下的Profile是达不到要求的,并且MediaCodec缺少很多可配置的参数,很难达到要求。

onPreviewFrame回调需要Camera在startPreview之前设置回调,否则有些设备会不回调。另外,OpenGL使用完之后,需要用调用eglSwapBuffer,如果你使用的是GLSurfaceView,可以不管这个。你可以检查一下录制流程是否阻塞了预览流程。

这个地方后续我会更换掉。原来合成代码有些问题,并且原来的录制代码不支持倍速录制,后面我会更换成新的录制方案,详情请参考recorder的代码。

Ididn‘t encounter this problem. maybe a compatibility exception. while switching camera, EGLContext may have been changed to another one by System. to fix it, you can try-catch this exception and...

并不是,你这个地方是要以某一边为基准来计算才能得到正确的结果,前面计算出了中心点的位置,然后除以imageHeight,这里是将实际坐标转化为NDC坐标,只能以某个边为基准,而不是分别除以宽高,因为我的Matrix.frustumM设置了ratio的,后续的计算就不能分别除以宽高了,要不然贴纸会变形的。我这里是以高度为基准计算得到的。这个地方可能比较难理解,需要你对透视矩阵的各个参数理解得比较清楚才行。你尝试改成你说的那样,那也是一种做法,但不管是哪种方法,贴纸从人脸基准到透视空间转换再到姿态角变换的过程,是一个比较长的流程,相对复杂一点。

目前编辑页相关功能还没时间搞,看下这段时间到春节期间能不能抽出时间来实现该功能。最近这几个月都比较忙。

这个应该是升级了gradle之后导致依赖的so路径冲突,不建议放在jniLibs目录下了,可以通过以下方法解决多种架构so选择问题,也可以采用不同的.a静态库,然后用脚本编译出相应的so解决这个问题: `packagingOptions { pickFirst 'lib/*/libyuv.so' pickFirst 'lib/*/libffmpeg.so' }`

人脸关键点索引是有顺序的,你要根据自身的人脸关键点顺序做一套处理出来,至于怎么处理可以参考本人写的那几篇文章

看着像是没包含对应的编解码器?fifo创建失败,造成空指针崩溃。

看具体业务场景吧,本质上还是一样的流程,现有的方案提取像素的缓冲区是对应的EGLSurface,因此需要多做一步drawFrame操作,你想节省这一步操作当然没啥问题,这个并没有实质的影响。提取像素的瓶颈在glReadPixels,因为glReadPixels会导致的GPU停下来等待指令执行完,我个人不太推荐使用这个方法,可以说只要是利用glReadPixels提取图像数据都不是合理的方案,PBO本身又存在兼容性问题。项目中的截屏处理逻辑,后续有时间我会改掉这个地方,目前暂时没时间管这边,建议你尝试其他的提取图像方案,比如使用ImageReader。