Instalando SVP4 e MPV (VapourSynth) no Gentoo
Dica publicada em Linux / Multimídia
Instalando SVP4 e MPV (VapourSynth) no Gentoo
Esta dica aborda o funcionamento e a instalação do SVP (SmoothVideo Project) em conjunto com o reprodutor MPV e o framework VapourSynth no Gentoo Linux.O que é o SVP e qual o seu diferencial
OSVP é um software de interpolação de quadros de vídeo. O padrão da indústria do cinema e da televisão estabelece a gravação em 24 ou 30 quadros por segundo (fps). O SVP atua analisando vetores de movimento entre dois quadros consecutivos de um vídeo e calcula, via algoritmos matemáticos, quadros intermediários.O resultado é a conversão de um vídeo de 24 fps para 60 fps, 120 fps ou mais, em tempo real, gerando fluidez de movimento. O diferencial do SVP é a execução deste processo dinamicamente durante a reprodução, utilizando ciclos de processamento do processador e da placa de vídeo, sem a necessidade de recodificar ou alterar o arquivo original do vídeo.
Porque o SVP precisa do MPV e do VapourSynth
O SVP não é um reprodutor de mídia; ele é um motor de cálculo de quadros executado em segundo plano. Para exibir o vídeo, ele necessita de um reprodutor.O MPV atua como o reprodutor de mídia que lê o arquivo de vídeo e lida com a saída de áudio e vídeo. O VapourSynth atua como a ponte de comunicação. Ele é um framework de processamento em script. O fluxo de funcionamento ocorre da seguinte forma:
- 1. O MPV lê o vídeo e passa os quadros para o VapourSynth.
- 2. O VapourSynth envia os dados para o motor do SVP.
- 3. O SVP calcula os quadros adicionais e os devolve via VapourSynth.
- 4. O MPV recebe a sequência completa (agora a 60 fps ou mais) e a exibe no monitor.
Sem o VapourSynth compilado no MPV, esta cadeia de comunicação é interrompida.
Passo a Passo da Instalação no Gentoo
O repositório oficial do Gentoo não fornece suporte nativo ao VapourSynth no pacote do MPV. O procedimento requer a adição de um repositório de terceiros (overlay).1. Habilitar o repositório VapourSynth
Sincronize o gerenciador de repositórios e adicione o overlay necessário.sudo emerge app-eselect/eselect-repository
sudo eselect repository enable vapoursynth
sudo emaint sync -r vapoursynth
2. Desmascarar o pacote do Overlay
Sistemas Gentoo podem bloquear pacotes de overlays. Crie as exceções inserindo o pacote na lista de desmascaramento e de aceitação de palavras-chave.sudo mkdir -p /etc/portage/package.unmask
sudo mkdir -p /etc/portage/package.accept_keywords
cat <<EOF | sudo tee /etc/portage/package.unmask/mpv media-video/mpv::vapoursynth EOF
cat <<EOF | sudo tee /etc/portage/package.accept_keywords/mpv media-video/mpv::vapoursynth ~amd64 EOF
cat <<EOF | sudo tee /etc/portage/package.unmask/mpv media-video/mpv::vapoursynth EOF
cat <<EOF | sudo tee /etc/portage/package.accept_keywords/mpv media-video/mpv::vapoursynth ~amd64 EOF
3. Configurar USE Flags
Ative o suporte aos componentes necessários, incluindo decodificação por hardware e o protocolo gráfico.sudo mkdir -p /etc/portage/package.use
cat <<EOF | sudo tee /etc/portage/package.use/multimedia media-video/mpv vapoursynth vaapi vulkan wayland egl cli EOF
cat <<EOF | sudo tee /etc/portage/package.use/multimedia media-video/mpv vapoursynth vaapi vulkan wayland egl cli EOF
4. Instalar o MPV e utilitários
Proceda com a compilação do código-fonte do MPV a partir do overlay, juntamente com o utilitário para extração de links de vídeo.sudo emerge --ask --oneshot --verbose --usepkg=n media-video/mpv::vapoursynth net-misc/yt-dlp
5. Configurar o MPV (Otimizado para arquitetura Zen 2 e RDNA)
Com ajuda de uma IA, crie o arquivo de configuração do usuário com instruções de aceleração, upscaling e o socket de comunicação interprocessos (IPC) exigido pelo SVP. A seguir um exemplo:mkdir -p ~/.config/mpv
cat <<EOF > ~/.config/mpv/mpv.conf ############################################ # MPV CONFIG OTIMIZADO (Ryzen 3700X + RX5700XT) ############################################
############### # SVP IPC ############### input-ipc-server=/tmp/mpvsocket no-resume-playback hr-seek-framedrop=no
############### # HARDWARE DECODING ############### hwdec=auto hwdec-codecs=all
############### # RENDERER ############### vo=gpu-next gpu-api=vulkan profile=gpu-hq
############### # PERFORMANCE ############### vd-lavc-threads=8 video-sync=display-resample
############### # UPSCALING ############### scale=ewa_lanczossharp cscale=spline36 dscale=mitchell
sigmoid-upscaling=yes correct-downscaling=yes
############### # DEBANDING ############### deband=yes deband-iterations=2 deband-threshold=35 deband-range=16 deband-grain=6
############### # SHADER (APENAS PARA <=1080p) ############### [fsrcnnx] profile-cond=width<=1920 glsl-shader="~~/shaders/FSRCNNX_x2_16-0-4-1.glsl" EOF
cat <<EOF > ~/.config/mpv/mpv.conf ############################################ # MPV CONFIG OTIMIZADO (Ryzen 3700X + RX5700XT) ############################################
############### # SVP IPC ############### input-ipc-server=/tmp/mpvsocket no-resume-playback hr-seek-framedrop=no
############### # HARDWARE DECODING ############### hwdec=auto hwdec-codecs=all
############### # RENDERER ############### vo=gpu-next gpu-api=vulkan profile=gpu-hq
############### # PERFORMANCE ############### vd-lavc-threads=8 video-sync=display-resample
############### # UPSCALING ############### scale=ewa_lanczossharp cscale=spline36 dscale=mitchell
sigmoid-upscaling=yes correct-downscaling=yes
############### # DEBANDING ############### deband=yes deband-iterations=2 deband-threshold=35 deband-range=16 deband-grain=6
############### # SHADER (APENAS PARA <=1080p) ############### [fsrcnnx] profile-cond=width<=1920 glsl-shader="~~/shaders/FSRCNNX_x2_16-0-4-1.glsl" EOF
6. Instalar o SVP
Faça o download do arquivo de instalação do SVP4 Linux (.run) no site oficial do desenvolvedor (https://www.svp-team.com/get/). Aplique a permissão de execução e inicie o assistente.chmod +x svp4-linux-64.run
./svp4-linux-64.run
Execute o binário do SVP4 pelo menu do sistema e, em seguida, abra um arquivo de vídeo pelo MPV ou utilize o comando
mpv para vídeos da internet. O SVP identificará o socket /tmp/mpvsocket e iniciará a interpolação.