2

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

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

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

我该如何解决这个问题?

PS 另外我尝试使用MP4Parser 库进行合并,但它有同样的问题。
ffmpeg 的PPS-noautorotate参数对我没有帮助。

4

1 回答 1

-1

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

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

于 2017-12-24T17:42:04.583 回答