2010-08-30 121 views
1

如果我的任何一位Xuggler用戶可以告訴我我做錯了什麼,那就太棒了!我做了以下內容:音頻播放速度太快

  1. 從OGV(OGG視頻)
  2. 讀排隊的音頻和視頻
  3. 寫回遠洋船

聽起來很簡單吧?我在QueueMixer類中遇到的問題是輸出文件播放音頻的速度太快,無論我檢查或更改關於pts的內容,它都不會改進。

正在使用的Eclipse項目中,所有文件都在此鏈接: http://dl.dropbox.com/u/7316897/paul-xuggled.zip

運行測試,編譯和執行StreamManager類;包含一個測試ogv文件。在任何人問起之前,是的,我必須對數據進行排隊,因爲它將與未來版本中的其他數據混合在一起。

+0

我的同事們,不要因爲我在這裏使用ogv(ogg video)的事實而推遲,你可以很容易地改變文件類型爲flv,mp4,mov等。 – 2010-08-31 15:45:16

回答

0

解決方法是從ShortBuffer中提取樣本數量乘以2。

 
samples = new short[(int) audioSamples.getNumSamples() * 2]; 
audioSamples.getByteBuffer().asShortBuffer().get(samples); 
樣品的一半導致音頻播放速度提高一倍。

+0

「2」在這種情況下,因爲我正在使用立體聲源 – 2010-09-07 21:48:19

0

Audio有一個採樣率。確保您將採樣率從輸入端複製到輸出端,否則系統可能會使用默認值(例如44KHz,而原始數據以22KHz採樣,這會產生這樣的效果)。

+0

有一個調整「工具」,用於輸入數據上的代碼以執行這些轉換。我不認爲其採樣率相關的原因是因爲當使用44100立體聲至44100立體聲時,問題仍然存在。 – 2010-08-30 16:47:04

+0

'mediainfo'對輸出文件有何評論?也許有一個錯誤。 – 2010-08-31 07:22:34

+0

我不熟悉「mediainfo」,但我會看看它。我可以說文件看起來很好,我和其他文件有相同的結果。這個問題絕對在隊列代碼中,因爲跳過隊列以正確的速度提供工作輸出。 – 2010-09-02 16:19:49

相關問題