R5 2400G 有合適的linux可以順順跑嗎? - Linux

Table of Contents

idisnothing: 那像deinterlace之類的後處理可以offload給GPU嗎? 03/13 20:03
idisnothing: 還是一樣只能由CPU來處理? 03/13 20:05
s9209122222: 這我不確定,不曉得怎麼看,但用htop看cpu使用率有增 03/13 21:09
s9209122222: 加 03/13 21:09
idisnothing: 一開始我也是看cpu跟gpu的使用率 後來發現vlc的 03/13 21:48
idisnothing: message把level調到debug後就能看到更多資訊 03/13 21:49
idisnothing: gpu是geforce 210, vlc的video ouput跟hardware-acce 03/13 21:55
idisnothing: lerated decoding都選vdpau 從message上看來是有把 03/13 21:56
idisnothing: deinterlace交由gpu處理 cpu usage也很低 03/13 21:57
idisnothing: 但畫面看起來差強人意 還在研究到底怎麼回事 03/13 21:57
s9209122222: 不過現在還有很多需要去交錯的影片嗎?我只有網路上 03/13 22:11
s9209122222: 找到的某些片片會看到 03/13 22:11
idisnothing: 有喔 數位電視的訊號就是1080i跟480i的QQ 03/13 22:14
s9209122222: 我發現純vaapi沒辦法deinterlace,只有vaapi-copy可 03/13 22:16
s9209122222: 以 03/13 22:16
s9209122222: 然後vdpau可以,但畫面很頓 03/13 22:18
s9209122222: 看了他的 framing time 明明就很低啊 03/13 22:19
idisnothing: 看來兩個api都能將一些後處理都offload給gpu了 感動 03/13 22:35
idisnothing: 你是用vlc還是mpv? 如果是vlc然後decoding選vdpau 03/13 22:37
idisnothing: 那vo也要選vdpau 畫面才不會頓 03/13 22:38
s9209122222: mpv 03/13 22:43
idisnothing: mpv我沒用過 有機會再試試 03/13 22:45
s9209122222: 試了一下要是vo=vaapi,那麼vaapi也能去交錯,但效果 03/13 22:50
s9209122222: 一樣糟糕 03/13 22:50
s9209122222: 目前用起來最順的是加上 --vf=lavfi=yadif 這個選項 03/13 22:58
s9209122222: 配上 vaapi-copy 03/13 22:59
idisnothing: 我之前試也是差不多的結果 要像windows下那樣把所有 03/13 22:59
s9209122222: 可惜這好像是用cpu的? 03/13 23:00
idisnothing: 工作都丟給gpu去做還是有難度 我試的結果也是decodin 03/13 23:00
idisnothing: g選vaapi 然後vo選xv 去交錯交給cpu(yadif)來做 03/13 23:01
idisnothing: 這樣的播放效果最好 跟你的結果差不多 03/13 23:02
s9209122222: 為什麼cpu反而順,太詭異了 03/13 23:02
Bencrie: vdpau 自己有硬體 deinterlace,vaapi 我記得也是有 03/13 23:58
Bencrie: 至少 nvidia 跟 intel 在這塊都是 ok 的 03/14 00:00
Bencrie: Blu-ray 影片也有 1080i 的 03/14 00:05
idisnothing: 那樓上知道怎麼設定才比較好嗎? 03/14 00:40
obarisk: 純推intel內顯,wayland現在擋的住嗎?Ubuntu是換定了吧 03/14 13:45
OrzOGC: intel安定,wayland現在還是............... 03/14 18:12
LiDra129: 回s大 我一直是用專利驅動 因為想要用OpenCL 03/14 18:18
Bencrie: intel 的用 hwdec=vaapi vo=opengl 03/14 19:31
s9209122222: opengl這選項不是改叫gpu了嗎? 03/14 22:12
s9209122222: OpenCL我是用AUR裡那從amdgpu-pro提取出來的那個 03/14 22:15
Bencrie: debian stable 收的 mpv 0.23 還是叫 opengl 03/15 01:47


今日有幸以相當划算的價格入手了一張NVIDIA GT610

終於成功將1080i影片之解碼與去交錯通通交由GPU來處理,且畫質相當不錯

以下為系統配置:

CPU: AMD Athlon II X4 640
MB: Gigabyte MA78GM-S2H
OS: Ubuntu 16.04
GPU Driver: NVIDIA Driver 390.48
PLAYER: mpv 0.28.0-437-g9efb027
FFMPEG: ffmpeg N-90705-g18d6ff2

因為先前用的NVIDIA G210賣掉了 所以入手GT610前用的是主機板的內顯HD3200

在Windows下確認過HD3200確實是可硬體去交錯的

但在Linux下卻只能解碼 不能去交錯(用的是系統內建開源驅動"radeon")

重新編譯過mesa-git, libva-1.8.3, ffmpeg-git, mpv-git, 但情況依舊

mpv的參數我是這樣下的

$ mpv --hwdec=vaapi --vo=vaapi --vf=vavpp=deint=motion-adaptive 1080I_FILE

mpv的manpage中有提到多種去交錯演算法,包括bob, weave, motion-adaptive, motion-compensated 等

但沒一個選項能成功開啟硬體去交錯

最後只好如網友s9209122222所建議:解碼交由GPU處理;去交錯交由CPU處理,指令下法如下

$ mpv --hwdec=vaapi-copy --vo=gpu --vf=lavfi=yadif 1080I_FILE

但由於去交錯的部份仍交由CPU處理,所以當CPU負載高時影片播放相當容易受到影響

在換上GT610並安裝官方驅動後,以下列方式下達指令即可成功將解碼與去交錯全部交由GPU處理

$ mpv --hwdec=vdpau --vo=vdpau --vf=vdpaupp=deint=yes:deint-mode=temporal-spatial 1080I_FILE

或是也可以只下達:$mpv --hwdec=vdpau --vo=vdpau 1080I_FILE

然後在mpv視窗下按下"d"鍵 即可開啟去交錯 (但這方式所使用的去交錯演算法為預設的temporal)

困擾已久的問題總算解決 終於可以好好看電視了QQ

Ref:
https://mpv.io/manual/master/

04/21更新:(後來發現這對流暢度幫助不大,請忽略。)

看了幾天電視下來,有時總覺得畫面流暢度好像沒在Windows下來得好

剛在看mpv的manpage時看到了--vo-vdpau-output-surfaces這個選項

就想起了NVIDIA的官方文件有提到提高surface的數量可增進效能

由於手邊這張GT610足足有1GB記憶體可用,於是就直接將surface數量設為最大值15

設定過後畫面流暢度果然看起來又更好了一些,記憶體用量有提高,但總共也才用190MB左右而已

另剛還有看到auto profiles這個好用的功能,在~/.config/mpv/mpv.conf加入以下幾行

即可在看DVB-T數位電視時自動啟用硬解、硬體去交錯並將surface數量設為15

================================================
# ~/.config/mpv/mpv.conf

[protocol.dvb]
vo-vdpau-output-surfaces=15
hwdec=vdpau
vo=vdpau
vf=vdpaupp=deint=yes:deint-mode=temporal-spatial:hqscaling=1
================================================

Ref:
https://tinyurl.com/ydcamorn

5/1更新:

問題算是真正解決了 最後所使用的播放器是vlc-3.0-git

設定方面,Hardware-accelerated decoding 選 VDPAU video decoder

Video output 選 OpenGL video output

硬體去交錯無需設定,vlc在偵測到interlaced影片時會自動啟動硬體去交錯

去交錯演算法可透過以下方式更改,我是選temporal-spatial

Tools -> Preferences -> All -> Videos -> Filters -> VDPAU -> Deinterlace

在這樣設定下 畫面流暢度與穩定度都相當棒 幾乎感受不到延遲與頓點

另外發現軟解+軟體去交錯的畫面其實也可以相當流暢

只要使用Yadif(2x)這個deinterlacer就可以了(Video -> deinterlace mode -> Yadif(2x))

vlc-3.0-git
http://git.videolan.org/?p=vlc/vlc-3.0.git;a=summary

--

All Comments

Dora avatarDora2018-04-19
那像deinterlace之類的後處理可以offload給GPU嗎?
Genevieve avatarGenevieve2018-04-23
還是一樣只能由CPU來處理?
Margaret avatarMargaret2018-04-27
這我不確定,不曉得怎麼看,但用htop看cpu使用率有增
Megan avatarMegan2018-04-30
一開始我也是看cpu跟gpu的使用率 後來發現vlc的
Anthony avatarAnthony2018-05-01
message把level調到debug後就能看到更多資訊
Joe avatarJoe2018-05-06
gpu是geforce 210, vlc的video ouput跟hardware-acce
Olive avatarOlive2018-05-07
lerated decoding都選vdpau 從message上看來是有把
Cara avatarCara2018-05-08
deinterlace交由gpu處理 cpu usage也很低
但畫面看起來差強人意 還在研究到底怎麼回事
Lily avatarLily2018-05-11
不過現在還有很多需要去交錯的影片嗎?我只有網路上
找到的某些片片會看到
Noah avatarNoah2018-05-13
有喔 數位電視的訊號就是1080i跟480i的QQ
Jack avatarJack2018-05-13
我發現純vaapi沒辦法deinterlace,只有vaapi-copy可
John avatarJohn2018-05-18
然後vdpau可以,但畫面很頓
Bethany avatarBethany2018-05-22
看了他的 framing time 明明就很低啊
Kelly avatarKelly2018-05-26
看來兩個api都能將一些後處理都offload給gpu了 感動
Bennie avatarBennie2018-05-27
你是用vlc還是mpv? 如果是vlc然後decoding選vdpau
Erin avatarErin2018-06-01
那vo也要選vdpau 畫面才不會頓
George avatarGeorge2018-06-04
mpv
Joe avatarJoe2018-06-04
mpv我沒用過 有機會再試試
Ula avatarUla2018-06-08
試了一下要是vo=vaapi,那麼vaapi也能去交錯,但效果
一樣糟糕
Edwina avatarEdwina2018-06-08
目前用起來最順的是加上 --vf=lavfi=yadif 這個選項
Hedwig avatarHedwig2018-06-13
配上 vaapi-copy
Hardy avatarHardy2018-06-16
我之前試也是差不多的結果 要像windows下那樣把所有
Kyle avatarKyle2018-06-18
可惜這好像是用cpu的?
Tracy avatarTracy2018-06-21
工作都丟給gpu去做還是有難度 我試的結果也是decodin
Blanche avatarBlanche2018-06-26
g選vaapi 然後vo選xv 去交錯交給cpu(yadif)來做
Yuri avatarYuri2018-06-27
這樣的播放效果最好 跟你的結果差不多
Eartha avatarEartha2018-06-30
為什麼cpu反而順,太詭異了
Agatha avatarAgatha2018-07-04
vdpau 自己有硬體 deinterlace,vaapi 我記得也是有
Agnes avatarAgnes2018-07-05
至少 nvidia 跟 intel 在這塊都是 ok 的
Megan avatarMegan2018-07-05
Blu-ray 影片也有 1080i 的
Rae avatarRae2018-07-08
那樓上知道怎麼設定才比較好嗎?
Bennie avatarBennie2018-07-11
純推intel內顯,wayland現在擋的住嗎?Ubuntu是換定了吧
Hedwig avatarHedwig2018-07-13
intel安定,wayland現在還是...............
Faithe avatarFaithe2018-07-15
回s大 我一直是用專利驅動 因為想要用OpenCL
Megan avatarMegan2018-07-18
intel 的用 hwdec=vaapi vo=opengl
Agatha avatarAgatha2018-07-21
opengl這選項不是改叫gpu了嗎?
Christine avatarChristine2018-07-25
OpenCL我是用AUR裡那從amdgpu-pro提取出來的那個
Rosalind avatarRosalind2018-07-25
debian stable 收的 mpv 0.23 還是叫 opengl
Rae avatarRae2018-07-30
Harry avatarHarry2018-08-03
推薦文章。
Charlie avatarCharlie2018-08-05
試到現在 畫面看起來最流暢的mpv參數下法為
Olive avatarOlive2018-08-05
--hwdec=vdpau --vo=gpu --vf=vdpaupp=deint=yes:dei
Hamiltion avatarHamiltion2018-08-08
nt-mode=temporal
Christine avatarChristine2018-08-12
GT610可能不太夠力 用temporal-spatial來去交錯畫面
Agatha avatarAgatha2018-08-17
總是頓頓的 看歐冠時尤其明顯
Callum avatarCallum2018-08-19
蠻意外的是把解碼和去交錯都交給GPU來做時 畫面流暢
Carol avatarCarol2018-08-21
度居然比把兩者交由CPU來做要來得好 一直以為軟解+
Carol avatarCarol2018-08-25
軟體去交錯是best solution的說
John avatarJohn2018-08-27
要 CPU 做後製就一定要從 vram 抓東西回 ram 來算
有過 bus 會慢是正常的
Lydia avatarLydia2018-08-30
我現在試的都是純CPU解碼+去交錯 或 純GPU解碼+去交
Belly avatarBelly2018-09-03
錯 所以不會從vram複製解碼過後的資料回system ram
做後處理
Isla avatarIsla2018-09-05
找到畫面更流暢的方案了 那就是vlc-3.0.2+ffmpeg-git
Lily avatarLily2018-09-07
而且用的deinterlacer是temporal-spatial 流暢度與
Windows下的mpc-hc不相上下 但常不明原因crash 真是
有一好就沒兩好 都2018了沒想到把deinterlace offload
給GPU還是困難重重
Tom avatarTom2018-09-10
vlc 軟體 deinterlacer 不是通常都用 yadif 嗎
Kelly avatarKelly2018-09-13
以前我也用yadif 最近看運動賽事發現用yadif(2x)比較
Callum avatarCallum2018-09-13
好 畫面看起來流暢多了 因為輸出的frame數量多了一倍