2017年10月17日火曜日

mpv player mpv.conf 2年育てた設定ファイル vaapi/vdpau

神々は細部に宿る::AMD RADEON R7 360 にやさしいmpv.conf

mpv player mpv.conf 2.5年育てた設定ファイルを公開してみます。前からしようと思っていたんですが、説明かくのがめんどくさいのでそのままにしておくと3年たっても役にたてそうにないので。よって、以下詳しい説明なしでそのままです。考えてみると人並みのCPUに交換して、かつ、ubuntu 16.04 LTS を使うのをやめて思ったのですが、ディストロを換えるのが最適な道だったという事後談です。18.04beta1 では特に諸調整も必要なくうまく働いています。2年近く経過するとLTSも古くなる。互換性維持のためにアプリケーションによっては古いカーネルを使わざるを得ないなど、Fixedリリースもめんどうくさいことがとても多いので、軸足はローリングリリースのディストロに移して3ヶ月、いいかんじです。

さて、intel,nvidia に冷たいんじゃなくて、持ってないだけです。ただRADEONは両方対応していますので。VLCもハードウェアアクセラレーションは使えますし、smplayer もフロントエンドなので使えるわけですが、私はVLCは基本的にデフォルト設定で利用しています。マニアックな設定をするのは、mpv だけです。以下、mpv(2017年10月 git)を念頭にしています。

考え方は、MAC OS X でもほとんど共通でいけると思いますが、実機がないのでわかりません。
  • vdpau/vaapi(intel,nvidia,amd対応)ほんの一部書き換え必要な局面も。
  • 中間フレーム生成(AMD fluid motion video には遠く及ばない)
  • vdpauのしつこいまでのチューニング結果(意味があるとみなしたもののみ掲載)
  • HRTF(頭部伝達関数 Head-Related Transfer Function)対応。サラウンドソース5.1chソース等を2.0ヘッドフォン用にミックスする)も楽しめる無駄さ加減(追加定義要す)
  • しつこいまでのOSD設定、但し自分的には優雅(音声チャネルの状態やフォーマット、コマ落ちなどを監視できるOSD設定が切替できる)
  • その他もりだくさんだが過剰な入れ子にならないように配慮。
  • 特定ファイル群はディレクトリ単位で個別設定で再生するという方針
ffmpegのバージョン、コンパイル時のオプション設定の絡みもありますので、単純にはうまくいきません。

4kでの描画を基本に考えています。くわえて、コンテンツ毎の追加mpv.conf を読み込ませて制御しています。そのうち解説でも。AMD RADEON Rなんちゃらの人はそのまま何も考えずに使えると思います。

魂は細部に宿る::mpvの使い方


#プロファイル切替しながら使う
mpv --profile=vdpauRS video.mkv

※前提知識::
  • NVIDIA vdpau
  • Intel vaapi
  • AMD vdpau,vaapi 共に対応
  • GPUが対応していない形式はHWアクセラレーションは働きません(当然)。
    例) RADEON R7 360 は、youtube nativeな VP9はソフトウェアデコードです。
    H.264でも、hi10には対応していません。このあたりはvdpauinfo で確認できます。

#ターミナルでの例
[基本形]
mpv --profile=vdpauRS video.mkv 以下ビデオファイル名青色は省略
[応用]

mpv --profile=vdpau     vdpauでhwdec 
mpv --profile=vdpauRS   vdpauでリサンプル 
mpv --profile=vdpauRSEX vdpauてんこ盛り

mpv --profile=vaapi     vaapiでhwdec
mpv --profile=vaapiRS   vaapiでリサンプル 
mpv --profile=vaapiRSEX vaapiてんこ盛り

mpv --profile=nodec     hwdecなし
mpv --profile=nodecRS   hwdecなしでリサンプル 
mpv --profile=nodecRSEX hwdecなしでてんこ盛り

以下の具体ファイルの1行目のみ書き換えることで任意固定にできます。nodec(ハードウェアデコードなし、つまりソフトウェアデコード)にしています。


#当方の、R7 360に限っていえば、vaapi を使うことはもはやないです。調子がいいのはvdpauなので。1年ほど同一ファイル群で比較してきました。

ターミナルを前提にしているわけではなく、プロファイル切替は右クリックコマンドで拡張するなりすれば、マウスで完全オペレーションできます。自身はそうしています。Zeniyを併用したりもしています。

# ~/.config/mpv/mpv.conf

mpvのVersionでいえば、0.01前までにはほぼ追随していますが漏れ、重複、冗長があります。mpvの開発はとてもアグレッシブでいろいろ変わっていくのでキャッチアップしていくのはけっこう大変です。みていて楽しいですけれど。きちんと整理されてはいませんが膨大な時間をかけて検証した結果なので。同じ道を通るのは時間の無駄ですから。
お気づきの点などがあればぜひ教えてください。

たとえば
intelGPUは、vaapiなので、vdpauのブロックを削除すればいいです。
nvidiaGPUは、vdpauなので、vaapiのブロックを削除すればいいです。
amdGPUは、両方に対応しますので、そのままでいです。
mesaを使わないほうがよい結果を生むことも多いです。CPU負荷は高まりますがいまどきのCPUの方には誤差にしか感じないかと思います。CPUメーターでは違いが確かにでますけれど。

#ハードウェアアクセラレーションのデコードととっても大切なビデオ出力選択
以下の断面ではhwdecが次のようになっています。
hwdec=vdpau-copy
hwdec=vaapi-copy
それを
hwdec=vdpau
hwdec=vaapi

にしてみるなり、試行錯誤してみてください。環境によっては違いがあるかもしれません。

voについて(特に大事です)

vo=gpu
または明示的に、
vo=vdpau
vo=vaapi
のようにします。当方の環境では顕著な差がでます。無指定でもいいかと思います。安定して動作することがだいじなので。

その他voは過去の遺物であったり、画面描画とは別用途であったりしますので描画性能向上目的で試しても仕方ありません。
openglは、gpu という指定に変更になりました。

#mpv.confある日の実物



    profile=nodec #デフォルトはハードウェアデコードなし。
#
#ハードウェアアクセラレーションの分岐
#OSDの連携考慮してこうなった。

[nodec]
    osd-msg2='M2${osd-sym-cc}[vo:${current-vo}]【nodec】hwdec:${hwdec-current}\n${estimated-display-fps}=(${vsync-ratio}×${container-fps}) - ${frame-drop-count} - ${mistimed-frame-count} - ${time-pos} - v${volume}'
    profile=_hwdec_no
    window-scale=1.50
[nodecRS]
    osd-msg2='M2${osd-sym-cc}[vo:${current-vo}]【nodecRS】hwdec:${hwdec-current}\n${estimated-display-fps}=(${vsync-ratio}×${container-fps}) - ${frame-drop-count} - ${mistimed-frame-count} - ${time-pos} - v${volume}'
    profile=_hwdec_no
    profile=_resample
[nodecRSEX]
    osd-msg2='M2${osd-sym-cc}[vo:${current-vo}]【nodecRSEX】hwdec:${hwdec-current}\n${estimated-display-fps}=(${vsync-ratio}×${container-fps}) - ${frame-drop-count} - ${mistimed-frame-count} - ${time-pos} - v${volume}'
    profile=_hwdec_no
    profile=_resample
    profile=_extra
[vdpau]
    osd-msg2='M2${osd-sym-cc}[vo:${current-vo}]【vdpau】hwdec:${hwdec-current}\n${estimated-display-fps}=(${vsync-ratio}×${container-fps}) - ${frame-drop-count} - ${mistimed-frame-count} - ${time-pos} - v${volume}'
    profile=_hwdec_vdpau
[vdpauRS]
    osd-msg2='M2${osd-sym-cc}[vo:${current-vo}]【vdpauRS】hwdec:${hwdec-current}\n${estimated-display-fps}=(${vsync-ratio}×${container-fps}) - ${frame-drop-count} - ${mistimed-frame-count} - ${time-pos} - v${volume}'
    profile=_hwdec_vdpau
    profile=_resample
[vdpauRSEX]
    osd-msg2='M2${osd-sym-cc}[vo:${current-vo}]【vdpauRSEX】hwdec:${hwdec-current}\n${estimated-display-fps}=(${vsync-ratio}×${container-fps}) - ${frame-drop-count} - ${mistimed-frame-count} - ${time-pos} - v${volume}'
    profile=_hwdec_vdpau
    profile=_resample
    profile=_extra
[vdpauEX]
    osd-msg2='M2${osd-sym-cc}[vo:${current-vo}]【vdpauEX】hwdec:${hwdec-current}\n${estimated-display-fps}=(${vsync-ratio}×${container-fps}) - ${frame-drop-count} - ${mistimed-frame-count} - ${time-pos} - v${volume}'
    profile=_hwdec_vdpau
    profile=_extra
[vdpauRSEXHRTF]
    osd-msg2='M2${osd-sym-cc}[vo:${current-vo}]【vdpauRSEX】hwdec:${hwdec-current}\n${estimated-display-fps}=(${vsync-ratio}×${container-fps}) - ${frame-drop-count} - ${mistimed-frame-count} - ${time-pos} - v${volume}'
    profile=_hwdec_vdpau
    profile=_resample
    profile=_extra
    profile=_hrtf
[vaapi]
    osd-msg2='M2${osd-sym-cc}[vo:${current-vo}]【vaapi】hwdec:${hwdec-current}\n${estimated-display-fps}=(${vsync-ratio}×${container-fps}) - ${frame-drop-count} - ${mistimed-frame-count} - ${time-pos} - v${volume}'
    profile=_hwdec_vaapi
[vaapiRS]
    osd-msg2='M2${osd-sym-cc}[vo:${current-vo}]【vaapiRS】hwdec:${hwdec-current}\n${estimated-display-fps}=(${vsync-ratio}×${container-fps}) - ${frame-drop-count} - ${mistimed-frame-count} - ${time-pos} - v${volume}'
    profile=_hwdec_vaapi
    profile=_resample
[vaapiRSEX]
    osd-msg2='M2${osd-sym-cc}[vo:${current-vo}]【vaapiRSEX】hwdec:${hwdec-current}\n${estimated-display-fps}=(${vsync-ratio}×${container-fps}) - ${frame-drop-count} - ${mistimed-frame-count} - ${time-pos} - v${volume}'
    profile=_hwdec_vaapi
    profile=_resample
    profile=_extra
[vaapiEX]
    osd-msg2='M2${osd-sym-cc}[vo:${current-vo}]【vaapiEX】hwdec:${hwdec-current}\n${estimated-display-fps}=(${vsync-ratio}×${container-fps}) - ${frame-drop-count} - ${mistimed-frame-count} - ${time-pos} - v${volume}'
    profile=_hwdec_vaapi
    profile=_extra

#
#ハードウェアアクセラレーションの個別設定
#
[_hwdec_vdpau]
    vo=vdpau
    hwdec=vdpau-copy
    vo-vdpau-deint=3 #-4 max 4
    vo-vdpau-hqscaling=1 # vdpauinfo | grep -P 'HIGH QUALITY SCALING.*y' そのレベル!!
    vo-vdpau-denoise=0.00 # -1 1 やりすぎは画質を落とす
    vo-vdpau-sharpen=0.00 #15 #0.10 #0.66 #-1 - 1 やりすぎは画質を落とす
    vo-vdpau-queuetime-fs=100 #50
    vo-vdpau-fps=60.00 # 60.00 つまるところ、デフォ0が一番。?!
    vo-vdpau-force-yuv=yes
[_hwdec_vaapi]
    vo=vaapi
    hwdec=vaapi-copy
    vo-vaapi-scaled-osd=yes #            Flag (default: no)
    vo-vaapi-scaling=fast #nla #hq  #default fast hq nla (default: default) なくてもいい。
[_hwdec_no]
#    vo=vdpau #
    hwdec=no

#
#インターポレーション、リサンプルその他の定義
#

[_resample]
    interpolation=yes #ドライバの出来重要
    video-sync=display-resample  #video-sync=display-resample-vdrop
    scale=oversample
    tscale=oversample
    display-fps=60
[_extra] #実質不要
        scale=ewa_lanczossharp
        cscale=ewa_lanczossoft
        dscale=mitchell
        dither-depth=auto
        correct-downscaling=yes
        sigmoid-upscaling=yes
        deband=yes
        scale-radius=8 #10.0
        cscale-radius=6 #3.0
        cscale-antiring=1
        scale-antiring=1
[_bigCache]
    cache=2048000          #2GB    #cache=1024000          #1GB    #

#
#HRTF(頭部伝達関数 Head-Related Transfer Function)対応
#
[_hrtf]
vd-lavc-threads=4
ad-lavc-downmix=no
af=lavfi=[sofalizer=sofa=/home/ehhen/mpv/sofa/ClubFritz6.sofa:gain=6]

#
#GUIその他
#

[builtin-pseudo-gui]
    terminal=no
    force-window=yes
    idle=once
[pseudo-gui]
    player-operation-mode=pseudo-gui
    idle=once
[default]
    player-operation-mode=pseudo-gui
    idle=once
    terminal=yes
    title='${filename}'
    cache=512000 ###cache=768000            #0.75GB #cache=512000           #0.50GB
    demuxer-readahead-secs=30 #60
    cache-secs=120 #750 #1500        #cache-secs=3000
    cache-seek-min=5000 #1000 #<500kbytes> wait
    msg-time=yes
    msg-module=yes #デフォルト no                          # prepend module name to log messages
    msg-color=yes #デフォルト yes                          # color log messages on terminal
    cursor-autohide=250        #1000 autohide the curser after 1s
    stop-screensaver=yes       #特に設定しなくてもいい。yes 旧バージョンではバグっていた。
    term-osd-bar=yes #デフォルト no                        # display a progress bar on the terminal
    term-playing-msg='' #${estimated-display-fps} / ${container-fps} frame/sec'
    osc=yes  # スクリーンコントロール マウスでだらだらyes。ターミナル本位がどうか?! そのうち確認。忙しい。キーボード操作が排除されるわけではないのでどうでもいい。コンソールをアクティブにしているとキーが違うことに気がついた。そのうち整理する。
#
#OSD しつこい設定
#
    osd-fractions=yes         #Flag (default: no) 分数
    osd-border-size=1         #MAX 10
    osd-duration=5000 #ずっと2500だった    #Integer (0 to 3600000) (default: 1000)# hide the osd after x ms
    osd-scale-by-window=yes #no #yes osd-font-size= と連関する。
    osd-level=1 #2 #通常0?!  1にしてそれをあえて空にするのだ!!      #3デバッグに便利 0123 4段階(osd display) --osd-status-msg on interaction
osd-playing-msg='${filename}\n【vo:${current-vo}】\nhwdec:${hwdec-current}\n\n'
osd-msg3='M3${osd-sym-cc}【vo:${current-vo}】hwdec:${hwdec-current}\n${estimated-display-fps}=(${vsync-ratio}×${container-fps}) - ${frame-drop-count} -  ${mistimed-frame-count}\n${time-pos}- ${=time-pos} - v${volume}\nsync:${total-avsync-change} - delayed=${vo-delayed-frame-count}\n${width}×${height} - ${display-names}\n ${filename}\n ${track-list}\n${video-codec}\n${audio-codec}\n${audio-channels}\n'
    osd-font='源ノ明朝 Heavy' #'源ノ明朝 Medium' #'源ノ明朝 Light'
    osd-font-size=30 #48 64 #72 #36
    osd-color='#FFFFFFFF' #'#FFFFFFFF'           # ARGB format くっきりで。osd-color='#FF000000'
    osd-back-color='#22000230' # 55でもいいか。ffでベタ    '#00FFFFFF' OSD透明カラー
    osd-border-color='#ff000000'    # ARGB format     〃    #本来 '#FF000000'    # ARGB format     〃
    osd-border-size=1.5 # 3-10 いまいち??
    osd-shadow-offset=1 #1             # pixel width for osd text and progress bar
    osd-shadow-color='#FF000000'
    osd-align-y=bottom #bottom #top OSD縦位置
    osd-align-x=right #center  #right
    osd-spacing=0       #デフォルト0 10
    osd-bar-align-y=0          # progress bar y alignment (-1 上, 0 中, 1 下)
    osd-border-size=0.1        # size for osd text and progress bar
    osd-bar-h=0.1              #MAX50   height of osd bar 劇細は美しい。
    osd-bar-w=90               #MAX100  width of 目安バーなので視野にかんたんに入る程度でいい。

 
<500kbytes>#
#オーディオ::設定していますが無指定で基本的にはOKです。

#

    ao=alsa #pulse #alsa #デフォルト(pulse)でいい。#音 #ao=jack #jackにも対応。#    ao=pulse #
    volume-max=200                  # maximum volume in %, everything above 100 results in amplification
    volume=100 #90                       # default volume, 100 = unchanged
    audio-file-auto=fuzzy           # external audio doesn't has to match the file name exactly to autoload
    audio-channels=auto #2.0 #audio-channels=2.1 #
    audio-pitch-correction=yes      # automatically insert scaletempo when playing with higher speed
    af=scaletempo #
    audio-wait-open=2 #あえて遅延させる

#
#
色加減、字幕、再生スピードなど
#
    contrast=3
    brightness=-5 #-2
    saturation=8 #彩度
    gamma=-6 #-6 #10 #16
    sub-visibility=no #字幕
    speed=1.00
    correct-pts=yes        #fpsを動画に合わせる。たぶん不要。
[default]
    force-window=yes #GUI を常時表示
    keep-open=no    # keep the player open when a file's end is reached


#
#その他有能
#
    use-filedir-conf=yes #再生ファイルディレクトリのmpv.conf。とても有能
    pause=no # クリックで再生開始=自動再生しない。自動再生の場合=no/コメントアウト。
    stop-playback-on-init-failure=yes #ほんまかいな!! 壊滅的な場合じゃないかと。
    framedrop=vo #結構落ちる.選択としてはこれが適切!!!!!私の結論
<500kbytes>
#
#スクリーンショット
#
    screenshot-format=png
    screenshot-template=~/Pictures/mpv/%F-%P
#
#youtube 4k/UHDかつPCが速い場合
#
<500kbytes>    hls-bitrate=max    # use max quality for HLS streams
    ytdl-raw-options=format="(bestvideo+bestaudio[height>=?2160]/best)[protocol!=rtmp]" #4K/UHD
#
#その他 主に、1920x1200/16:10用

#

    video-align-y=0.9 #6 #0.8
    panscan=0.6 # 0.4 19:10。#パン w e 意外に便利
#
#

#input.conf篇 全キー定義名称リストアップ済み!! カスタマイズのお供にどうぞ。

Alt+RIGHT add video-rotate 90
Alt+LEFT add video-rotate -90
#Alt+- add video-zoom -0.25
#Alt+= add video-zoom 0.25
#Alt+j add video-pan-x -0.05
#Alt+l add video-pan-x 0.05
#Alt+i add video-pan-y 0.05
#Alt+k add video-pan-y -0.05

#################################################################

# mpv keybindings
#
# Location of user-defined bindings: ~/.config/mpv/input.conf
#
# Lines starting with # are comments. Use SHARP to assign the # key.
# Copy this file and uncomment and edit the bindings you want to change.
#
# List of commands and further details: DOCS/man/input.rst
# List of special keys: --input-keylist
# Keybindings testing mode: mpv --input-test --force-window --idle
#
# Use 'ignore' to unbind a key fully (e.g. 'ctrl+a ignore').
#
# Strings need to be quoted and escaped:
#   KEY show-text "This is a single backslash: \\ and a quote: \" !"
#
# You can use modifier-key combinations like Shift+Left or Ctrl+Alt+x with
# the modifiers Shift, Ctrl, Alt and Meta (may not work on the terminal).
#
# The default keybindings are hardcoded into the mpv binary.
# You can disable them completely with: --no-input-default-bindings

# Developer note:
# On compilation, this file is baked into the mpv binary, and all lines are
# uncommented (unless '#' is followed by a space) - thus this file defines the
# default key bindings.

# If this is enabled, treat all the following bindings as default.
#default-bindings start

#MOUSE_BTN0 ignore                      # don't do anything
#MOUSE_BTN1 ignore                      # 真ん中ボタン don't do anything
#MOUSE_BTN0_DBL cycle fullscreen        # toggle fullscreen on/off
#MOUSE_BTN2 cycle pause                 # toggle pause on/off
MOUSE_BTN3 seek 1
MOUSE_BTN4 seek -1
#MOUSE_BTN5 add volume -2
#MOUSE_BTN6 add volume 2
# MOUSE_BTN7 set window-scale 1.5
# MOUSE_BTN8 quit-watch-later

# Mouse wheels, touchpad or other input devices that have axes
# if the input devices supports precise scrolling it will also scale the
# numeric value accordingly
AXIS_UP    seek 10
AXIS_DOWN  seek -5
AXIS_LEFT  seek 3
AXIS_RIGHT seek -2

## Seek units are in seconds, but note that these are limited by keyframes
RIGHT seek  3 #5
LEFT  seek -1 #-5
UP    seek -10
DOWN  seek  10
# Do smaller, always exact (non-keyframe-limited), seeks with shift.
# Don't show them on the OSD (no-osd).
#Shift+RIGHT no-osd seek  1 exact
#Shift+LEFT  no-osd seek -1 exact
#Shift+UP    no-osd seek  5 exact
#Shift+DOWN  no-osd seek -5 exact
# Skip to previous/next subtitle (subject to some restrictions; see manpage)
#Ctrl+LEFT   no-osd sub-seek -1
#Ctrl+RIGHT  no-osd sub-seek  1
#PGUP add chapter 1                     # skip to next chapter
#PGDWN add chapter -1                   # skip to previous chapter
#Shift+PGUP seek 600
#Shift+PGDWN seek -600

[ multiply speed 0.99                # scale playback speed
] multiply speed 1.01
{ multiply speed 0.5
} multiply speed 2.0

#[ multiply speed 0.9091                # scale playback speed
#] multiply speed 1.1
#{ multiply speed 0.5
#} multiply speed 2.0


#BS set speed 1.0                       # reset speed to normal
#q quit
#Q quit-watch-later
#q {encode} quit 4
#ESC set fullscreen no
#ESC {encode} quit 4
#p cycle pause いらんな。              # toggle pause/playback mode
. frame-step                           # advance one frame and pause
, frame-back-step                      # go back by one frame and pause
#SPACE cycle pause
#> playlist-next                        # skip to next file
#ENTER playlist-next                    # skip to next file
#< playlist-prev                        # skip to previous file
O no-osd cycle_values osd-level 1 2 3 # 0    # cycle through OSD mode 有能
#o show-progress
#P show-progress
p show-progress
P show-text "${filename}"              # display filename in osd
#I show-text "${filename}"              # display filename in osd
#z add sub-delay -0.1                   # subtract 100 ms delay from subs
#x add sub-delay +0.1                   # add
#ctrl++ add audio-delay 0.100           # this changes audio/video sync
#ctrl+- add audio-delay -0.100

#9
#0
#9 add volume -2
#/ add volume -2
#0 add volume 2
#* add volume 2
#m cycle mute
#1 add contrast -1
#2 add contrast 1
#3 add brightness -1
#4 add brightness 1
#5 add gamma -1
#6 add gamma 1
#7 add saturation -1
#8 add saturation 1

#F1
#F2
#F3
#F4
F11 cycle fullscreen                     # toggle fullscreen
F12 no-osd cycle_values osd-level 1 0 # 0    # cycle through OSD mode 有能
HOME seek  -7200 #先頭フレームに飛ぶ。2時間戻る=結果的に大抵のファイルで先頭に戻ることだ。
#END
#INS
#TAB
#DEL は空きではない。

- seek -30
+ seek  30
/ no-osd cycle_values osd-level 1 2 3 0 #0    # cycle through OSD mode 有能
* cycle osd-align-y #=top bottom center

#Ctrl+KP_ENTER
#Alt+KP_ENTER
#Ctrl+Alt+KP_ENTER

KP7 add gamma 1
KP8 add volume 3
KP9 add brightness 1
KP4 seek -5
KP5 playlist-next                    # skip to next file
KP6 seek 5
KP1 add gamma -1
KP2 add volume -3
KP3 add brightness -1
KP0 no-osd cycle_values osd-level 1 2 3 #0    # cycle through OSD mode 有能
KP_DEC ab_loop

#> playlist-next                        # skip to next file
#ENTER playlist-next                    # skip to next file
#< playlist-prev                        # skip to previous file


#KP. 設定できないキー KP_DECかな。
#Alt+KP0 cycle osd-align-y #=top bottom center

#NG Alt+KP0 cycle_values osd-align-y top bottom center
#NG Alt+KP0 cycle osd-align-y top bottom #The cycle option must be a floating point number or a ratio (numerator[:/]denominator): top
#OK
#NG Alt+KP0 cycle_values osd-align-y top bottom center
#NG Alt+KP0 cycle osd-align-y 0 1
#NG Alt+KP0 osd-align-y cycle_values osd-align-y=top bottom center
#osd-level 1 2 3 #0    # cycle through OSD mode 有能


alt+KP6 playlist-next
alt+KP4 playlist-prev

KP_ENTER cycle fullscreen                     # toggle fullscreen
#KP_ENTER cycle fullscreen                     # toggle fullscreen


Alt+0 set window-scale 0.5
Alt+1 set window-scale 1.0
Alt+2 set window-scale 1.5
Alt+3 set window-scale 1.72
Alt+4 set window-scale 2.0
# toggle deinterlacer (automatically inserts or removes required filter)
#d cycle deinterlace
#r add sub-pos -1                       # move subtitles up
#t add sub-pos +1                       #                down
#v cycle sub-visibility
# stretch SSA/ASS subtitles with anamorphic videos to match historical
#V cycle ass-vsfilter-aspect-compat
# switch between applying no style overrides to SSA/ASS subtitles, and
# overriding them almost completely with the normal subtitle style
#u cycle-values ass-style-override "force" "no"
#j cycle sub                            # cycle through subtitles
#J cycle sub down                       # ...backwards
#SHARP cycle audio                      # switch audio streams [#]のこと。単語で書く。

#_ cycle video
#T cycle ontop                          # toggle video window ontop of other windows
#f cycle fullscreen                     # toggle fullscreen
#s screenshot                           # take a screenshot
#S screenshot video                     # ...without subtitles
#Ctrl+s screenshot window               # ...with subtitles and OSD, and scaled
#Alt+s screenshot each-frame            # automatically screenshot every frame
#w add panscan -0.1                     # zoom out with -panscan 0 -fs
#e add panscan +0.1                     #      in
# cycle video aspect ratios; "-1" is the container aspect
#A cycle-values video-aspect "16:9" "4:3" "2.35:1" "-1"


#POWER quit
#PLAY cycle pause
#PAUSE cycle pause
#PLAYPAUSE cycle pause
#STOP quit
#FORWARD seek 60
#REWIND seek -60
#NEXT playlist-next
#PREV playlist-prev
#VOLUME_UP add volume 2
#VOLUME_DOWN add volume -2
#MUTE cycle mute
#CLOSE_WIN quit
#CLOSE_WIN {encode} quit 4
#E cycle edition                        # next edition
#l ab_loop                              # Set/clear A-B loop points
#L cycle-values loop "inf" "no"         # toggle infinite looping
#ctrl+c quit 4

# Apple Remote section
#AR_PLAY cycle pause
#AR_PLAY_HOLD quit
#AR_CENTER cycle pause
#AR_CENTER_HOLD quit
#AR_NEXT seek 10
#AR_NEXT_HOLD seek 120
#AR_PREV seek -10
#AR_PREV_HOLD seek -120
#AR_MENU show-progress
#AR_MENU_HOLD cycle mute
#AR_VUP add volume 2
#AR_VUP_HOLD add chapter 1
#AR_VDOWN add volume -2
#AR_VDOWN_HOLD add chapter -1

# For tv://
#h cycle tv-channel -1                  # previous channel
#k cycle tv-channel +1                  # next channel

#
# Legacy bindings (may or may not be removed in the future)
#
#! add chapter -1                       # skip to previous chapter
#@ add chapter 1                        #         next

#
# Not assigned by default
# (not an exhaustive list of unbound commands)
#

# ? add sub-scale +0.1                  # increase subtitle font size
# ? add sub-scale -0.1                  # decrease subtitle font size
# ? sub-step -1                         # immediately display next subtitle
# ? sub-step +1                         #                     previous
w cycle-values window-scale 0.5 2 1   # switch between 1/2, 2x, unresized window size
# ? cycle-values window-scale 0.5 2 1   # switch between 1/2, 2x, unresized window size
# ? cycle colormatrix
# ? add audio-delay 0.100               # this changes audio/video sync
# ? add audio-delay -0.100
# ? cycle angle                         # switch DVD/Bluray angle
# ? add balance -0.1                    # adjust audio balance in favor of left
# ? add balance 0.1                     #                                  right
# ? cycle sub-forced-only               # toggle DVD forced subs
# ? cycle program                       # cycle transport stream programs
# ? stop                                # stop playback (quit or enter idle mode)


# mpv --input-keylist
#
# SPACE
# SHARP
# IDEOGRAPHIC_SPACE
# ENTER
# TAB
# BS
# DEL
# INS
# HOME
# END
# PGUP
# PGDWN
# ESC
# PRINT
# RIGHT
# LEFT
# DOWN
# UP
# F1
# F2
# F3
# F4
# F5
# F6
# F7
# F8
# F9
# F10
# F11
# F12
# KP0
# KP1
# KP2
# KP3
# KP4
# KP5
# KP6
# KP7
# KP8
# KP9
# KP_DEL
# KP_DEC
# KP_INS
# KP_ENTER
# MOUSE_BTN0
# MOUSE_BTN1
# MOUSE_BTN2
# MOUSE_BTN3
# MOUSE_BTN4
# MOUSE_BTN5
# MOUSE_BTN6
# MOUSE_BTN7
# MOUSE_BTN8
# MOUSE_BTN9
# MOUSE_BTN10
# MOUSE_BTN11
# MOUSE_BTN12
# MOUSE_BTN13
# MOUSE_BTN14
# MOUSE_BTN15
# MOUSE_BTN16
# MOUSE_BTN17
# MOUSE_BTN18
# MOUSE_BTN19
# MOUSE_BTN0_DBL
# MOUSE_BTN1_DBL
# MOUSE_BTN2_DBL
# MOUSE_BTN3_DBL
# MOUSE_BTN4_DBL
# MOUSE_BTN5_DBL
# MOUSE_BTN6_DBL
# MOUSE_BTN7_DBL
# MOUSE_BTN8_DBL
# MOUSE_BTN9_DBL
# MOUSE_BTN10_DBL
# MOUSE_BTN11_DBL
# MOUSE_BTN12_DBL
# MOUSE_BTN13_DBL
# MOUSE_BTN14_DBL
# MOUSE_BTN15_DBL
# MOUSE_BTN16_DBL
# MOUSE_BTN17_DBL
# MOUSE_BTN18_DBL
# MOUSE_BTN19_DBL
# AR_PLAY
# AR_PLAY_HOLD
# AR_CENTER
# AR_CENTER_HOLD
# AR_NEXT
# AR_NEXT_HOLD
# AR_PREV
# AR_PREV_HOLD
# AR_MENU
# AR_MENU_HOLD
# AR_VUP
# AR_VUP_HOLD
# AR_VDOWN
# AR_VDOWN_HOLD
# AXIS_UP
# AXIS_DOWN
# AXIS_LEFT
# AXIS_RIGHT
# POWER
# MENU
# PLAY
# PAUSE
# PLAYPAUSE
# STOP
# FORWARD
# REWIND
# NEXT
# PREV
# VOLUME_UP
# VOLUME_DOWN
# MUTE
# HOMEPAGE
# WWW
# MAIL
# FAVORITES
# SEARCH
# SLEEP
# CANCEL
# XF86_PAUSE
# XF86_STOP
# XF86_PREV
# XF86_NEXT
# CLOSE_WIN
# MOUSE_MOVE
# MOUSE_LEAVE
# MOUSE_ENTER
# UNMAPPED
#
#
# #
#

#
#

e2fsck: Get a newer version of e2fsck!


自分はmakeしましたが、debianパッケージはあるようです。
launchpad では適切なものを見つけられませんでした。
以下は使っていません。

e2fsprogs_1.43.6-1_amd64.deb

北アメリカ
ftp.us.debian.org/debian
http.us.debian.org/debian
ftp.debian.org/debian
ftp.ca.debian.org/debian
ftp.mx.debian.org/debian

当方make, on 16.04LTS 2017-10-17最新ソースから。



e2fsprogs_1.43.6-1_amd64.deb
ダウンロード


オリジナルサイト
https://sourceforge.net/projects/e2fsprogs/?source=typ_redirect
週あたりダウンロード数がすごいですね。
 5.0 Stars (9)
 11,960 Downloads (This Week)
 Last Update: 



2017年10月5日木曜日

AT-HA90USB 過去のレビューを上書き オーディオテクニカ USBヘッドホンアンプ

過去レビューを上書きしてみます。オーディオテクニカ AT-HA90USB

https://www.audio-technica.co.jp/atj/show_model.php?modelId=2324
※NTT-Xで安価販売されているせいか、急激にアクセスが増えてきました。それで若干補筆しました。ぶっちゃけ、親しい友達でかつWindows10ユーザーになら、「安いので買ってみたら」。その他OSなら、「うまくいくといいね」ってかんじでしょうか。たぶんここまでみている人はディレンマに陥っているのかもしれませんね。幸運を!! だめな時はだめ。

Windows10篇::処分をやめました。これは使える。


結論::USBヘッドホンアンプ  AT-HA90USB オーディオテクニカの「今」
僭越ながら、過去のレビューを上書きしたいと思います。書いたひとたちが悪いわけではなくて、OSのサポートの問題がほとんどであって、価格コムやamazonやその他でボロクソな評価です。が、必ずその日付を確認してみてください。悪意があって書かれているわけではないと思います。ただとんでもない勘違いを書かれている方も一部にいらっしゃる気がしますが、それはそっとしておきましょう。


Windows10に限っていえば、少なくとも2017年春のクリエイターズアップデートを適用した状態では、Windows10Pro、Windows10home(共に64BIT版)で、当方では完全に動作するようになっています。手持ちのUSB-DACの中でももっともクリアだと思います。私が適用したのは8月です。適当前はひどかったので箱にいれて保存していたのです。めったにWindowsは起動しないので。現時点(2017/11/06)では次のWindowsレベルまでアップデートをあてた状態でテストしてみました。良好でした。

ちょっとした経緯::お蔵入りを再開封してみて

(略)その後別のUSB-DACを買ってみたのでテストがてら再開封したところ、おそらくWindows10では最高の結果が得られれていることに気がついたわけです。
もともと、希望小売価格 ¥45,000(税抜)です。HA40USB、AT-HA70USB より高価で、後年リリースされた製品で、サンプリングレートなども上です。良いオペアンプなども使っているようですね(NJR社製オペアンプ(MUSES))。だたいろいろ問題があったがそれは過去のものであると当方では思います。

さて話は戻ります。

AT-HA90USBとPCを接続していない状態で、サポートで提供されているdriverを導入します。これできちんとはいるのですが、念のためdriverがどう組み込まれているか絵で示します。

Linux(ubuntu/mint)では、USB Audio Class 2.0 で動作していると思われます。それでUSB Audio Class 2.0対応を果たしたWindows10では専用driverは不要なのでは??と考えたのですが、USBAudioClass2.sys(うろ覚え::Linux上で書いています)で動作していません。違います。このマイクロソフトdriverが先につかむと動きません。なんとなく笑えるところ。

当方の環境における結論からいえば、HA90USB.SYSは必須(2012年)です。また、計4つのマイクロソフトの関連driverが組み込まれていると思いますが日付は2017/07/27だったと思います。

カジュアルユーザーな当方としてはいちおう高級機にあたるDACなので、お蔵入りしている方はぜひ繋いでみてください。うまくいくかもしれませんね。もったいないです。


流通在庫はあるようですが、生産中止ですし、正式にはWindows8.1までの対応です。
ユーザーは誰も悪くなかった。driver提供と改定というメーカーがすべきちゃんとした努力を怠った。結果、「オーディオテクニカは最初から壊れているものを売るな」とか声がでるのも不思議ではないし猜疑心が生まれるのも仕方ない。結果、妙な情報も含めて流通したみたいなことかと、あくまで私見ですが。

余談::この製品のことではありませんが、サポートできないのなら 商品企画から断罪されるべきかなと思います。ODM先のコントロールができないのなら、メーカーとはいえない。単なる輸入販売業は、個人でもできる。品質管理は壊れたものを売ることではないのです。ま、いいか。

Linux篇とMAC OSX

MACはありませんのでわかりません。お持ちの方がいれば教えてくださいませ。(USB Audio Class 2.0で動作するんじゃないかと思うんですが)

Linuxは無論サポート外です。ノーマルCD-DA/44.1khz、問題ないです。(ubuntu17.10 mint 16.04LTS)


ハイレゾソースに関してはあまりうまくないです。
まともに聴こえるっぽい方法を研究結果として示しておきます。
jack除外です。しても無駄だったので。

  • alsa で排他的っぽい使い方をする。このブログを検索
  • audaciousまたはDeadbeef両方で、resample して、48k/24bit相当に落とす。


ほかによい、または最適な方法があればぜひとも教えてください。私は「ない!!」と結論づけました。手持ちでは、このDAC以外96kDAC/192kDAC/48KDACがありますが、全てまともです。99.8%はLinux上なので、けっきょく別のDAC、かな、と。笑)