Advance Member
加入日期: Mar 2002
文章: 484
|
VFW = Video For Windows
|
|||||||
2007-01-19, 04:14 PM
#11
|
Major Member
加入日期: May 2005
文章: 257
|
引用:
那跟解碼有何關係呢? |
|||
2007-01-19, 04:22 PM
#12
|
Major Member
加入日期: May 2005
文章: 257
|
引用:
真糟,愈看愈模糊囉! 它是說ffdshow將libavcode做成DirectShow的版本? 而libavcode是mplayer等自帶codec的播放軟所用的codec集合? 是這樣嗎? |
|
2007-01-19, 04:30 PM
#13
|
Advance Member
加入日期: Apr 2005
文章: 479
|
別重覆安裝同樣的東西就好...
唉... 我來解釋一下好了
在這邊先把 decoder 與 encoder 分開,這樣比較好說明 一. 先來說明 decoder 的部份 - 以koepi's XviD為例 在 Windows下若要播放 XviD 影片時,此時 Windows 的播放程式會去尋找、並呼叫 Xvid Decoder 以要求解碼 通常這時的 Decoder 會是由已安裝 koepi's XviD 放出來的 xvid.ax 所管轄 而這個 xvid.ax 則會去調用真正的 XviD 的核心,也就是 xvidcore.dll 你可以把它理解成 xvid.ax 只是 XviD 的 interface 而 xvidcore.dll 則是它名字的意思 當然,這是電腦內只安裝了單一 decoder 的狀況 假設在同個系統內加裝了 Divx 與 XviD decoder 時, 由於 FourCC support 讓 XviD decoder 也可播放 Divx 格式 解碼的優先順序這類旁支末節就暫且不提 可以想見的,兩個 decoder 在極端狀態下就會打架 各自的 interface 會為了同一格式的檔案搶著作解碼 這也是為什麼會有人提出安裝多個 codec 會不穩的原因之一 當然造成不穩的原因還不止這些,我在文後會稍作解釋 二. 再來談到這如 ffdshow 這類整合 cdoec pack 是由於上述狀況其實還蠻常發生的,尤其在 WIN98 那個年代 嚴重一點就只能砍掉重練 所以 milan_cutka 為了解決這類問題 開發了 ffdshow 這類整合 code pack 最主要的目的,不僅僅是為了節省各自安裝 codec 的時間與精力 更重要的是,這類 codec pack 將會有 "獨立且單一的介面去調用電腦內的 codec" 如 ffdshow 的 ffdshow VFW (Xvid 的 GUI VFW component 則是 xvidvfw.dll ,之前這個檔案只是 core suffix) 由於調用的方式與編排在程式編寫時就已納入考量,所以解決了不同 codec 打架的問題 像 MPlayer 也是基於同一個原理,將大部份 codec 包在一起 並由自己開發的播放器調用 與 MPlayer 方式完全相反的則是 gabest 開發的 Media player classic 蠻有趣的狀況是,這兩種極端類型的播放器都有一定的佔有率(順帶一提,我是用MPC) 也沒啥誰好誰不好的,看自己習慣而定 三. 最後來談談 encoder 其實 endoer 與 decoder 的狀況類似 只是由 "將影片 decompress 輸出至顯卡" 換成 "轉換影片格式" 而已 方式大同小異。所以也同樣會遇到 encoder 打架的問題 拿 TMPGEnc 做轉檔為例 一般獨立安裝 codec 的狀況,轉換不同格式的影片 將由 TMPGEnc 內部設定,決定調用 encoder 的優先順序 VirtualDubMod 我記得也是同樣可以設定 早期有些轉檔程式則沒有這個設定,將由程式自己去做判斷 所以才會發生轉檔失敗的狀況 --------------------------------------------------- 至於 ffdshow 與 K-Lite 的差異 我想 DSNB2 已經講得很明白了 只是容納程度上的差異而已 只是有些人裝完 K-Lite 這類東西,又回去裝了獨立的 decoder 或是裝了獨立的 decoder , 在K-Lite再加裝一樣的東西上去 造成 encoder 與 decoder 兩邊支援度不一 原本被統一的狀況又變得混亂,因此系統不穩定是一定會的 而且會這麼做的人還真的很多.... 另外 如同 MPlayer 的方式,將大部份 codec 包在程式裡 由自帶的程式調用 codec 的程式 目前我只知道 WinMEnc ,其他的就請自行摸索吧 憑印象打了好長一篇... 不知道這樣你是否能理解了呢?
__________________
提高計算速度的方法不只一種。 平行計算只是一種提高效率的方式,具有不確定性與複雜性。關於提高效率的方式,存在著各種不同的理論。 對於我們來說,那並不是完美的東西。 |
2007-01-19, 06:20 PM
#14
|
Advance Member
加入日期: Apr 2005
文章: 479
|
他是說
引用:
1.About ffdshow video encoder ffdshow視訊編碼器,是基於 XviD project 為 Windows 下的視訊解、編碼(VFW)所開發的程式碼 加上 FFmpeg project 所開發的 libavcodec 編譯而成。 而 ffdshow 當然包含其他版本的 compression libraries. 我翻的很爛 但大概是這個意思 compression libraries 不知道該怎麼翻? 程式庫??
__________________
提高計算速度的方法不只一種。 平行計算只是一種提高效率的方式,具有不確定性與複雜性。關於提高效率的方式,存在著各種不同的理論。 對於我們來說,那並不是完美的東西。 此文章於 2007-01-19 07:24 PM 被 路過 編輯. |
|
2007-01-19, 07:20 PM
#15
|
Major Member
加入日期: May 2005
文章: 257
|
引用:
太感謝啦! 終於懂了,就我的認知 幸好我沒有兩種都灌! 不過,照這樣的說法, 是不是裝ffdshow會比自己選codec的K-Lite來的好? 用自帶codec的player(MPlayer)會比大量使用DirectShow技術的(MPC)來的穩定? |
|
2007-01-20, 11:03 PM
#16
|
*停權中*
加入日期: Jul 2003
文章: 199
|
引用:
A1.K-Lite包了ffdshow,所以照理說K-Lite包了更多ffdshow沒有的codec. (事實上是一種coding就有兩三個codec =_= 讓你慢慢選咧) 所以如果你很懶的找codec又想盡量一網打盡就選K-lite,反之可能選ffdshow會比較好(比較簡潔) A2.自帶codec要看哪一種? 先說說影音檔案是怎麼開啟的,一般都是交給direct show,他會自動判定fourCC後調用最高優先的filiter起來做事, 包括一整套stream的流程,建立IGraph blah blah....但是也可以由軟體建IGraph,然後指定要掛入什麼filiter,建立pin connet 1.有的自帶是一樣將codec登錄dshow filiter,只是優先權排後面,自己要播放的時候再指定調用(ex. Nero Showtime?) 2.就把dll帶在旁邊,然後不知道用什麼方法調用 (模擬dshow呼叫?) 在實際使用上2不見得比1更穩,但應該至少不會搞的系統亂七八糟。 不過就實務經驗上來說,會有衝codec的情況大都是codec本身的相容性不夠好, 或是優先權設定有問題,其實是有軟體可以修正的。去找 DxFilterManage.exe 吧。 以上小弟一點淺見,有誤請指正。 |
|
2007-01-21, 09:57 AM
#17
|
Advance Member
加入日期: Apr 2005
文章: 479
|
正解...
原本想回應的,想到又要打一堆字就懶得動手了。 cofecode兄講得很清楚。 只是我蠻想知道的就是... 那些有GPL的codec就算了。 像K-Lite或是Storm Codec,我記得連Cyberlink跟CoreAAC這種有版權兼賣錢的東西都包進去,不怕會被告嗎?
__________________
提高計算速度的方法不只一種。 平行計算只是一種提高效率的方式,具有不確定性與複雜性。關於提高效率的方式,存在著各種不同的理論。 對於我們來說,那並不是完美的東西。 |
2007-01-21, 04:13 PM
#18
|
Major Member
加入日期: Oct 2004
文章: 217
|
舊版K-Lite codec pack並不包含ffdshow
新版加進ffdshow是用來解 h264/x264就這麼簡單 |
2007-01-21, 04:27 PM
#19
|
Major Member
加入日期: May 2005
文章: 257
|
引用:
小弟我很久以前用K-Lite時的確沒有包進ffdshow 只是現在用新版時,除了ffdshow 一樣有x264的decoder 所以才把我弄糊塗... |
|
2007-01-21, 09:23 PM
#20
|