Я пытаюсь загрузить видеофайл, сохраненный как blob в Mysql. Файл загружается отлично, но он поврежден, я думаю. Форматы для загрузки - ogg, webm n mp3. Проблема в том, что я пытаюсь преобразовать любое видео с помощью ffmpeg, он говорит «неверные данные, найденные во время обработки».Загрузка видеофайла из Mysql DB в java
Я использую следующий код
Blob image = null;
Connection con = null;
ResultSet rs = null;
try{
Class.forName("com.mysql.jdbc.Driver");
con = MySqlConnect.getDBConnection();
String sql = "select videos, filename from sun.videostore where id ='"+fileID+"'";
Statement stmt = con.createStatement();
rs = stmt.executeQuery(sql);
while (rs.next()) {
String filename = rs.getString("filename");
Blob video = rs.getBlob("videos");
File file1 = new File("C:\\DowloadFile\\" + filename);
FileOutputStream foStream = new FileOutputStream(file1);
if(video != null){
int length = (int) video.length();
InputStream is2 = video.getBinaryStream();
int b = 0;
while(b!=-1){
b=is2.read();
foStream.write(b);
}
}
}
}catch(Exception e){
System.out.println("Ecxeption in getting data from DB = "+e);
}'
Я бы проверял frist, если видео также не повреждено в базе данных. Используйте такой инструмент, как MySQL Query Browser, загрузите blob в файл с ним, а затем запустите ffmpeg. – 0xCAFEBABE
Thanx для быстрого ответа .... i wll check tat ... Есть ли необходимость устанавливать кодеки после того, как вы напишите байты в файл в java. Я пробовал этот код, когда видео играло в firefox. Однако не на хром, это еще одна проблема, с которой я столкнулся. – deepika
Кодек обычно входит в заголовок файла. Я сохранял видео, изображения и музыку в базе данных mysql раньше и просто дамп байтов прямо в файл и игру. Не нужно указывать информацию о кодеке после выгрузки файла. Похоже, что файл поврежден перед загрузкой в базу данных, например, @ 0xCAFEBABE. – Namphibian