2014-01-23 94 views
0

我當前正在訪問流式h264文件,並且希望將其保存以便切片幀。但是,我在保存/打開.flv文件時遇到問題保存FLV流

指向地址欄中的URL時 - 我被告知它是x-flv文件。

然後我嘗試執行以下操作以保存流的塊。

URL url = new URL("http://foo.bar.com/foo/bar"); 

      HttpURLConnection conn = (HttpURLConnection) url 
        .openConnection(proxy); 

      conn.setRequestMethod("GET"); 

      File f = new File("C:\\tmpArea\\tmp.flv"); 
      FileWriter fr = new FileWriter(f); 
      bw = new BufferedWriter(fr); 

      BufferedReader br = new BufferedReader(new InputStreamReader(
        (conn.getInputStream()))); 
      String output = ""; 
      int i = 0; 
      while (((output = br.readLine()) != null) && i < 100000) { 
       bw.write(output); 
       i++; 
      } 

一旦這樣做,我試圖打開VLC媒體播放器的文件和我說:

沒有合適的解碼器模塊:VLC不支持的音頻或視頻格式「undf」。

不幸的是,你無法解決這個問題。

然後我想,也許它不是一個真正的FLV文件,這對我來說。所以我用了十六進制編輯器。在16進制軟件中打開文件給我的以下信息:

FLV 調用onMetaData 時間 寬度 高度 videodatarate 幀率 videocodecid audiodatarate audiosamplerate audiosamplesize 立體聲 audiocodecid 編碼器 Lavf52.10.6.0 filesize ....

有沒有不同的方式我s應該試圖挽救這些數據嗎?有沒有我沒有看到的轉換/編解碼器問題?

回答

1

您使用的是ReaderWriter,這是要讀取的字節,並將它們轉換爲字符,以讀取由字節二進制文件。從字節到字符的轉換會破壞數據。您應該使用InputStreamOutputStream