如何使用裁剪图像裁剪和旋转Android中的视频并转换图像库?

时间:2016-12-16 10:03:59

标签: android image video ffmpeg android-image

我正在使用裁剪图像/裁剪视频功能为Android创建应用。对于iOS,此应用程序已创建。

对于iOS,使用lib编辑视频LLVideoEditor 和图像裁剪的lib并旋转TOCropViewController

对于Android,我找到了用于图像裁剪的uCrop库和用于视频裁剪的ffmpeg-for-Android库。

要裁剪视频,我会拍摄视频的第一帧,之后我会用uCrop库裁剪它以接收裁剪的坐标。 (X,Y,宽度,高度,旋转角度)。 接收到的坐标作为命令传递给ffmpeg-for-Android作为命令行。 该命令如下所示:

要裁剪视频,请使用以下命令:

ffmpeg -y -i /sdcard/video/in.mp4 -vf crop=Width:Height:X:Y /sdcard/video/out.mp4

要通过90度ClockWise裁剪和旋转视频,我使用以下命令:

ffmpeg -y -i /sdcard/video/in.mp4 -vf crop=Width:Height:X:Y transpose=1 /sdcard/video/out.mp4

我遇到的问题:

  1. 当我选择裁剪图像区域并按旋转图像90度并按应用时,uCrop库会返回X,Y,croppedImageWidth,croppedImageHeight,Angle。在这种情况下,Y应该等于0,但我收到Y> 0,即Y =图像上方的黑色区域的高度。选择裁剪图像区域后,uCrop库无法进行正确的图像缩放。
  2. enter image description here

    1. 使用ffmpeg库转换视频的速度非常慢。我转换的视频只有5秒的长度,所以转换应该很快。但它需要大约15秒。与iOS相比,它需要很长时间。
    2. 问题是: 这种方式我选择裁剪视频是正确的吗? 2.我在哪里可以找到适用于Android的类似的iOS库,这样我就能拥有与iOS应用程序相同的Android应用程序功能,即接收正确的裁剪图像坐标和快速裁剪视频?

1 个答案:

答案 0 :(得分:0)

你可以参考https://android-arsenal.com/tag/45它提到了很多用于图像处理的库,它是有用且信息量很大的定性库