Android - создание миниатюр из видео (658 МБ), найденного в Интернете с http - PullRequest
0 голосов
/ 03 июля 2018

Существует решение для Android (Java), для создания миниатюр из видео, которое онлайн и весит (658 МБ) около 2 часов и 30 минут.

Я прочитал, что ffmpeg, позволяет вам делать такие вещи для создания миниатюр.

Итак, у меня есть несколько вопросов, так как видео онлайн (http), оно весит много, поэтому я не могу его скачать:

1) ffmpeg может работать на Android-приложении? без проблем с производительностью?

2) Есть ли вероятное решение без использования ffmpeg?

1 Ответ

0 голосов
/ 03 июля 2018
    String outputPath= videoFile.getAbsolutePath();

        Bitmap bmThumbnail;
                    bmThumbnail = ThumbnailUtils.createVideoThumbnail(outputPath, MediaStore.Video.Thumbnails.MINI_KIND);
                    if (bmThumbnail == null) return;
                    thumb = getThumbMediaFile();
                    try {
                        OutputStream os;
                        os = new FileOutputStream(thumb);
                        bmThumbnail.compress(Bitmap.CompressFormat.PNG, 100, os);
                        os.flush();
                        os.close();
                    } catch (Exception e) {
                        Log.e(getClass().getSimpleName(), "Error writing bitmap", e);
                    }

 public static File getThumbMediaFile() {
        File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
                Environment.DIRECTORY_PICTURES), "YOUR DIRECTORY NAME"+ File.separator + "THUMB DIRECTORY NAME");
        if (!mediaStorageDir.exists()) {
            if (!mediaStorageDir.mkdirs()) {
                Log.e(getClass().getSimpleName(), "failed to create directory");
                return null;
            }
        }
        // Create a media file name
        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
        File mediaFile;

        mediaFile = new File(mediaStorageDir.getPath() + File.separator +
                "IMG_" + timeStamp + ".png");

        return mediaFile;
    }
...