Ffdshow/參考
ffdshow 是一款 DirectShow 濾鏡,旨在使用 DirectShow 和影片視窗 (VfW) 介面對影片進行編碼和解碼。它最初由一位名為 Milan 的人建立和維護,但他於 2006 年初消失了。在那之後,ffdshow tryouts 誕生了,繼承了 ffdshow 的火炬,並一直致力於改進 ffdshow。
ffdshow 由三個主要元件組成。
- 影片解碼器:這可以被認為是 ffdshow 的“核心”。它是 DirectShow 元件,可以將許多不同的影片格式解碼為原始影片。此外,它還可以選擇性地以多種方式轉換影片(銳化、調整大小等)。
- 音訊解碼器:先前元件的對應元件,這是一個用於音訊的 DirectShow 解碼器,還包含大量轉換濾鏡(通道混音器、均衡器等)。
- VfW 編解碼器:ffdshow VfW 元件既是影片編碼器又是解碼器,它複製了 DirectShow 解碼器的功能,只是它與 VfW 介面配合使用。VfW 介面是一個較舊的系統,通常用於影片處理程式(VirtualDub、Adobe Premiere 等)。除了提供 VfW 解碼之外,它還是各種格式的 VfW 編碼器。
編解碼器頁面允許您控制 ffdshow 將解碼哪些格式。解碼器列允許您為列出的每個格式選擇解碼器,您可以選擇“停用”以阻止 ffdshow 解碼它。請務必閱讀備註,並非所有解碼器都已完全實現。
提示與技巧
- 如果右鍵單擊列表中的任意位置,則可以透過一鍵啟用所有穩定的解碼器。這不會啟用原始影片處理。
- 最後一個專案(用於原始影片)在您希望 ffdshow 處理來自另一個流的解碼影片時很有用。啟用此功能的一個副作用是 ffdshow 將插入或多或少的所有流中。您可以僅為一個顏色空間或全部啟用解碼。
- 某些專案在您選擇它們時會在列表下方顯示其他複選框。這些框將以某種方式更改解碼器的行為。
- h264:如果選中“在安全時跳過去塊”,解碼器將不會始終將迴圈內去塊濾鏡應用於顯示的幀,這將減少 CPU 使用率。如果選中“始終跳過去塊”,解碼器將永遠不會應用迴圈內去塊器。請注意,迴圈內去塊器是 h264 解碼的正常部分,停用它(尤其是在低質量流上)會產生次優影像。
- MPEG1/2:MPEG1 和 MPEG2 都包含一個設定“使用加速技巧”。此設定將減少解碼的 CPU 使用率,但會產生較低質量的影像。使用 MPEG2 解碼,您還可以啟用 DVD 解碼,這將允許 ffdshow 解碼 DVD 影片。可以認為它是實驗性的,但穩定的。
- 原始影片:執行 Vista?如果要在 WMP11 中將 ffdshow 用作原始影片的直通,則必須選中“在 Vista WMP11 中啟用”複選框。
此頁面允許您設定少量雜項選項,並且還提供有關當前正在處理的流的統計資訊(如果存在)。
設定
- 您可以在此頁面上更改解碼器的濾鏡優先順序。濾鏡優先順序或多或少是 ffdshow 與其他濾鏡相比的優先順序。如果多個濾鏡可以解碼檔案,則將使用優先順序最高的濾鏡。
- 如果選中“不在以下程式中使用 ffdshow”框,則可以指定 ffdshow 將拒絕從中執行的可執行檔案列表。這僅影響影片解碼器。音訊解碼器必須單獨配置。Vfw 編解碼器沒有此功能。
提示與技巧
- 只有當您正在檢視當前正在處理影片的 ffdshow 例項的配置面板時,統計資訊才會顯示。由於可以同時執行多個 ffdshow 副本,因此您不能僅僅從任何地方開啟 ffdshow 並獲取所需特定流的資訊。如果您在媒體播放器中使用 ffdshow,則必須從相關媒體播放器中開啟配置面板才能顯示流統計資訊。在媒體播放器中,這通常在右鍵單擊影片 -> 濾鏡中可用。當流正在播放並且您已啟用托盤圖示(預設情況下已啟用)時,您也可以雙擊該圖示(檔案:Ffdshow icon.gif)也是如此。
- “平均位元率”資訊是從您開啟 ffdshow 視窗時開始計算的。如果您在動作場景的中間開啟視窗,看到意外的高位元率,請不要感到驚訝。
本節基於 ffdshow-tryouts rev 1103 或更高版本。早期版本(或原始 ffdshow)會有一些細微和不那麼細微的差異。
該對話方塊由三個協同工作的部分組成
- 調整大小,定義基本輸出解析度,
- 縱橫比,限制輸出解析度以滿足縱橫比限制,以及
- 條件啟用,根據原始解析度啟用或停用調整大小。
調整大小
- 檔案:Radiobox.gif指定水平和垂直尺寸
- “不進行縱橫比校正”選中:拉伸或縮小到指定的尺寸。
- “保持原始縱橫比”選中:拉伸或縮小,直到寬度或高度使用原始縱橫比接觸到指定的尺寸。如有必要,將新增黑色邊框。
- 手動配置:拉伸或縮小,直到寬度或高度使用指定的縱橫比接觸到指定的尺寸。如有必要,將新增黑色邊框。
- 檔案:Radiobox.gif指定水平尺寸
- 高度將自動計算以保持原始縱橫比。
- “不進行縱橫比校正”和“保持原始縱橫比”給出相同的結果。
- 手動配置:您可以手動指定縱橫比。
- 高度將自動計算以保持原始縱橫比。
- 檔案:Radiobox.gif指定縱橫比
- 高度根據寬度計算。(我們這裡稱之為框。)
- 不進行縱橫比校正:拉伸以填充框。
- 保持原始縱橫比:拉伸或縮小,直到寬度或高度使用原始縱橫比接觸到框。如有必要,將新增黑色邊框。
- 手動:拉伸或縮小,直到寬度或高度使用指定的縱橫比接觸到框。如有必要,將新增黑色邊框。
- 高度根據寬度計算。(我們這裡稱之為框。)
- 檔案:Radiobox.gif擴充套件到下一個的倍數
- 寬度和高度都擴充套件到指定值的下一個倍數。例如,如果指定 100,則 320x160 變成 400x200。當 ffdshow 連線到不使用 16 的倍數的寬度或高度的濾鏡時,您可能希望使用此模式。
- “保持原始縱橫比”和“手動”在此模式下也適用。
- 檔案:Radiobox.gif乘以
- 使用指定的放大倍率拉伸寬度和高度。
內部處理畫素縱橫比- 如果選中(預設選中),則調整大小以考慮畫素縱橫比 (SAR),並將輸出 SAR 固定為 1:1。
- 如果未選中,則輸出 SAR 等於輸入 SAR,並且影片渲染器(或任何下游濾鏡)處理它。
縱橫比
- File:Radiobox.gif不進行縱橫比校正
- 輸出縱橫比 (DAR) 不會受原始 DAR 的影響。
- File:Radiobox.gif保持原始縱橫比
- 輸出 DAR 將與輸入 DAR 相同。
- File:Radiobox.gif手動
- 手動指定輸出 DAR。
- 疊加層縱橫比:如果您的計算機的疊加層沒有 1:1 的 SAR(即,您的顯示器具有非正方形畫素),您可以使用此滑塊進行校正。
條件啟用
- File:Radiobox.gif如果...則調整大小
- 僅當輸入解析度與指定的條件匹配時才調整大小。透過單擊<或>符號以及和或或符號,您可以指定調整大小過濾器將觸發的條件。如果條件不滿足,則調整大小過濾器將不會啟用。
- File:Radiobox.gif如果畫素數為...
- 您可以根據每個輸入幀中的畫素數指定調整大小過濾器觸發的條件。您可以單擊大於或小於符號以交換條件型別。您可以透過將寬度乘以高度來確定幀中的畫素數。
示例以下情況:您有一個解析度為 1280x720 的投影儀,並且您想播放 DVD,其畫素縱橫比 (也稱為 SAR) 在播放過程中會發生變化。為了獲得最佳的調整大小系統
- 指定水平和垂直大小"->1280x720。
- 選擇“保持原始縱橫比”。
- 確保選中“內部處理畫素縱橫比”。
您會發現影片將始終調整為儘可能大的解析度,同時保持縱橫比正確。
在官方 ffdshow-tryouts 網站上提供了關於此過濾器的頁面。
輸出頁面允許您控制 ffdshow 使用的輸出格式。上半部分允許您控制允許的輸出色彩空間,而下半部分用於各種輸出設定。
色彩空間
此頁面允許您設定 ffdshow 使用的預設輸出色彩空間和格式。可以使用兩種通用色彩空間,並且每種色彩空間中都有多種格式。
- YUV 色彩空間
- 預設輸出色彩空間。在此和此維基百科文章中閱讀有關 YUV 的更多資訊。由於 YUV 色彩空間(尤其是 YV12)是影片壓縮的首選色彩空間,因此將 ffdshow 設定為輸出 YV12 可以避免它對解碼影像進行任何色彩空間轉換,從而加快解碼速度。
- ffdshow 支援多種不同的 YUV 輸出格式。
- I420/IYUV:類似於下面描述的 YV12,但硬體支援較少。不建議使用,即使您的顯示卡支援它,因為 YV12 更快。使用每畫素 12 位 (bpp)。
- YV12:幾乎始終是最快的輸出模式(影片編解碼器通常使用 YV12 進行儲存)。大多數系統設定的推薦輸出,儘管某些舊的/板載顯示卡不支援它 - 如果您的情況是這樣,請嘗試 YUY2。Windows Media Player 有時難以處理 YV12 輸出。使用 12bpp。
- 注意 Nvidia 8800 使用者!在許多情況下以及當前可用的大多數驅動程式版本(2007 年)中,YV12 輸出似乎已損壞。如果您遇到任何型別的影像損壞問題,請嘗試回退到 YUY2。
- YUY2:由 MJPEG 和某些 MPEG2 影片流使用,並且比 YV12 具有略微更豐富的色彩定義。輸出速度略低於 YV12,但通常不會慢很多。如果您的輸入影片為 YUY2,或者您的顯示卡不支援 YV12,則這是推薦的輸出。使用 16bpp。
- YVYU & UYVY:罕見且未使用,避免使用。使用 12bpp。
- NV12:另一種罕見的輸出格式,甚至許多顯示卡都不支援。使用 12bpp。
- RGB 色彩空間
這些模式使用更傳統且更熟悉的 RGB 色彩格式。在維基百科(同樣)上了解有關 RGB 的資訊。RGB 輸出速度較慢,但可能比 YUV 輸出更準確 - 無論如何,差異將很小。
- 支援的 RGB 格式。
- RGB32 & RGB24:這些模式將為您提供相同的影像輸出,唯一的區別是 RGB32 打包為 32 位,通常更容易操作。這些模式分別使用 32 或 24bpp。
- RGB16 & RGB15:與上述相同,但只有 16/15 位。除非您知道這是一個好主意,否則 RGB15 不是一個好主意。這些分別使用 16 或 15bpp。
- 高質量 YV12 到 RGB 轉換:因為(幾乎)所有影片檔案都以 YUV 格式(通常為 YV12)壓縮,所以 ffdshow 在輸出 RGB 模式時必須從 YUV 色彩系統轉換為 RGB 色彩系統。此複選框將指示它使用速度較慢但質量更高的轉換方法。如果您打算擷取螢幕截圖,或者真的非常需要每一點忠實的質量再現,請啟用此選項。
- 選中:將自動選擇最接近輸入流色彩空間的色彩空間。
- 未選中:將按照對話方塊中列出的順序嘗試色彩空間。
File:Checkbox semi.gif在輸出媒體型別中設定畫素縱橫比/使用疊加層混合器
- 未選中:使用經典連線方法。
- 選中:使用高階連線方法,在與下一個濾鏡(通常是影片渲染器)連線時包含畫素縱橫比 (SAR) 和隔行資訊。
- 不確定/灰色:首先嚐試高階連線方法,如果失敗則回退到經典連線方法。這是預設設定,除非您有一些特殊用途,否則不應更改。
File:Checkbox empty.gif在輸出媒體型別中設定隔行標誌/硬體隔行消除
- 將從輸入流或 ffdshow 的內部解碼器獲得的與隔行相關的信
- 某些濾鏡(如影片渲染器)將使用此資訊在必要時對影片進行隔行消除。
- 這僅用於通知下游濾鏡 - 實際結果將完全取決於這些濾鏡的實現。
- 預設情況下未選中。DVD 被標記為隔行掃描,但在大多數情況下,它們最初是電影(逐行掃描),只是進行了隔行轉換。對於此類影片,建議保持未選中狀態。
提示與技巧
- 您可以選擇多個輸出格式,ffdshow 將嘗試使用最接近輸入的輸出格式。通常這意味著 YV12,但並非總是如此。
- 除非您知道它們是什麼,否則不應更改頁面上的其他設定。作者建議使用右側影像中的設定(儘管啟用了 YV12)。翻轉影片偶爾對損壞或舊的流有用。
音訊解碼器與影片解碼器有很多相似之處。因此,此處將不介紹某些頁面,而您可以簡單地參考影片解碼器的資訊。這些頁面包括
- 編解碼器:唯一更改的是支援的格式,並且有三個帶複選框的專案
- AC3:複選框啟用動態範圍壓縮,它是普通 AC3 解碼器的一部分。除非您有充分的理由,否則不建議您停用它。
- DTS:動態範圍壓縮的複選框與上述相同。第二個複選框“檢查 WAV 中的 DTS”用於告訴 ffdshow 檢查 .wav 檔案並檢視它們內部是否確實包含 DTS 音訊。您可以從超級音訊 CD 和 DVD 音訊光碟中獲取這些檔案。
- Vorbis:啟用 VorbisGain 會告訴 ffdshow 讀取可能寫入 Vorbis 碼流的建議增益設定,並在存在時應用它。使用取決於使用者偏好,您可以將其視為一種“音量均衡”形式。
- 資訊與除錯:除了為當前播放的流提供不同的資訊外,其他方面都相同。
此頁面控制混音器濾鏡,該濾鏡可以更改正在處理的音訊流的聲道數。其主要用途是混合所有音訊流,使其與您的音訊設定具有相同數量的聲道。增加聲道數稱為向上混音,減少稱為向下混音。
有兩種方法可以定義輸出聲道的數量:使用配置預設或手動指定矩陣。請注意,ffdshow 最多可以輸出 6 個聲道(即 5.1)。配置預設最常用且推薦的預設以全尺寸顯示,其他預設以較小的字型顯示。請注意使用的聲道定義(2/0、3/2 等)指的是前置揚聲器/後置揚聲器。
- 1/0 - 單聲道
- 2/0 - 立體聲:如果您有兩臺揚聲器連線到您的電腦,這就是您想要的預設。
- 3/0 - 3 前置
- 2/1 - 環繞聲
- 3/1 - 環繞聲
- 2/2 - 四聲道
- 3/2 - 5 聲道:如果您有 5 個揚聲器連線到您的電腦,您幾乎肯定想要此設定。
- 杜比環繞聲/ProLogic:如果您將音訊輸出傳送到僅支援立體聲輸入但處理 ProLogic/ProLogic II 的放大器,您可能想要使用此預設或下一個預設。
- 杜比ProLogic II
- 與輸入相同:不進行混音。
- 耳機虛擬空間化:可以使 >2 聲道音訊透過耳機聽起來更好,也可能使它聽起來更差;通常使 2 聲道音訊聽起來更差。
- 頭部相關傳遞函式
此頁面的設計與影片解碼器的頁面相同,但實際內容不同。
設定
- 支援的輸出取樣格式:此處的複選框設定影片解碼器將使用的允許輸出格式。
- 16/24/32/32float:這些是普通的 PCM 輸出,具有不同級別的位深。幾乎所有遇到的音訊流的“正常”速率為 16 位(用於 CD、DVD、大多數 HDVD/BD),但在某些設定中使用更大的位深可能更有利。如果您正在使用任何音訊濾鏡,則可以幫助增加位深以產生更準確的“舍入”。在此處增加位深時有兩個重要的注意事項
- 在不同的音訊位深之間轉換是一種有損轉換,它不會提高高於原始音訊的音訊質量。將 16 位 CD 輸出為 32 位沒有任何意義,您不會發現聲音有任何改善。
- 許多音效卡無法正確支援 16 位以外的位深。特別是,許多 Creative 音效卡會在將其傳送到揚聲器之前將 24/32/32float 輸出重新取樣回 16 位,這意味著您最終只會將音訊透過多個破壞性過程處理而沒有獲得任何好處。
- AC3:此模式會將音訊編碼為 AC3,然後透過 SPDIF 輸出(如果音訊已經是 AC3,則不會重新編碼)。如果您想透過連線到 SPDIF 相容放大器的揚聲器播放音訊,請考慮使用此選項。使用您的連線可以支援的最高位元率以獲得最大質量。
- LPCM:如幫助文字所說:“LPCM 輸出旨在連線到 DVD 音訊解碼器濾鏡,例如來自 Cyberlink 的濾鏡。” 僅此而已。
- 連線到在您想要嘗試強制音訊輸出傳送到特定位置時很有用。通常,DirectSound 是預設的且首選的輸出,但在某些情況下您可能想要使用其他輸出。