sannies / mp4parser

A Java API to read, write and create MP4 files
Apache License 2.0
2.75k stars 566 forks source link

apend video problem,android back camera and front camera record Video, #341

Open dahai2070 opened 5 years ago

dahai2070 commented 5 years ago

` if (cameraPosition == SystemUtil.getCameraFacingFront()) {

        mediaRecorder.setOrientationHint(270);

    } else {
        mediaRecorder.setOrientationHint(90);
    }

` different camera(front and back),different OrientationHin,on record finish, erery clip is normal when separate play, after apend video ( many to one), There have been some problems. some clip reverse (up down exchange) , if all of clip has same OrientationHint,There will be no problem.

zejiancai commented 5 years ago

` if (cameraPosition == SystemUtil.getCameraFacingFront()) {

        mediaRecorder.setOrientationHint(270);

    } else {
        mediaRecorder.setOrientationHint(90);
    }

` different camera(front and back),different OrientationHin,on record finish, erery clip is normal when separate play, after apend video ( many to one), There have been some problems. some clip reverse (up down exchange) , if all of clip has same OrientationHint,There will be no problem.

hey, do you resolve this problem? I have trouble with this situation.

dahai2070 commented 5 years ago

This problem has not been solved.Finally, I prohibit switching camera when record video, but you can try use ffmpeg, some open source in github,i have find one ,but decode rate too slowly, at last i give up it,,, if you from china,we can talk in chinese,,,

dahai2070 commented 5 years ago

` if (cameraPosition == SystemUtil.getCameraFacingFront()) {

        mediaRecorder.setOrientationHint(270);

    } else {
        mediaRecorder.setOrientationHint(90);
    }

` different camera(front and back),different OrientationHin,on record finish, erery clip is normal when separate play, after apend video ( many to one), There have been some problems. some clip reverse (up down exchange) , if all of clip has same OrientationHint,There will be no problem.

hey, do you resolve this problem? I have trouble with this situation.

https://github.com/mabeijianxi/small-video-record ,you can try it

zejiancai commented 5 years ago

This problem has not been solved.Finally, I prohibit switching camera when record video, but you can try use ffmpeg, some open source in github,i have find one ,but decode rate too slowly, at last i give up it,,, if you from china,we can talk in chinese,,,

你好啊!竟然都是中国人啊!mp4parser这个框架好像就是不支持录制后切换摄像头啊,为什么不解决这个问题呢? small-video-record 你说的这个项目我看了的,目前我的需求是要录制过程中可以切换前后摄像头, small-video-record 1.0版本是可以实现,但是只支持targetSdk<=22,这个不适合,至于small-video-record 2.0版本,作者把这个功能去掉了。。。我看到API24以上Recorder 出现了pause()方法,不知道向下兼容性怎么样?

dahai2070 commented 5 years ago

small-video-record 2.0, 可以实现 切换摄像头啊,你下载源码自己改,弊端就是解码太慢了,每录制一个视频片段,几乎都要在 暂停录制的好几秒才能解码完,最后合并视频 也慢,

zejiancai commented 5 years ago

small-video-record 2.0, 可以实现 切换摄像头啊,你下载源码自己改,弊端就是解码太慢了,每录制一个视频片段,几乎都要在 暂停录制的好几秒才能解码完,最后合并视频 也慢,

那作者不是说容易出问题吗

zejiancai commented 5 years ago

small-video-record 2.0, 可以实现 切换摄像头啊,你下载源码自己改,弊端就是解码太慢了,每录制一个视频片段,几乎都要在 暂停录制的好几秒才能解码完,最后合并视频 也慢,

你试过了吗

dahai2070 commented 5 years ago

嗯,我都改好了的,只是我还是放弃了,慢的很,,

dahai2070 commented 5 years ago

估计还是要自己 用ffmpeg,自己写处理视频帧的代码,才能解决速度问题,

zejiancai commented 5 years ago

嗯,我都改好了的,只是我还是放弃了,慢的很,,

直接在java文件改就好吧,需要编译C++什么吗?

zejiancai commented 5 years ago

估计还是要自己 用ffmpeg,自己写处理视频帧的代码,才能解决速度问题,

ffmpeg网上方案很多,还要调研一下。。。我刚刚看到有个MediaCodec好像也可以合并视频,你了解过了吗?

dahai2070 commented 5 years ago

嗯,我都改好了的,只是我还是放弃了,慢的很,,

直接在java文件改就好吧,需要编译C++什么吗?

我就是在java 改的,你试试嘛,关键是拍摄暂停后,视频片段还处理不完,,,清晰度和视频大小都很不错,就是慢,,

dahai2070 commented 5 years ago

MediaCodec,好像没有,你发个链接看看,

zejiancai commented 5 years ago

嗯,我都改好了的,只是我还是放弃了,慢的很,,

直接在java文件改就好吧,需要编译C++什么吗?

我就是在java 改的,你试试嘛,关键是拍摄暂停后,视频片段还处理不完,,,清晰度和视频大小都很不错,就是慢,,

好的,谢谢你啦,这么晚还不睡啊,你不在中国吗

zejiancai commented 5 years ago

MediaCodec,好像没有,你发个链接看看,

https://www.jianshu.com/p/7ba52d1d6ad6

dahai2070 commented 5 years ago

MediaCodec,好像没有,你发个链接看看,

https://www.jianshu.com/p/7ba52d1d6ad6

我在 中国啊,我在部署自己的app的后端到阿里云,摸索着搞,用docker,所以没睡觉呢,我Q:274981914,

zejiancai commented 5 years ago

MediaCodec,好像没有,你发个链接看看,

https://www.jianshu.com/p/7ba52d1d6ad6

我在 中国啊,我在部署自己的app的后端到阿里云,摸索着搞,用docker,所以没睡觉呢,我Q:274981914,

加你了

Andorer8 commented 5 years ago

两位同胞,我也遇上这个问题了

dahai2070 commented 5 years ago

两位同胞,我也遇上这个问题了

无解,除非自己写帧的处理,他后来找到了 opengl ,你可以搜来看看,貌似可以处理;我暂时没精力处理这个事情了,我目前是保守方案,录制过程红不允许切换摄像头,

Andorer8 commented 5 years ago

两位同胞,我也遇上这个问题了

无解,除非自己写帧的处理,他后来找到了 opengl ,你可以搜来看看,貌似可以处理;我暂时没精力处理这个事情了,我目前是保守方案,录制过程红不允许切换摄像头,

我再查查资料吧,谢谢

zejiancai commented 5 years ago

两位同胞,我也遇上这个问题了

无解,除非自己写帧的处理,他后来找到了 opengl ,你可以搜来看看,貌似可以处理;我暂时没精力处理这个事情了,我目前是保守方案,录制过程红不允许切换摄像头,

我再查查资料吧,谢谢

我已经解决了, 也是上面这个老哥@dahai2070 提醒我的,如果用的是MediaRecorder这个系统封装的拍摄api的话,在合成两段视频的视频,中间进行前后摄像头旋转就会倒立,因为它是在合成的时候传入了参数,这个参数不能更改的。最后我用的是 MediaCodec +MediaMuxer进行视频的编码和合成,同时通过opengl进行了断点续录,完美解决这个问题。
dahai2070 commented 5 years ago

两位同胞,我也遇上这个问题了

无解,除非自己写帧的处理,他后来找到了 opengl ,你可以搜来看看,貌似可以处理;我暂时没精力处理这个事情了,我目前是保守方案,录制过程红不允许切换摄像头,

我再查查资料吧,谢谢

我已经解决了, 也是上面这个老哥@dahai2070 提醒我的,如果用的是MediaRecorder这个系统封装的拍摄api的话,在合成两段视频的视频,中间进行前后摄像头旋转就会倒立,因为它是在合成的时候传入了参数,这个参数不能更改的。最后我用的是 MediaCodec +MediaMuxer进行视频的编码和合成,同时通过opengl进行了断点续录,完美解决这个问题。

你解决了,恭喜恭喜,等我空了,我也去看看你的方案呢,有demo吗?

mendax92 commented 5 years ago

两位同胞,我也遇上这个问题了

无解,除非自己写帧的处理,他后来找到了opengl,你可以搜来看看,貌似可以处理;我暂时没精力处理这个事情了,我目前是保守方案,录制过程红不允许切换摄像头,

我再查查资料吧,谢谢

我已经解决了, 也是上面这个老哥@dahai2070 提醒我的,如果用的是MediaRecorder这个系统封装的拍摄api的话,在合成两段视频的视频,中间进行前后摄像头旋转就会倒立,因为它是在合成的时候传入了参数,这个参数不能更改的。最后我用的是 MediaCodec +MediaMuxer进行视频的编码和合成,同时通过opengl进行了断点续录,完美解决这个问题。

哥们,有没有演示? 看下效果

mendax92 commented 5 years ago

@dahai2070 @zejiancai @Andorer8 多谢各位提醒 已找到解决方案 兼容性估计还得多测试测试
https://github.com/lumyus/FlexCam