▌ Kitty (terminal) + MPD (music) + mpv (movie) 커스텀 설정
※용도 : AV (Audio Video, Adult Video 아님) : livetv(mpv) + mpd(nsxiv)
[Apps. 순서대로] pulsemixer, spt(=spotify-tui), mpv(tv card, 토랭이, 유투브), dunst(spotify coverart), tmux(--> ncmpcpp, cava), nsxiv(mpd coverart), ncspot(spotify 프리미엄 계정 필요)
- qutebrowser, nsxiv(spootify cover), tmux(--> spt + spt )
※ 준비물: 1. 리눅스, 리눅스 패키지들 2. mpv 커스텀 : 리눅스(또는 Window OS), lua, python, shell. etc...
※가볍고 빠르다. 저사양에서 잘 돌아간다.
※ 1. mpc + coverart 커스텀. 1-key 단축키
🔎 설치
$ sudo pacman -S kitty mpd mpc ncmpcpp ffmpeg nsxiv tmux fzf rofi $ yay -S cava dunst-git
🔎 mpd 설정 : 생략
😀 ~/.local/bin/music
#!/bin/bash
session="Music"
cover="/home/[user]/Music/cover_ori.png"
#mpv --profile=tv -x11-name=livetv ~/TVChannels/my_tvheadend.m3u & >/dev/null 2>&1
if ! pidof mpd >/dev/null; then mpd; fi
[[ ! -f $cover ]] && ffmpeg -f lavfi -i color=c=red:s=320x240:d=10 -vf "drawtext=fontsize=30:box=1:boxborderw=5:boxcolor=white@0.25:fontcolor=white:x=(w-text_w)/2:y=(h-text_h)/2:text='Clien Linuxer'" $cover;
tmux -2 has-session -t $session
if [ $? -eq 0 ]; then
tmux -2 attach -t $session
/usr/bin/kitty --class=music-tmux --hold sh -c "tmux attach-session -t Music" & >/dev/null 2>&1
/usr/bin/nsxiv -b -N nsxiv-mpd $cover & >/dev/null 2>&1
exit 0
fi
tmux new-session -d -s $session
tmux set-option status off
tmux send-keys -t "$session:1" '/usr/bin/ncmpcpp' C-m
tmux split-window -t "$session:1" -v -p 30 -d '/usr/bin/cava'
tmux new-window -t "$session:2"
tmux send-keys -t "$session:2" '~/.local/bin/notification music 2>/dev/null' C-m
tmux select-window -t "$session:1"
#tmux attach-session -t $session
/usr/bin/kitty --class=music-tmux --hold sh -c "tmux attach-session -t Music" & >/dev/null 2>&1
/usr/bin/nsxiv -b -N nsxiv-mpd $cover & >/dev/null 2>&1
😀 ~/.local/bin/notification
#!/bin/bash
MUSIC_DIR="$HOME/Music/"
ICON="$MUSIC_DIR/cover.png"
ICON2="$MUSIC_DIR/cover_ori.png"
function music
{
while true; do
mpc idleloop |
while read update; do
if [ $update == "player" ]; then
ffmpeg -i "$MUSIC_DIR/`mpc current -f '%file%'`" -vf scale=100:-1 \
-codec png -y $ICON >/dev/null 2>&1;
ffmpeg -i "$MUSIC_DIR/`mpc current -f '%file%'`" -vf scale=480:-1 \
-codec png -y $ICON2 >/dev/null 2>&1;
# Get fields from mpc, split by tabs.
IFS=$'\t' read album artist title \
<<< "$(mpc --format="%album%\t%artist%\t%title%")"
notify-send --urgency=normal --expire-time=5000 --app-name=mpd \
--icon=$ICON " $title" " by $artist"
elif [ $update == "mixer" ]; then
# Get volume
vol=`mpc | tail -n1 | awk '{print $2}'`
notify-send --urgency=low --expire-time=1000 --app-name=mpd \
--icon=$ICON " Volume: $vol" "Mixer Changed"
fi
done
done
}
case $1 in
music) music ;;
*) exit 1 ;;
esac
😀 ~/.zshrc (or ~/.bashrc)
# fzf {{{
## mpd
fmpc() {
local song_position
song_position=$(mpc -f "%position%) %artist% - %title%" playlist | \
fzf-tmux --header="♬ MPD Playlist Queue" --query="$1" --reverse --select-1 --exit-0 | \
sed -n 's/^\([0-9]\+\)).*/\1/p') || return 1
[ -n "$song_position" ] && mpc -q play $song_position
}
$ source ~/.zshrc
😀 ~/.config/cava/config
# The number of bars. 0 (default) sets it to auto (fil upp console). # width of bras and space between bars in number of characters. Default witdth 3 and space 1. bars = 0 bar_width = 1 bar_spacing = 1
😀 ~/.config/dunst/dunstrc
[MPD]
appname = mpd
format = " Mopidy\n\n %s\n %b"
#new_icon = /home/nietz/Music/recover.png
timeout = 5
🔎 nsxiv 이미지 뷰어의 backgound 색상 변경
😀 ~/.Xresources
!! 아래 색상값은 kitty 터미널의 Dracula 테마의 "background" 색상임 *background: #282a36
$ xrdb -merge .~/.Xresources
이후. 실행되는 nsxiv 백그라운드 색상은 위의 값으로 나타남.
🔎🔎 Music 실행 방법
🔎 실행 1 : 런처에서 "music" 엔터
🔎 실행 2 : 또는, 런처에서 "kitty -e music" 엔터
🔎 실행 3 : 또는, 터미널에서 "music" 엔터 (3가지 방법 중에서 택 1)
(저의 경우 런쳐는 "rofi")
1. drun : "mod4(=윈도우키) + o" ---> "rofi -show drun -show-icons"
2. run : "mod4(=윈도우키) + shift + o" ---> "rofi -show run -modi 'run'" <-- 이것
🔎 실행 4: ~/.local/bin/music 파일을 WM이나 DE에서 제공하는 단축키 세팅밥법을 통해 키바인딩 , 실행 1과 같은 결과
(정리: "윈도우키 + shift + o + music + Enter" 하면 실행 됨. 또는 1-key 단축키 바인딩 실행)
🔎 우측 화면에뜨는 "nsxiv" 의 coverart, "kitty" 터미널의 tmux(ncmpcpp + cava) 윈도우 창은
1. WM/DM 에서 제공하는 룰을 통해 자동 배치 룰을 작성해서 화면 배치,
2. 또는 2개의 각각의 윈도우 창을 실행 할때, --geometry 옵션을 통해 수동으로 고정
3. 또는 마우스 드래그에서 위치를 수동으로 고정.
※2. Image Viewer
2.1. feh
: 저의 메인. 가장 가볍고 빠릅니다. centerFloat 모드로 실행. ranger나 lf 에서 이미지 파일 하나 선택 실행하면 동일 폴더내에 있는 모든 이미지 파일들을 플레이리스트로 만들어 줍니다.
2.2 sxiv 또는nsxiv(neo sxiv)
: title 모드로 실행. .일반적으로 사용하기에 가장 좋습니다. 동일 폴더 내 모든 이미지 파일들의 플레이 리스트를 만듭니다.
이하. 폴더 recusive 모두 블러 오려면
| ranger : "s nsxiv *" Enter
| lf : "! nsxiv *" Enter
2-3: ucollage : https://github.com/ckardaris/ucollage
: 터미널 이미지 뷰어. 위. nsxiv 와 비슷한 인터페이스.. but nsxiv 에 비행 실행 속도나. 다음/이전 이미지로 이동 속도가 약간 느리다. tmux 상에서 실행하면 이미지 레이아웃 안 깨지고 자동 조절 잘 된다.
🔎 설치 : $ yay -S ucollage ueberzugpp
🔎 실행 : $ ucollage [이미지폴더 경로] 또는 이미지가 들가 있는 폴더 경로로 이동 후
| ranger : "s ucollage" --> "Y"
| lf : "! ucollage" --> "Y"
2-4. mpv
: lua 스크립트와 함께 가장 강력합니다. 실시간으로 영역 지정하여 delogo, crop, SuperResolution 업스케일링 필터, 등 온갖 필터들을 적용할 수 있습니다.
: 간편하게 미니멀 하게 작동하지만, 그리 동작시키기 위한, 설정 방법은 방대하고 난해합니다.
4. mpv 화질 보정 커스텀 & kitty 터미널 테마 설정 [Link]
4-1. mpv 화질 보정 : filter / shader 적용
🔎 설치 : $ sudo pacman -S mpv lua python vapoursynth kitty
(vapoursynth 프레임 보간 할려면, $ yay -S mpv-vapoursynth 이걸로 대체 설치)
🔎 REPL mpv-live-filters : https://github.com/hdb/mpv-live-filters
😀 ~/.local/bin/tv
mpv $HOME/TVChannels/my_tvheadend.m3u --profile=tv --playlist-start=21
😀 ~/.conofig/mpv/mpv.conf
위 영상에서 처럼 filter 체인과 custom shader 구성을 수동으로 단축키나 커맨드로 하나 하나씩 직접 입력해도 되지만. 매번 그리하기엔 귀찮으니깐.. 위 영상에서 사용한 오디오/비디오 필터 순서대로, 그리고 커스텀 세이더를 적용해서 [tv] profile 을 구성하면 해당 필터들이 아래 이미지처럼 자동 실행 됩니다. 커스텀 세이더를 사용할 꺼이기 때문에 mpv 내장 스케일링 알고리즘 옵션들은 가능한 다 꺼버립니다.
( tv profile : 제 하드웨어 사양에선 CPU: 15%, GPU:: 25% 정도 먹네요 )
[tv] #vo=gpu-next #gpu-api=vulkan #hwdec=vulkan #gpu-context=x11vk vo=gpu-next #vo=gpu hwdec=nvdec-copy no-resume-playback cache=auto x11-name=tv #demuxer-readahead-secs=20 af-clr vf-clr glsl-shaders-clr af="lavfi=[loudnorm=I=-14:TP=-3:LRA=4]" scale=bilinear cscale=bilinear dscale=bilinear scale-antiring=0 cscale-antiring=0 dither-depth=no correct-downscaling=no sigmoid-upscaling=no deband=no vf=lavfi=graph="bwdif=mode=send_frame:parity=auto:deint=all" #deint=interlaced vf-add=lavfi=graph="unsharp,atadenoise" vf-add="vapoursynth=~~/vapoursynth/NVDIA_Optical_Flow_b4c8.vpy:buffered-frames=4:concurrent-frames=8" # Kriigbl Chroma Up/Down Scaling, then SSimDownscaler L2 pass 1 glsl-shaders="~~/shaders/krigbl.glsl:~~/shaders/ssimds.glsl" screen=1 fs-screen=current
4-2. kitty 색상 테마 설정
| 워우 헉. 너무 간편합니다. 먼저 아무 터미널이나 실행 한 후(근데 이왕이면 kitty 터미널이 좋겠죠? 다른 터미널은 저장이 안되는 듯)
$ kitten theme
치면,, 테마 선택 윈도우가 뜹니다. 영상에서 처럼 사용하고 싶은 테마를 선택 한 후, 1. Enter 2. m 키(Modify) 를 누르면 테마 색상 값이 변경 됩니다. 이후. 다음 kiity 실행 해 보변. 변경된 색상으로 나옵니다.
kitty 재시동 안하고, 바로 테마 파일이나 kitty 환경 설정 파일 반영할려면,
- Reload Kitty Terminal: 단축키 : "ctrl + shift + F5" 키를 누르면 즉각 반영됩니다.
| 테마 파일 저장 위치 : ~/.config/kitty/current-theme.conf
| kitty 환경 설정 파일 : ~/.config/kitty/kitty.conf (kitty 터미널창에서 "ctrl + shift + F2" 키를 누르면 해당 환경 설정 파일이 바로 열립니다.
| 심플하게 설정 해 봤습니다. 커스텀 설정 한건 딱 4부분 7라인. ㅠ.ㅠ
😀 ~/.config/kitty/kitty.conf
# BEGIN_KITTY_THEME # Dracula include current-theme.conf # END_KITTY_THEME font_family IosevkaTerm Nerd Font Mono obold_font auto italic_font auto bold_italic_font auto font_size 11.0 window_margin_width 16 confirm_os_window_close 0
kitty 터미널이 요즘 대세랍니다. 설명서가 너무 잘 되어 있고, 설정 난이도가 무난한 편인거 같습니다. 근데 저는 기존 사용하던 터미널에 비해.. kitty가 처음 실행 할땍. 렉이 있고 로딩도 느리고,, 반응 속도, cli 앱들 로딩 속도도 느린게 확연히 느껴지는게 좀 갑갑하네요. font 렌더링도 흐릿하게 먼가 깨지는 부분도 있는 것 같구요
(부록)
▌MPV + Vapoursynth_Nvdia_NVOF + Lua+ Nvdia Shader 환경 구축하기 (윈도우 OS 기준, Linux 같은 mpv 설정 파일로 동작함)
※ Custom_mpv 설치/설정 한방팩: 3분카레임. 마우스 5번 크릭하면 완료. 아래 링크에 언급된 실시간 보간을 사용할 수 있다(rife 제외, 의미없어서 뺏음)
1. 설치: Window OS 기준 (리눅스 생략, Window 10 에서 설치 동작 확인 완료.)
mpv_custom.7z : https://drive.google.com/drive/folders/11HDjNzo6zkMeJvfeMFui3X6GuHM1mYjS?usp=sharing
1-1. 위 링크에서 mpv_custom.7z 압축 파일을 받아서 아무 폴더에 푼다. portable mpv 설치임. 압축 해제 암호: "URE-091"
압축을 풀면. "mpv\Installer" 폴더가 있음. 걸로 들어가서. 5개 파일 설치한다. 반드시 순서대로. 관리자 권한으로 실행(더블크릭한다) 설치
(mpv.exe 파일을 환경변수 path 에 등록하면 파워셀에서 실행할 경우가 있을때 유용하다)
"mpv\Vapoursynth\plugins" 폴더에 들어가면 vapousynth dll 플러그인이 여러갠 있다. -- dll 파일 전부다 복사해서 "c:\program files(x86)\vapoursnth\plugins" 폴더에다 붙여 넣으면 작동함
하나 빠드렸네요. yt-dlp.exe(구: youtubd-dl.exe) 파일을 mpv 폴더에다 넣어 주세요. mpv.exe. 파일 있는 곳
- lua 설치 파일 제외하곤, 당시 세팅/작성일자 기준(2023-04-14 일자): 전부 최신 최신 버젼의 64bit(x64)설치파일/Vapoursynth Plugin 들입니다. (mpv 는 mpv_Update 파일을 관리자 실행하면 바로 최신버젼으로 업데이트 가능할 거에요. 업데이트 추천안함.버전 올라가서 mpv 옵션값 바뀌부분 잇으면 설정값 다시 수정해줘야함)
2. 설정: 이미 다 되어 있음
mpv.conf : mpv 환경설정 파일
input.conf : mpv 단축키/우크릭 메뉴 설정 파일
3. mpv 데모/사용법 : 윈도우 탐색기에서 음악 파일이나, 영상 파일을 더블 크릭하면 mpv 로 재생된다
아래 링크의 영상이 재생되지 않는다면. 웹에서 재생, Url 재생, 다운받아서 재생
https://drive.google.com/uc?export=download&id=1LKSBb7enkeCK1uTUdBf2Qm-EAeqcYy9j

| 필터 작동 확인 유무 : "I" 키 + "1" 번키
| Shaders 작동 확인 유무 : "I" 키 + "2" 번키
| 현재 설정된 단축키 목록 보기 : "I" + "4"
- 야동 재생에 필수 단축키 세팅
| 1, 2, 3, 4, 5: 5가지 종류 보간 필터 토글(1키고 다시 1누르면 꺼짐), 모든 적용된 비디오 필터 제거(초기화) : 6번키 or H
| 8번 : fulllscreen 토글(전제화면 모드 켜기/끄기) | 9번 : 자막 단위 역방향 이동, 0번 키: 자막 단위 정방향 이동
| F10, F1, F2 ~~~ F9 : 영상의 첫분분, 10%, 20% ~~~ 90% 구간 이동
| 스킵 재생(Seeking) : 화살표 4개(+10, -5, +60, -60 초), PGUP(+10분), PGDWN(-10분)
| 현재 적용된 모든 Shader 제거: h 키
모든 필터나, 세이더는 중첩해서 여러개 사용 할 수 있다. 실시간 화면 캡쳐 인코딩 하면서, 무거운 CPU 필터 2개 썯더니, 영상이 버벅인다. ㅠ.ㅠ. 평상시 2개는 문제 없이 실시가 재생됨(프레임 드랍, 프레임 스킵 없음)
- FHD 1080p 모니터 기준
480p, 720p 소스를 재생하면, Upscaler 가 작동하고,
4K,2160p 이상의 소스를 재생하면, Downscaler 가 작동한다. 1080p 소스를 fullscreen 재생이 아닌. 72% 정도의 윈도우 창 모드 크기로 재생해도 Downscaler 가 작동한다.
Nvida 카드인 경우 : NVScaler (업스케일러) 세이더, NVSharpen 세이더(1080p 모니터에 1080p 소스를 fullscreen 으로 재생시 작동)
AMD 카드인 경우 : SharpenCAS 세이더, AMD FidelityFX Super Resolutioin 세이더 사용
나머지 비디오 재생 옵션들 설명 생략, mpv.conf 파일 열어보면 잡다한 세팅이 많음.
[야동 480p], [야동 4K-60fps] 등등의 프로파일(=일종의 프리셋) 설정 해 놓았음
(2018 년에) SVPflow plugins 페이지 : https://www.svp-team.com/wiki/Manual:SVPflow 에 들어 갔을땐. svpflow1.2.so[dll] 플러그인을 다이렉트 다운받을 수가 잇었는데. 지금 들어 가보니. 페이지 옵션값 설명은 그대로 인데. 전제 SVP4 프로그램 다운페이지로 연결됨 ㅠ.ㅠ
SVP4 평가판 깔아서. svpflow1.dll, 등등 파일 추출 해서, 적용 해 놓았음
윈도우 OS 에서 SVP4 깔아 봤는데. 영상 재생하다가 좀 지나니깐 빨간색 Border가 생김,
우크릭 메뉴 Auto Corp(단축키 "C" 로 활당함) 또는 input.conf 파일의 2 3 4 5 보간 필터값에 아래 화면의 "Crop" 필터값 적용해서, 동서남북 새빨간 Border 4px 씩 날렷음
4. 4K 소스 8K 업스케일 재생시 CPU/GPU 사용율 체크
- 소스 : CAWD-266.mp4 | 20 G 정도(?) | 29.970 fps 파일
- 60 fps 변환 재생, 8K 업스케일 재생, NVScaler 세이더 적용, 화면 캡쳐 인코딩 빼면 GPU 90% 선에서 잘 돌아감
- 캡쳐 영상 : 3840p x 1080p | 60 fps | 좌측이 59.940 fps 보간 재생, 우측이 29.970 fps 원본 프레임 레이트 재생
웹에서 미재생시(영상 로딩이 안될 시) 해당 파일: https://drive.google.com/uc?export=download&id=1GnNRxrmkIkexdMauP_gtnr6_1hMMgqXb
(누르면 이미지가 커집니다.)
4K 원본 프레임
8K 업스케일링 된 프레임 : NVidia Scaler Shader
^^^ mpv 가 재생이 잘 안될 때, 환경 설정 값 최소치 설정
가-1. mpv.conf: 환경 설정 파일 설정 예시
# this is required for Vapoursynth to "catch" the mpv input-ipc-server=mpvpipe # hardware video decoder hwdec=d3d11va-copy #hwdec=dxva-copy hwdec-codecs=all #hwdec-codecs="h264,hevc,vp8,vp9,av1,mpeg2video" # may fix audio desync in come cases hr-seek-framedrop=no vf="vapoursynth=~~/vapoursynth/NVDIA_Optical_Flow.vpy,lavfi=[gradfun=strength=3.5:radius=16]" profile=opengl # high quality video output, require rather fast video card #profile=opengl-hq opengl-backend=angle # "ReClock" replacement #video-sync=display-resample #video-sync-max-video-change=5
가-2. input.conf: mpv 단축키 키바인딩 설정 예시
1 vf toggle "vapoursynth=~~/vapoursynth/NVDIA_Optical_Flow.vpy,lavfi=[gradfun=strength=3.5:radius=16]"
※※ 야동 감상 최적화 세팅값
※ "야동-HD" Auto-Profile(프리셋)
| CPU: Ryzen 2700X | GPU: Nvidia GTX 1660 Super 기준 아래 Profile 은 Idle 대비 CPU 50%, GPU 45% 정도의 점유율은 먹는다. 프레임 드롭/프레임 스킵/A-V Desyc 가 발생하지 않는 셋팅값
| mpv.conf
# Auto Profile : Video file, 720p ~ 1080p, 29.970fps ~ 59 fps source, "블라블라/Jav/블라블라" 폴더
[야동-HD]
#profile-desc=cond:get('width', -math.huge) <= 1920 and get('container-fps', 0) <=59
profile-cond=width >=720 and width <= 1920 and fps <=59 and require 'mp.utils'.join_path(working_directory, path):match('/jav/') ~= nil and duration >= 600
af-clr
vf-clr
glsl-shaders-clr
input-ipc-server=/tmp/mpvsocket
hr-seek-framedrop=no
vo=gpu,tct
gpu-api=auto
gpu-context=auto
hwdec=cuda-copy
hwdec-codecs="h264,hevc,vp8,vp9,av1,mpeg2video" # vc1(wmv) 코덱, 녹색 스크린, 하드웨어 디코딩 에러남.
profile=gpu-hq
scale=ewa_lanczossharp # mpv 내장 스케일러 : gpu 사용량 높음
cscale=ewa_lanczossoft
dscale=mitchell
cscale=ewa_lanczos
scaler-resizes-only
scale-antiring=0.7
cscale-antiring=0.7
dither-depth=auto
correct-downscaling=yes
sigmoid-upscaling=yes
deband=no #deband=yes # 아래 f3kdb vapursynth deband 로 대체함
tscale=sphinx
tscale-blur=0.6991556596428412
tscale-radius=1.05 #lower (e.g. 0.955) = sharper; higher (e.g. 1.005) = smoother
tscale-clamp=0.0
override-display-fps=60
video-sync=display-resample
af="lavfi=[loudnorm=I=-14:TP=-3:LRA=4]"
af-add='dynaudnorm=g=5:f=250:r=0.9:p=0.5'
vf="vapoursynth=~~/vapoursynth/NVDIA_Optical_Flow_b4c8.vpy:buffered-frames=4:concurrent-frames=8,vapoursynth=~~/vapoursynth/flash3kyuu.vpy"
glsl-shader="~~/shaders/krigbl.glsl" # Chroma Up/Down Scaling, KrigBilateral Downscaling Y pass 1
glsl-shader="~~/shaders/NVSharpen.glsl" # NVIDIA Image Scaling v1.0.2 - Sharpen
glsl-shader="~~/shaders/NVScaler.glsl" # NVIDIA Image Scaling v1.0.2 - Scaler
glsl-shader="~~/shaders/ssimds.glsl" # SSimDownscaler L2 pass 1
[야동-예고편]
profile-cond=require 'mp.utils'.join_path(working_directory, path):match('dmm.co.jp') ~= nil
profile="야동-HD"
vf-clr
glsl-shaders-clr
vf="vapoursynth=~~/vapoursynth/NVDIA_Optical_Flow_b4c8_480p.vpy:buffered-frames=4:concurrent-frames=8,vapoursynth=~~/vapoursynth/flash3kyuu.vpy"
#glsl-shaders="~~/shaders/krigbl.glsl:~~/shaders/ssimsr.glsl:~~/shaders/FSR.glsl:~~/shaders/adasharp.glsl"
#glsl-shaders="~~/shaders/F8.glsl:~~/shaders/krigbl.glsl:~~/shaders/ssimsr.glsl:~~/shaders/ssimds.glsl"
#glsl-shaders="~~/shaders/ravu_L_r4.hook:~~/shaders/krigbl.glsl:~~/shaders/ssimsr.glsl:~~/shaders/ssimds.glsl"
glsl-shaders="~~/shaders/F8.glsl:~~/shaders/krigbl.glsl:~~/shaders/FSR.glsl:~~/shaders/ssimsr.glsl:~~/shaders/ssimds.glsl:~~/shaders/NVSharpen.glsl"
- 로직 : GPU롤 하드웨어 디코딩 한 후, Vapoursynth NVOF로 60fps 보간 하고, Vapoursynth fd3kdb 16bit 디벤딩 필터를 적용 한다. 영상 관련 스케일링 알고리즘은 고품질로 다 때려 박았다. 이 후 각종 Shaders 들을 적용 하였다
| vf=Video filter : mpv 내장 필터(deband, sharpen, denoise, deinterlace 등등), 외부 lavfi(=ffmpeg 외장 필터), 외부 vapoursynth 필터등을 적용 할 수 잇다. 필터 중첩 적용,필터 무한 확장이 가능하다.
| af=Audio filter : 오디오 Normalize 증폭 하였다. MVSD-541 품번의 시작 부분의 "카나 줌마의 배추 씻는 소리가 잘 들리고, 홍콩 가는 소리가 잘 들리는 것 같다.
| profile-cond=width >=720 and width <= 1920 and fps <=59 and require 'mp.utils'.join_path(working_directory, path):match('/jav/') ~= nil and duration >= 600
* 옵션 설명
본인의 야동 모으는 폴더는 "/mnt/jav" 야동 파일은 "/mnt/jav/품번/품번.mp4", 본인의 야동 받는 토랭이 폴더는 "/run/media/user/External_HDD/jav/Studio/제작사" 이다.
2군데 폴더의 공통점은 경로명에 "jav" 가 들어간다는 것. 따라서 2군데의 영상 파일들을 재생한다면
"/mnt/jav/MVSD-542.mp4" "/run/media/nietz/External_HDD/Jav/Studio/M s Video Group/MVSD-541.mp4" 파일이며, 파일의 절대 경로에는 jav 가 들어 간다. 리눅스 OS인 경우 폴더 구분자 "/jav/", Winidow OS 인 경우 "\\jav\\"
따라서,
1. 절대경로 파일명에 "jav' 가 들어가며, 해상도는 가로 1280p 보다 크거나 같고, 가로 1920p 보다 작거나 같으며,, 프레임 레이트는 59fps 보다 작으면 "야동-HD" profile 이 실행 된다.
HD: 1280x720p | FHD: 1920x1080p | 29.970 fps, 30 fps 가 여기에 해당 된다.
--- 59.940 fps, 60fps 는 조건보다 크므로 해당 파일은 이 Profile로 실행 되지 않는다., 480p, 4K 파일도 위 조건을 벗어나므로 해당 영상은 이 Profile 이 적용 되지 않는다.
duration : 런타임 재생시간 600초=10분 보다 클 경우. 이미지들은 duration=0, gif, webp, mp3, flac, m4a 등은 10분 보다 작으므로 이 Profile 이 적용 되지 않느다.
영화/드라마/애니메이션 모으는 사람들은 "영화" 폴더, "드라마" 폴더, "애니메이션" 폴더에 아래에 관련 영상들을 모을 것이다.
위. "profile-cond" 조건을 위와 유사하게 설정하여. 해당 영상의 Auto-Profile 를 적용 할 수 잇다. 애니메이션이면, 애니메이션 전용 shader 들을 적용하고, 드라마면 60fps 보간하고, 고품질 세이더 적용하고, 영화 파일이면, 24fps 고정하고, 프레임 보간 하지 않고, 고품질 세이더만 적용 하는 식으로.
보인의 CPU, GPU 사양을 고려하여, 실시간 재생이 부드럽게 되는 세팅 값을,, 모든 종류의 영사들에 자동으로 적용 할 수 있다.
10개에서 15개 정도의 Auto-Profile 을 조건 지정 하여, 영상 옵션들을 세부적으로 다 다르게 지정하여... 모든 종류의 영상들을 최적의 값으로 자동으로 세팅하여, 재생이 가능하게 된다.
[야동-예고편]
profile-cond=require 'mp.utils'.join_path(working_directory, path):match('dmm.co.jp') ~= nil
profile="야동-HD"
야동 예고편 주소는 "https://시시삼공공일.다무무.co.제피/litevideo/freepv/h/h_2/h_237nacr549/h_237nacr549_dmb_w.mp4" 이렇다. 영상 경로에 다무라.xx.xx 가 들어간다.
따라서, profilee-cond는 match('dmm.co.jp')
profile="야동-HD" 라고 기재해서 "야동-HD" 영상 옵션들을 그대로 상속해서 똑같이 사용한다.
그러나 예고편 주소는 해상도가 "720x404p" SD 해상도이다. NVOP vapoursynth 스크립트에서 HD, FHD, 4K 해상도는 nvof_blk = 16 값을 사용하고, SD 해상도는 nvof_blk = 8 값을 사용한다.
또한 FHD 해상도 모니터에서 SD 소스를 재생하므로, Upscaling 이 많이 발생한다.
따라서, vf-clf, glsl-shaders-clr 옵션으로, 기 적용 된 비디오 필터들과 Shader들을 전부 초기화 한 후, SD 해상도에 많는 필터들과, shader 들을 적용 하여야 한다.
mpv는 인자를 절달하여. 외부 프로그램을 실행시키는 것이 가능하다
- input.conf
ctrl+i run "/bin/sh" "-c" "jt ${filename/no-ext} mpris"; run "/bin/sh" "-c" "dunsty_jav.sh ${filename/no-ext}"
| ${filename/no-ext} : 확장자를 제외, 실제 파일 이름을 의미한다.
| ex. 실제 파일 이름이 "hhd800@JUQ-266.mp4" 인 경우, ${filename}=hhd800@JUQ-266.mp4, ${filename/no-ext}=hhd800@JUQ-266
※ 유용한 링크
1. Anime4K : A High-Quality Real Time Upscaler for Anime Video https://github.com/bloc97/Anime4K
Optimized shaders for higher-end GPU:
(Eg. GTX 1080, RTX 2070, RTX 3060, RX 590, Vega 56, 5700XT, 6600XT)
If upscaling to resolutions smaller than 4K, lower end GPUs can be used.
CTRL+1 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A (HQ)"
CTRL+2 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B (HQ)"
CTRL+3 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C (HQ)"
CTRL+4 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode A+A (HQ)"
CTRL+5 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_VL.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_Soft_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode B+B (HQ)"
CTRL+6 no-osd change-list glsl-shaders set "~~/shaders/Anime4K_Clamp_Highlights.glsl:~~/shaders/Anime4K_Upscale_Denoise_CNN_x2_VL.glsl:~~/shaders/Anime4K_AutoDownscalePre_x2.glsl:~~/shaders/Anime4K_AutoDownscalePre_x4.glsl:~~/shaders/Anime4K_Restore_CNN_M.glsl:~~/shaders/Anime4K_Upscale_CNN_x2_M.glsl"; show-text "Anime4K: Mode C+A (HQ)"
CTRL+0 no-osd change-list glsl-shaders clr ""; show-text "GLSL shaders cleared"
2. MPV: User Script:https://github.com/mpv-player/mpv/wiki/User-Scripts
3. Mathematical evaluation of various scalers - My config uses the best scalers/settings from this analysis. https://artoriuz.github.io/blog/mpv_upscaling.html
4. mpv Configuration Guide for Watching Videos by Kokomins : https://kokomins.wordpress.com/2019/10/14/mpv-config-guide/
5. mpv.conf guide by iamscum : https://iamscum.wordpress.com/guides/videoplayback-guide/mpv-conf/
6. uosc : Feature-rich minimalist proximity-based UI for MPV player
https://github.com/tomasklaen/uosc
lua script 로 동작하는 mpv 커스텀/미니멀리즘 UI. 구드 파일 custom_mpv.7z 파일에 이미 적용 시켜 놓음
이거이 리눅스 미니멀 AV 설정 팁이였습니다. 넷북에서도 잘 돌아갑니다. 긴 글 읽어 주셔서 감사합니다.















이거이 진정한 닉값인가요? 야시시한 스샷 알흠다운 세상..
어느 순간 정신 차리고 보니…. 아차!
믿음, 사랑, 소망! 저는 믿음을 배신하지 않습니다.
' 아차 에서 점하나를 빼면 그거이 아치 ~~ 아치! 룰루라라 !! '
전설적인 영화가 출품되었습니다. 2023-12-26
「세계 제일 호화로운 기념작! ! 마돈나 20주년 기념 탕연무 ** ** 무제한 사상 첫 ALL 전속 버스 투어! ! 전편 4시간 OVER 2장조! ! 」
- JUQ-오일공 - by Madonna
리눅서당의 전설적인 분께서 추천해주시는 전설적인 작품 전설적으로 감사합니다
존경합니다.
첨엔 영화/드라마 편하게 볼라꼬 시작한 10라인 정도의 세팅파일이, 오랜 시간이 흐르니. 몇만 라인 이상의 세팅 파일들이 되어버렸네요. 설정하는 김에 겸사 겸사 야동 팁도 ㅎㅎㅎ