2016-05-03 1 views
0

Итак, у меня есть это видео в формате .mp4, и я преобразовал его в байты и отправил на свой сервер и записал байты в файл.Как отправить файл видео с помощью потока байтов?

Когда я пытаюсь открыть новый файл, он говорит: «Нет правильного кодека» или что-то в этом роде.

Итак, как передать видео клиенту с кодеком, чтобы он мог играть на моем сервере.

Clinet.java

File file = new File("/Users/Batman/Documents/Eclipse/Record/outo.flv"); 
    InputStream is = new FileInputStream(file); 
    OutputStream os = RTSPSocket.getOutputStream(); 
    long len = file.length(); 
    byte[] bytes = new byte[(int) len]; 
    int offset = 0; 
    int numRead = 0; 
    while (offset < bytes.length && (numRead = is.read(bytes, offset, bytes.length - offset)) >= 0) { 
     offset += numRead; 
    } 
    String s = String.valueOf(len); 
    RTSPBufferedWriter.write(s); 
    RTSPBufferedWriter.flush(); 
     os.write(bytes); 
    os.close(); 
    is.close(); 

Server.java

inputStream = socket.getInputStream(); 
       byte[] bytes = new byte[1415874]; 
       for (int i = 0; i < bytes.length; i++) { 
        fileOutputStream.write(inputStream.read(bytes)); 
       } 
       fileOutputStream.close(); 
       inputStream.close(); 

Благодаря

+0

Почему вы не добавили код на свой вопрос? Это поможет найти проблему. – incBrain

+0

Добавил мой пример кода – Spark

ответ

0

Вы посылаете длину в ASCII, но вы никогда не читать его отдельно. Вместо этого вы принимаете фиксированную длину 1415874. Таким образом, длина все еще присутствует на входе и записывается в целевой файл.

Отправка длины в ASCII без разделителя не будет работать, так как вы не знаете на принимающей стороне, сколько времени длина. Вы должны отправить длину как long, используя DataOutputStream.writeLong() и прочитав ее через DataInputStream.readLong(). Фактически вы должны действовать как указано в this answer.

+0

Я пробовал его с использованием DataOutput и Input Streams. Я могу отправить байты в файл назначения, но опять же, не смог воспроизвести записанное видео – Spark

+0

Я не могу сделать это для .mp4, но смог сделать это для формата .flv. Но мне это нужно для видео mp4. Любая помощь приветствуется – Spark

+1

Не имеет значения, какой формат. Это только бит. Дважды проверьте код на мой в ссылке и не создавайте творческий подход. Скопируйте его. – EJP

 Смежные вопросы

  • Нет связанных вопросов^_^