1

合并使用 Android CameraX 录制的前后摄像头拍摄的纵向视频时,我遇到了方向问题。

这里解释了这个问题,但我还没有找到一个可行的解决方案。我尝试了多种解决方案,例如按照问题说明中的建议使用mp4parser,但结果是每个备用摄像机视频都是颠倒的。我还尝试将FFmpeg用于 android - mobile-ffmpeg。使用 ffmpeg Concat demuxer 得到与 mp4parser 相同的结果。

我使用的 Concat demuxer 命令:ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp4

我还尝试在连接之前更改视频的旋转元数据以匹配,类似于此处的操作方式,但这似乎对最终结果没有任何影响。

最后,我使用了 ffmpeg Concat 过滤器。由于视频的重新编码,该解决方案显然花费了更长的时间,但它确实解决了视频方向的问题,但输出的视频质量很差。

连接过滤器命令:

ffmpeg -i front1.mp4 -i rear1.mp4 -i front2.mp4 \
-filter_complex "[0:v] [0:a] [1:v] [1:a] [2:v] [2:a] \
concat=n=3:v=1:a=1 [v] [a]" \
-map "[v]" -map "[a]" output.mp4

有没有人找到关于如何解决android中的方向问题的解决方案?或者在使用 FFmpeg Concat 过滤器合并视频时,如何尽可能地保持视频质量?

4

1 回答 1

0

对于像我在android中遇到这个问题的任何人,我终于通过使用FFmpeg Concat demuxer(mp4parser也可以用于此)解决了它,关键是为旋转元数据提供0的视频文件。这些视频是使用CameraView takeVideoSnapshot()录制的。

于 2021-12-15T13:45:42.897 回答