2012-06-08 102 views
2

我需要解析ffmpegs元數據輸出,但由於某種原因,wav和flac文件之間的輸出不同。ffmpeg flac和wav的輸出有所不同,爲什麼?

拉克:

(int) 14 => ' Duration: 00:03:18.93, bitrate: 1045 kb/s', 
(int) 15 => ' Stream #0:0: Audio: flac, 44100 Hz, stereo, s16', 

的Wav:

(int) 13 => ' Duration: 00:00:15.00, bitrate: 1411 kb/s', 
(int) 14 => ' Stream #0:0: Audio: pcm_s16le ([1][0][0][0]/0x0001), 44100 Hz, stereo, s16, 1411 kb/s', 

我可以擺脫時間太行,我認爲比特率,但它爲什麼不一樣?未來版本會有更多差異嗎?它真的很糟糕,從ffmpeg獲取信息沒有比解析它的輸出更好的方法。任何更好的想法?

這是我的整個FFMPEG輸出和我的解析後的結果:

http://pastebin.com/4qJfzZNL

回答

0

我最終通過使用ffprobe與ffmpeg一起解決了它。

ffprobe -v quiet -show_streams -show_format -show_error -print_format <format> <file> 

關於它支持的格式的文件See the writers section,我使用JSON,但XML,CSV和INI也都支持。

0

流線提供不同的信息,因爲每個編解碼器具有不同的參數。您將需要解析該行,並根據音頻類型,您需要了解它後面的參數。

您可以在持續時間行中使用比特率,但這可能會導致誤導,而無法瞭解正在使用哪個編解碼器。

+0

那麼從理論上講,每種格式都可以有另一種流數據結構?我發現了ffprobe,它允許我以更好的可解析方式獲取輸出,但請查看流分節行24 http://pastebin.com/tSACMJ5N – burzum

+0

我可以嘗試今晚晚些時候看看,但我無法從工作中訪問pastebin,對不起。 –

+0

嘿,謝謝你的努力,但我終於要使用ffprobe,檢查我的答案,這可能有助於或改善你的工作。它真的很容易解析數據。 – burzum

相關問題