看板 AVEncode 關於我們 聯絡資訊
全文基本翻譯自官網 由於本人仍是初學者所以有些翻譯可能會出錯,請多多指教 官網: http://www.ostrogothia.com/ EVR Sync的前身為Gothsync 其實這玩意兒之前就寫過一篇介紹了@@ 不過這次將它寫的詳細一些(推廣? 這東西就是讓您播放影片畫面十分流暢,不會突然卡一下的 (因為硬體效能不行,造成解碼lag的狀況不適用) 以我個人來說 它的"方案1"對我十分有效 安裝好MPC-HC後,選擇EVR Sync並且將方案一打勾即可(參數都按照預設的) 接著將螢幕更新率調整至影格速率的整數倍 以動畫和電影(23.976FPS)來說通常是48HZ(可以的話調成47.952HZ就完美了, 就我所知,NV顯卡驅動可以調) 播放時,按Ctrl+J,可以看同步情形 Audio lag即音訊延遲,理論上-20ms~+20ms是合理範圍 # of sync glitches指的是同步時,每個frame呈現的間隔與該fps下 每個影格實際平均的間隔,如果兩者相差太大就會被視為glitch. 例如23.976fps 開 60hz就會增加這個數值. # of frames dropped指的是影格有沒有丟失,例如60fps的影片開48hz時 就會drop frames,然而23.976fps 開60hz則不會. 基本上,上面兩個數值都是0的話就表示影片非常順暢,不過有時候會有誤判的情況 例如播放時,把踩地雷拖到MPC-HC上面晃來晃去之類的,還有playback剛開始時通常 會有127個glitches也是誤判,切換全螢幕時也會造成誤判,這時候可以按 Ctrl+Alt+R來清理統計資訊. 圖形上,紅線在中間直的(沒有太大上下跳動)就表示影片流暢. 其他還有一些情況,例如使用MPC-HC的internal sub 去開idx/sub字幕的影片時 會無法完全sync之類的,得改成掛vobsub,或將EVR buffer及字幕buffer加大等... 就請有興趣的人自己玩玩看吧= = MPC-HC EVR Sync 使用指南 ----------------------------- 前言 ----------------------------- 本計畫的目標是使MPC-HC播出完美的流暢影像. 要得到流暢的影像基本的要求是當每一個視訊框架準備好被呈現時, 它就必須被呈現在顯示器.每一個視框開始呈現與結束呈現的時間是 由該視框關聯的時間標記決定,例如歐洲DVD的視框就有一個40 ms間隔 的時間標記指示該影片要以25 HZ的速率播放.40 ms到底是多長,一般 由電腦音效卡上的時鐘決定,因為該裝置有合適的硬體時鐘裝置. 然而該時鐘與決定視訊框架呈現時間的顯示卡時鐘是完全脫節的. (一般LCD通常設定螢幕更新率為60 HZ,然而大部分的電影動畫 視框速率是23.976 fps) 因為顯示卡時鐘並不知道影片視框的速率,所以可能造成視框準備好 呈現時,顯示卡未將其呈現的情況,更糟的是,如果顯示器更新速率與 視訊框架更新速率不同,部份視框可能會被鬼隱或者是呈現過久,當 眼睛和腦部針對移動畫面進行預測,結果跟預想的有差異時就會感到 不滿,並將其感知為"卡". 要呈現的影像會在"垂直空白"(以下簡稱VBlank)時更新,在那個短暫的間 隔,顯示緩衝(Front buffer)的內容不會被呈現.(任何畫面都會在VBlank 之後呈現並持續顯示至下一個VBlank).常見的問題是,當一個視訊框架要 準備呈現的時間點與VBlank非常接近,就可以在指定的VBlank之後立即呈現, 如果視訊框架準備呈現的時間點稍稍晚了一些,可能就會變成在下一次 的VBlank後呈現,就算強制使視框在指定的VBlank呈現,無論多靠近VBlank, 都會使得部分視訊內容溢出到下一個VBlank之後,呈現出"撕裂"(Tearing) 的現象,即畫面部分更新,上半部是一個視訊框架的下面,下半部是另一個 視訊框架的上面.相反的如果視訊框架準備呈現的時間點過早,就會在原先 指定的VBlank之前的VBlank後呈現(假設螢幕更新率是視訊框架速率的兩倍, 則每隔一個的VBlank應該都是"未使用的",即該VBlank沒有畫面更新) (例如螢幕更新率60 HZ 視框速率29.970 fps,則更新順序應該是1,3,5 但是視框速率稍微快一些,所以可能在第二次Vertical Blank時就更新了 ,這將導致畫面出現撕裂或者每過一段時間drop掉一個frame) 因此要獲得流暢的影像必須 (1)顯示卡必須能產生一個適當的VBlank間隔與視訊框架呈現速率吻合. (只要顯示卡螢幕更新速率是視訊框架速率的整速倍即可) (2)視訊框架抵達處理的最後階段時要有足夠的剩餘時間允許顯示卡在VBlank時 且將要呈現之前進行處理,如此一來,由於過慢更新造成的撕裂即可避免. 視訊框架處理的最後階段包括視框的呈現是由MPC-HC中的一個函式"Paint" 進行的.很重要的是,播放程式須在下個VBlank之前適當提前呼叫Paint,不過不需 太早.從實驗來看,在前一個VBlank後的螢幕更新週期的1/4時呼叫Paint是個不錯 的時間點,以50 HZ螢幕更新率來說,將有15 ms的時間進行最後處理與呈現的工作. ----------------------------- 開始著手 ----------------------------- 1.下載MPC-HC svn 1465之後的版本 http://www.xvidvideo.ru/media-player-classic-home-cinema-x86-x64/ 2.如果你的目標是要完美的同步,請注意要將螢幕更新率調整至視訊框架速率 (影格速率)整數倍的正負0.1%之內,也就是說23.976 fps的片源用23.976 HZ 47.95 HZ 的螢幕更新率是OK的.對於25 fps的片源則使用25 HZ,50 HZ,75 HZ... 這樣你就得到它了.在"EVR Sync Settings"中,使用最下面的同步方案"於最近的 垂直同步呈現"不需要去同步更新率,因為它是設計去降低非同步更新率所造成 的負面影響.同時也請留意在您顯示卡驅動程式控制面板所顯示的螢幕更新率 不見得都完全準確,EVR Sync會在視訊串流開始時進行實際螢幕更新率的測量, 並將其顯示在OSD統計資訊(Ctrl+J)上供您參考.如果您在獲得同步上有困難, 請檢查該數據. 3.如果選擇同步方案1和2,不要使用Reclock. 4.確定您安裝了Enhanced Video Renderer (EVR).XP的使用者,請從微軟下載並 安裝.NET 3.5 framework以使用EVR. EVR Sync是基於EVR的繪製器. 5.開啟播放器(MPC-HC). 6.開啟 檢視 -> 設定選項(或直接按O) 選擇 播放->輸出 頁面. 7.在DirectShow 視訊選擇EVR Sync作為您的繪製器,然後關閉設定選項畫面. ----------------------------- 方案1 : 同步視訊至顯示 ----------------------------- 如果您可以將螢幕更新率同步至視訊框架速率,那麼這是您第一個可以嘗試的方案. 這個方案應該可適用於所有螢幕及顯示卡.如果使用SPDIF數位音訊輸出,此方法可 能造成輕微的影音不同步,尤其是播放一部完整的電影時.因此爲了獲得準確的影音 同步,必須使用類比音訊輸出. 這個同步模式以螢幕更新率作為基準,並調整視訊及音訊對其加速或減速來與螢幕 更新率進行同步.請注意影片的影格速率與螢幕更新率的差距必須足夠小,如果兩者 之差距大於0.5%左右,音訊將開始失去同步.(即使是使用較大的控制參數,影像維持 同步) 要使用此方案 1.按O開啟設定頁面,選擇"EVR Sync Settings"頁面.選擇"同步視訊至顯示". "頻率調整"應該要設定為0.0012左右(標準頻率的0.12%),"目標同步偏移量" 60 HZ的螢幕更新率設定為 8~14 ms,50 HZ的螢幕更新率設定為 10~18 ms, 然後"控制限制"設定為 2.0 ms.如果沒有選擇EVR Sync作為繪製器,或者正在 播放影片中(那個情況下請按檔案/關閉或Ctrl+C),Sync Settings的選項將 不可使用. 2.好好享受影片並根據下篇文章檢查同步情形吧. ----------------------------- 方案2 : 同步顯示至視訊 ----------------------------- 經本人測試完畢@@ 有時間再補介紹 這個方案基本跟第一個方案是類似的,上面那個方案是對影片做加速減速來配合螢幕 這個方案則是對螢幕更新率微調來與影片同步,由於硬體限制的關係,實際上沒辦法 剛好設定在47.952或59.940之類的更新率,所以EVR Sync中的"目標同步偏移量"及 "控制限制"就是讓你設定一個target,然後給一個range,當超出那個range時(out of sync)就微調更新率,讓sync offset永遠在那個範圍內. ----------------------------- 方案3 : 於最近的垂直同步呈現 ----------------------------- 本方案是給那些不是使用類比音訊輸出,而是使用SPDIF數位音訊輸出(方案1不可行), 並且沒有可被PowerStrip支援的顯示卡及螢幕(方案2不可行)或者單純因為螢幕限制 而無法將螢幕調整至與影格速率同步的人.本方案同時也能在與Reclock組合下良好 運作. 這個同步模式會嘗試降低不良同步情形所造成的負面影響,藉由 (1)在垂直同步後的一個確切時間永遠呈現最新的視框以防止撕裂. (2)只要有機會就將視訊框架"拖"至最近的垂直同步. 造成可見跳動感(乎快乎慢或突然卡一下)的常見原因是一個視框的標準呈現時間 精準的就在垂直同步開始時,因為視訊呈現碼本身的不精確,有時視框會在垂直同步 前呈現,有時候則在其之後呈現.如此一來,每個影格將不會以均等的間隔呈現, 也就造成了跳動感. 當打開"於最近的垂直同步呈現"時,跳動感將會被抑制成為只有一個明顯的跳動. 要使用此方案 1.按O開啟設定頁面,選擇"EVR Sync Settings"頁面.選擇"於最近的垂直同步呈現". "目標同步偏移量"60 HZ的螢幕更新率設定為 8~14 ms,50 HZ的螢幕更新率設定 為 10~18 ms然後"控制限制"設定為 2.0 ms.如果沒有選擇EVR Sync作為繪製器 ,或者正在播放影片中(那個情況下請按檔案/關閉或Ctrl+C),Sync Settings的選 項將不可使用. ----------------------------- Report(2010/3/31) ----------------------------- 1.若怕切螢幕更新率麻煩,新版的MPC-HC已經將自動螢幕更新率切換的功能併進去了, 目前使用上還不是非常穩定(有bug). 2."於最近的垂直同步呈現"個人使用起來感覺還是不順(約每幾分鐘卡一次). ar-jar(作者在doom9的帳號)有提到這方案本來就不是完美的同步. 所以要追求完全平順的人還是使用方案一效果較好. 3."同步顯示至視訊"必須搭配powerstrip使用,mpc-hc會藉由powerstrip去微調 顯卡的更新率輸出來達到同步,因為我使用的是N牌顯卡,powerstrip似乎不支援 8-9系列的N牌顯卡,所以就沒辦法測囉@@ (2010/2/9 更新:NV8/9 可使用) 4.使用方案1,影格速率等於螢幕更新率時,使用一般的全螢幕(非D3D Fullscreen) 會有不同步的現象.我測的例子是用60i的影片去跑.暫時的替代方式是不要開全螢幕 或者使用D3D Fullscreen模式(如果開GUI支援會失去D3D特性,所以不能開),基本上 我用到現在EVR Sync+D3D Fullscreen的組合幾乎是perfect smooth playback. 1920*1080開動態字幕也不見任何跳格. 5.VSfilter與EVR Sync的組合完全沒問題(不開動態字幕,開緩衝) 6.使用MPC-HC內建字幕器,如遇idx/sub字幕,需將EVR及字幕buffer加大(個人直接調60) 其餘狀況皆設為標準的EVR 4 Sub 4. 7.除非真的需要開CUDA,不然都不要開,CUDA+VSFilter的組合在許多片子都會卡. 對於某些特定高流量的片子,開CUDA畫面會花掉. 8.播放中切換播放位置(即直接拖移時間軸)會導致Audio lag持續增加,所以要改個習慣 先按暫停,拖時間軸,在按開始= = 9.Audio lag大於或小於20或-20時,會自動加速或減速來match rate,不過似乎在要變換 速率的時候,會"啪"的一聲,聽起來不是很舒服,英文OK的版友可以的話,請幫我回報 ar-jar...3Q http://forum.doom9.org/showthread.php?t=148221&page=31 http://forum.doom9.org/showthread.php?t=123537&page=588 方案2測試心得 1.Perfect solution 2.原本以為powerstrip不支援NV 8/9(gothsync官網寫的),不小心無聊去抓下來裝了一下, 發現其實可以用= =(不過powerstrip官方還是強調,未"正式"支援NV8/9及更新的系列 所以要自己去試試看) 3.在此模式下基本上是完美了,除了上面第八點,第九點外,其餘特性皆與第一方案相同 4.重點是這樣就可以SPDIF到電視囉...(這個方案不會動到音頻) 總結這個方案大概就是 跟看電視台播的一樣完全流暢了 沒有tearing 沒有glitches Overall 1.不知道為什麼,就算綠線一直維持在適當的範圍,依然會不定時出現1~2個glitch, 測試一部24分鐘影片,約出現2個glitches,就算開啟D3D模式亦同,這個狀況在使用 Reclock時沒有發生過.(同樣的設置,同樣的影片) 2.考慮到許多monitor不支援方案二(需使用powerstrip做動態即時微調),並且使用 方案一的話,會有一些小問題,如上一頁所述,因此目前是建議使用Reclock. 以上僅個人測試結果回報 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.133.33 ※ 編輯: web2312 來自: 114.32.133.33 (01/30 02:07) ※ 編輯: web2312 來自: 114.32.133.33 (01/30 14:30)
Luciferspear:推 01/30 15:01
goldie:^^b讚 01/30 21:59
※ 編輯: web2312 來自: 114.32.133.33 (01/31 00:02)
albomxx:推教學文=w= 01/31 00:21
※ 編輯: web2312 來自: 114.32.133.33 (02/03 00:43) ※ 編輯: web2312 來自: 114.32.133.33 (02/06 01:03) ※ 編輯: web2312 來自: 114.32.133.33 (02/06 01:05) ※ 編輯: web2312 來自: 114.32.133.33 (03/31 19:30)
xvid:reclock移除不乾淨 不推薦 05/05 20:15
web2312:可以說明一下詳細情形嗎? 05/08 11:44
xvid:上面我的推文請忽略 推錯了= =... 11/15 12:05