BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / mobile-terminal-at / #34145同步于 2018/9/15
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileTerminalAT机器人发帖

[已解决]安卓相机录制视频过程中切换摄像头

wu2011211367
2018/9/15镜像同步7 回复
这个feature终于圆满做出来了,不容易啊,基本参考 https://github.com/saki4510t/AudioVideoRecordingSample 这个demo写的真的很牛逼,各模块解藕的非常好,虽然我弄过来吧glview和camera再拆了出来不过基本还是按照它的结构 然后不止实现了切换摄像头还实现了按比例裁剪尺寸,和缩放,通过openGL的矩阵坐标实现 这一套做下来感觉还是有不少收获,要不是因为写出来的东西是公司代码,我都想开源了,不过还是那个demo厉害 另外一个很有参考价值的demo是谷歌的grafika https://github.com/google/grafika 希望这两个demo能帮助后边的人吧 结贴 --------------------------------------------------------------------------------- 有人研究过这一块的东西么? 一般安卓视频录制使用camera配合mediarecorder来录制视频 然而问题来了,很多手机前置摄像头和后置摄像头支持的分辨率不一定相等,比如后置的是 1920x1080但前置只有1280x960 mediarecorder开始录制的时候会将视频源和音频源设进去,在开始运行的过程中是没法换这个东西的,所以只用这两个似乎不能连续的录切换摄像头的视频 现在的解决办法只能是用户切换的时候重新初始化mediarecorder然后再录,也就是分多段,完成之后再想办法将多段视频先转换成同一分辨率,再拼接起来,这个真的是太恶心了,现在用ffmpeg速度奇差,简直不能忍,故来求助,不知道有没有同学研究过类似问题 至于为什么有录制过程中要换摄像头这种奇葩需求? PM:微信就可以做啊! 我:。。。。。。 我看了一下大多数手机自带的相机应用都没有这个功能,三星的几款似乎可以,而且微信这个也不是很稳,我在一台nexus6上面录视频连续换两次必崩 不知道我邮有没有做相关项目的,求教,求助,求大腿,各种求Qaq
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
sollian机器人#1 · 2018/9/18
虽然都是在录像,但不一定使用的是系统提供的Camera类。也可能是第三方的sdk。比如拍摄小视频的美摄sdk等。
tonyjansan机器人#2 · 2018/9/18
视频分辨率和Camera PreviewSize是两个东西,预览帧数据的Buffer大小和视频帧完全可以不一样; 用MediaRecorder肯定是做不了这种事,接口封装级别太高,不能做扩展,要用MediaCodec,但是有Android API级别限制,同时受底层编码器实现影响:https://developer.android.google.cn/reference/android/media/MediaCodec ; FFMpeg纯软编一定是慢的,要配合平台硬编才能加快速度:https://trac.ffmpeg.org/wiki/HWAccelIntro 。
omgbu机器人#3 · 2018/9/18
ls说得对,MediaCodec可以。
wu2011211367机器人#4 · 2018/9/26
【 在 sollian 的大作中提到: 】 : 虽然都是在录像,但不一定使用的是系统提供的Camera类。也可能是第三方的sdk。比如拍摄小视频的美摄sdk等。 感谢回帖,第三方的现在还没有考虑去用哈
wu2011211367机器人#5 · 2018/9/26
【 在 tonyjansan 的大作中提到: 】 : 视频分辨率和Camera PreviewSize是两个东西,预览帧数据的Buffer大小和视频帧完全可以不一样; : 用MediaRecorder肯定是做不了这种事,接口封装级别太高,不能做扩展,要用MediaCodec,但是有Android API级别限制,同时受底层编码器实现影响:https://developer.android.google.cn/reference/android/media/MediaCodec ; : FFMpeg纯软编一定是慢的,要配合平台硬编才能加快速度:https://trac.ffmpeg.org/wiki/HWAccelIntro 。 嗯嗯,感谢,现在也再尝试去用codec去做,感谢链接
sollian机器人#6 · 2018/9/26
我不是说让你去用,我的意思是,人家用的和你可能根本不是一个api 【 在 wu2011211367 的大作中提到: 】 : : 感谢回帖,第三方的现在还没有考虑去用哈
xlover机器人#7 · 2018/11/2
【 在 tonyjansan 的大作中提到: 】 : 视频分辨率和Camera PreviewSize是两个东西,预览帧数据的Buffer大小和视频帧完全可以不一样; : 用MediaRecorder肯定是做不了这种事,接口封装级别太高,不能做扩展,要用MediaCodec,但是有Android API级别限制,同时受底层编码器实现影响:https://developer.android.google.cn/reference/android/media/MediaCodec ; : FFMpeg纯软编一定是慢的,要配合平台硬编才能加快速度:https://trac.ffmpeg.org/wiki/HWAccelIntro 。 哈哈 看到个靠谱的