Как правильно перевернуть видео, используя java? - PullRequest
0 голосов
/ 10 марта 2020

Я написал программу, перевернув видео. Но когда я пытался открыть видео файл, он отображал ошибку. Файл был поврежден. Когда я попытался изменить текстовый файл, он работал, но видео было повреждено. Я достиг этого, прочитав байты из файла и сохранив его в другом файле в обратном порядке. Смотрите код ниже ..

// The beginning of the program
    package IO;

import java.io.*;

public class Reverse {
    public static void main(String[] args) {
        // videoName is the video file to be reversed**
        String videoName = "/Users/Noah/Videos/362f42d24752447aacb3f263c58472ba.mp4";

        // pathName is the output folder path**
        String pathName = "/Users/Noah/Desktop/video file.mp4";
        File vFile = new File(videoName);

        if (vFile.exists()) {
            FileInputStream fIn = null;
            FileOutputStream fOut = null;
            try {
                fIn = new FileInputStream(vFile);
                fOut = new FileOutputStream(pathName);

                int availableData = fIn.available();
                byte[] buffer = new byte[availableData];

                // read all data into buffer**
                int readData = fIn.read(buffer);

                // write data to output folder path in reverse
                // using a countdown**
                if (readData != -1) {
                    for (int i = buffer.length - 1; i >= 0; i--) {
                        fOut.write(buffer[i]);
                        System.out.println('*'); // not necessary
                    }  // end for

                } else System.out.println("The file was not read properly, try again");
                // end if
            } catch (IOException ignored) {
            } finally {
                try {
                    if (fIn != null && fOut != null) {
                        fIn.close(); // close input stream
                        fOut.close(); // close output stream
                    }
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        } else System.out.println("File does not exists");
        System.out.println("File read successfully");
    }
}

1 Ответ

1 голос
/ 10 марта 2020

Обращать текст в текстовом файле относительно просто c.

Работа с форматом файла, таким как видеофайл, более сложна.

В видеофайле есть метаданные кроме только битов и байтов, которые составляют видеоизображения. Информация заголовка, структура файла, сжатие данных и т. Д. c ...

Простым обращением всех байтов вы уничтожили формат файла и сделали его нечитаемым.

Вам нужно чтобы изучить формат файла для любого типа видеофайла, который вы редактируете, чтобы вы могли преобразовать видеофайл в нечто читаемое. Где-то там может быть даже библиотека JAVA, которая проводит резервирование видео.

...