录制期间Camera2 API切换摄像头

时间:2017-12-24 16:09:09

标签: java android ffmpeg android-camera2 android-video-record

我正在使用Camera2 API,在我的应用中,在录制过程中切换相机非常重要。在每次摄像机切换后,我将视频片段保存到磁盘,停止录制后,我使用FFmpeg for Android-f concat -safe 0 -i listPath -c copy finalPath命令将视频合并为一个。当我打开一个单独的视频片段时,它看起来是正确的,但是当我打开合并的视频时,后置摄像头上录制的视频会旋转180度。问题仅出在合并的视频中。

在视频的元标签中,如果视频记录在后置摄像头上,则“旋转”标签有90度,否则为270度。

据我了解,当ffmpeg合并视频时,如果视频在其元标记中有不同的“旋转”标记,它会自动旋转视频。

我如何解决这个问题?

P.S我也尝试使用MP4Parser Library进行合并,但它有同样的问题 P.P.S. ffmpeg的-noautorotate param对我没有帮助。

1 个答案:

答案 0 :(得分:-1)

相反, ffmpeg 在将输入片段合并在一起时忽略了输入片段的方向。使用-c copy时,这是不可避免的。您可以选择在将视频附加到结果之前旋转来自其中一个摄像机的视频。不过,就性能而言,这相当于完​​全转码。

另一种方法是使用MediaCodec而不是Recorder。这是你身边的更多代码,但你可以放弃ffmpeg并制作一个继续电影没有后期处理。