【问题标题】:Android - merge videos taken with front and back camerasAndroid - 合并使用前后摄像头拍摄的视频
【发布时间】:2021-11-05 06:02:51
【问题描述】:

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

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

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

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

最后,我使用了 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 过滤器合并视频时如何尽可能保持视频质量?

【问题讨论】:

  • 复制并粘贴ffmpeg -i front1.mp4 -i rear1.mp4 -i front2.mp4的完整输出
  • 我修复了使用 Concat 过滤器合并视频时的质量问题,但这需要很长时间,有没有一种方法可以合并前后摄像头拍摄的视频而无需慢速重新编码 -像 Concat demuxer 一样,但没有方向问题?
  • 需要查看文件信息才能给您答案。复制并粘贴ffmpeg -i front1.mp4 -i rear1.mp4 -i front2.mp4的完整输出

标签: android ffmpeg android-camerax mp4parser mobile-ffmpeg


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    • 2017-08-24
    相关资源
    最近更新 更多