2010-07-31 71 views
5

我有幾個視頻容器文件,其中包含各種編解碼器中的音頻和視頻。現在我想從Python腳本中檢查容器,以瞭解哪個編解碼器用於音頻+視頻。這是在Linux機器上,所以我有必要的所有工具。Python:檢測視頻容器中使用的編解碼器

我想也許gstreamer可以幫助我,但我無法找到一個可以幫助我的API。

任何想法?我也打開任何建議,只要它是免費軟件,不需要成爲gstreamer :-) fs

回答

3

嘗試下載ffmpeg源代碼並查看其命令行程序的源代碼。我過去曾經篡改過類似的公用事業。我沒有發佈我的解決方案,因爲ffmpeg喜歡更改他們的API,所以我的舊代碼不太可能用當前版本進行編譯。您需要做足夠的工作來創建編解碼器上下文,您可以檢查它以獲取所需的內容。

其他一些備選方案:


編輯:

http://code.google.com/p/pyffmpeg/可能有你想要的東西(我沒有使用它自己)。

+0

這意味着沒有可以返回該信息的庫嗎? – 2010-07-31 14:23:06

+0

我看着pyffmpeg,但我無法弄清楚如何獲得我想要的信息。它也不會在我的Mac上進行編譯而沒有從郵件列表中大量修補,甚至當我試圖用它打開一個文件時,它只是給我一個總線錯誤10。 – 2012-02-04 01:19:13

1

您可以在Gstreamer中使用decodebin2。查看TAE查看代碼示例。

+0

感謝您的指針,看起來像這樣做幾乎我所需要的... – 2010-08-05 06:54:59

6
ffprobe -show_format -show_streams -loglevel quiet -print_format json YOUR_FILE 

只需使用subprocess.check_output調用此代碼,就可以獲得媒體文件的美麗JSON描述。如果你需要它從stdin中獲取數據,用pipe替換YOUR_FILE:0。

ffprobe附帶ffmpeg。