Passei bastante tempo tentando fazer o PotPlayer funcionar direito no Arch Linux através do Wine.
As versões mais recentes até abrem e reproduzem vídeos, mas no meu sistema apresentaram vários problemas de interface. Em algumas builds eu precisava abrir o PotPlayer, abrir a pasta dos vídeos e arrastar o arquivo para dentro do player várias vezes até ele começar a reproduzir.
Também encontrei problemas como:
- botões de fechar, minimizar e redimensionar sem funcionar corretamente;
- dificuldade ou impossibilidade de arrastar a barra de reprodução;
- comportamento estranho do mouse;
- partes da interface difíceis ou impossíveis de controlar;
- atalhos de teclado funcionando enquanto partes da interface gráfica não respondiam corretamente.
Por isso resolvi parar de tentar consertar individualmente cada problema no Wine e comecei a testar versões antigas do PotPlayer.
Como fiz os testes
Usei sempre um prefixo Wine dedicado:
WINEPREFIX="$HOME/.local/share/wineprefixes/potplayer"
Entre uma versão e outra eu removia completamente o prefixo anterior:
WINEPREFIX="$HOME/.local/share/wineprefixes/potplayer" wineserver -k 2>/dev/null
rm -rf "$HOME/.local/share/wineprefixes/potplayer"
Assim eu evitava que configurações, registro ou arquivos de uma versão interferissem nos testes da próxima.
Comecei testando várias versões da série 1.6.
A série 1.6 funciona no Wine, mas achei o design mais antigo e ainda encontrei alguns bugs. Depois comecei a testar a série 1.7, inicialmente pulando várias builds de tempos em tempos para localizar aproximadamente onde a compatibilidade melhorava ou piorava.
Entre as versões mais novas que testei estão:
1.7.17902
1.7.17904
1.7.17995
1.7.18027
1.7.18096
1.7.18177
1.7.18193
1.7.18301
1.7.18320
1.7.18344
1.7.18346
1.7.18433
1.7.18488
1.7.18492
1.7.18495
1.7.18587
1.7.18624
1.7.18658
1.7.18679
1.7.18729
1.7.18754
1.7.18928
1.7.18953
1.7.18958
1.7.19955
Elas normalmente iniciavam, mas continuavam apresentando problemas de interface e interação no Wine.
Depois fui voltando bastante na série 1.7 e testei também:
1.7.5056
1.7.4961
1.7.4842
1.7.4744
1.7.4597
Foi aí que encontrei o melhor resultado.
PotPlayer 1.7.4597
Arquivo testado:
PotPlayerSetup-1.7.4597.exe
No meu Arch Linux + Wine, essa foi de longe a versão mais estável que encontrei.
Com a 1.7.4597:
- reprodução de vídeo funciona normalmente;
- consigo arrastar a barra de reprodução;
- mover e redimensionar a janela funciona;
- minimizar e fechar funcionam;
- mouse funciona normalmente na interface;
- atalhos de teclado funcionam;
- consigo abrir vídeos com dois cliques;
- até agora não encontrei nenhum bug visual ou de interface significativo.
Também testei diversas builds anteriores e posteriores a essa região. Elas funcionavam, mas apresentavam bem mais problemas.
Por isso, no meu ambiente, considero a PotPlayer 1.7.4597 o melhor ponto de compatibilidade que encontrei até agora.
Não estou dizendo que ela será perfeita em todas as distribuições, versões do Wine, drivers, GPUs ou desktops Linux. Mas, se alguém quiser testar PotPlayer no Linux através do Wine, eu começaria pela 1.7.4597.
Se alguém também usa PotPlayer através do Wine, seria interessante saber qual versão funciona melhor no sistema de vocês.
Integração com o Linux
Durante os testes eu também queria conseguir trocar completamente a versão instalada sem precisar configurar novamente o Linux toda vez.
Por isso criei dois arquivos permanentes:
~/.local/bin/potplayer-open
~/.local/share/applications/potplayer.desktop
Eles ficam fora do prefixo Wine.
O potplayer-open funciona como uma ponte entre Linux e Wine. Ele procura automaticamente:
PotPlayerMini.exe
PotPlayerMini64.exe
e abre o arquivo selecionado no PotPlayer.
Já o potplayer.desktop registra o PotPlayer como aplicativo do Linux e permite associá-lo a MP4, MKV, AVI, WebM e outros formatos.
Com isso meu fluxo ficou basicamente:
apagar prefixo Wine
↓
instalar outra versão
↓
dar dois cliques no vídeo
↓
PotPlayer abre normalmente
Criando o launcher
mkdir -p "$HOME/.local/bin"
Crie:
~/.local/bin/potplayer-open
com:
#!/usr/bin/env bash
PLAYER=""
for PREFIX in \
"$HOME/.local/share/wineprefixes/potplayer" \
"$HOME/.wine"
do
[[ -d "$PREFIX/drive_c" ]] || continue
PLAYER="$(find "$PREFIX/drive_c" -type f \
\( -iname 'PotPlayerMini.exe' -o -iname 'PotPlayerMini64.exe' \) \
-print -quit 2>/dev/null)"
[[ -n "$PLAYER" ]] && break
done
if [[ -z "$PLAYER" ]]; then
notify-send "PotPlayer" "PotPlayer não foi encontrado." 2>/dev/null
exit 1
fi
if [[ $# -eq 0 ]]; then
exec env WINEPREFIX="$PREFIX" wine "$PLAYER"
fi
FILE="$1"
if [[ "$FILE" == file://* ]]; then
FILE="${FILE#file://}"
FILE="$(python -c 'import sys,urllib.parse; print(urllib.parse.unquote(sys.argv[1]))' "$FILE")"
fi
WINFILE="$(WINEPREFIX="$PREFIX" winepath -w "$FILE")"
exec env WINEPREFIX="$PREFIX" wine "$PLAYER" "$WINFILE"
Depois:
chmod +x "$HOME/.local/bin/potplayer-open"
Criando potplayer.desktop
mkdir -p "$HOME/.local/share/applications"
Crie:
~/.local/share/applications/potplayer.desktop
com:
[Desktop Entry]
Type=Application
Name=PotPlayer
Comment=PotPlayer via Wine
Exec=/home/dallian/.local/bin/potplayer-open %f
Terminal=false
StartupNotify=true
Categories=AudioVideo;Player;
MimeType=video/mp4;video/x-matroska;video/webm;video/x-msvideo;video/mpeg;video/quicktime;video/x-flv;video/ogg;video/3gpp;video/3gpp2;application/ogg;
Depois:
update-desktop-database "$HOME/.local/share/applications"
E associei os formatos:
for mime in \
video/mp4 \
video/x-matroska \
video/webm \
video/x-msvideo \
video/mpeg \
video/quicktime \
video/x-flv \
video/ogg \
video/3gpp \
video/3gpp2 \
application/ogg
do
xdg-mime default potplayer.desktop "$mime"
done
Isso permite simplesmente dar dois cliques nos vídeos pelo Thunar.
Scripts que usei
Para não transformar este post em milhares de linhas de Bash, deixei os scripts maiores separados.
Limpador completo do prefixo PotPlayer
O script:
limpar-potplayer
remove o prefixo de teste, atalhos criados pelo Wine, menus e ícones, mas protege permanentemente:
~/.local/bin/potplayer-open
~/.local/share/applications/potplayer.desktop
Ele também possui:
limpar-potplayer --dry-run
para visualizar o que seria removido sem apagar nada.
Gist:
https://gist.github.com/BiraIDE/ccd5b8a1b97740c6d292057a5cf61f5b
Downloader automático de versões antigas
Também fiz um downloader para consultar o catálogo do VideoHelp e usar aria2c.
Gist:
https://gist.github.com/BiraIDE/bb5340d74b49cc71b46d04d8790e4633
Ele permite, por exemplo:
Baixar 5 versões posteriores a uma determinada versão:
baixar-potplayer --after 1.6.51480 --count 5
Isso significa as 5 versões posteriores à 1.6.51480, sem incluir a própria 1.6.51480.
Baixar uma faixa inteira:
baixar-potplayer --range 1.6.51480 1.7.4597
Escolher versões manualmente:
baixar-potplayer
ou baixar todas as versões disponíveis no catálogo suportado pelo script:
baixar-potplayer --all
Se um download for interrompido, o aria2 pode continuar através do arquivo .aria2 em vez de começar novamente do zero.
O histórico fica em:
~/.local/state/potplayer-downloader/history.log
Instalador automatizado para testar várias versões
Também montei um instalador que trabalha com uma fila persistente.
Gist:
https://gist.github.com/BiraIDE/452c28b809dab9672c5954e02533b06d
Ele instala apenas uma versão por execução para que seja possível testar antes de avançar.
Para ver o estado:
instalar-potplayer-teste --status
Para instalar a próxima versão:
instalar-potplayer-teste
Caso a máquina seja desligada durante o processo, o estado fica salvo em:
~/.local/state/potplayer-installer/
e o script não precisa começar novamente desde a primeira versão.
Se a instalação anterior aparentemente terminou antes do desligamento:
instalar-potplayer-teste --accept-current
Se ficou incompleta:
instalar-potplayer-teste --retry-current
O log permanente fica em:
~/.local/state/potplayer-installer/logs/history.log
e novas execuções acrescentam informações ao mesmo histórico, em vez de sobrescrevê-lo.
Para acompanhar:
instalar-potplayer-teste --log
ou:
tail -f "$HOME/.local/state/potplayer-installer/logs/history.log"
Nota sobre uso de IA
Transparência: os testes de compatibilidade, instalações, resultados e conclusões descritos neste post foram realizados por mim no meu próprio sistema Arch Linux.
Usei o ChatGPT como ferramenta auxiliar para organizar a documentação, revisar explicações e ajudar a desenvolver/refinar alguns dos scripts Bash apresentados aqui.
Os resultados sobre o comportamento das diferentes versões do PotPlayer não foram gerados pela IA: eles vieram dos meus testes práticos. Também revisei e executei os scripts no meu próprio ambiente durante o processo. Passei bastante tempo tentando fazer o PotPlayer funcionar direito no Arch Linux através do Wine. As versões mais recentes até abrem e reproduzem vídeos, mas no meu sistema apresentaram vários problemas de interface. Em algumas builds eu precisava abrir o PotPlayer, abrir a pasta dos vídeos e arrastar o arquivo para dentro do player várias vezes até ele começar a reproduzir. Também encontrei problemas como: botões de fechar, minimizar e redimensionar sem funcionar corretamente; dificuldade ou impossibilidade de arrastar a barra de reprodução;
comportamento estranho do mouse;
partes da interface difíceis ou impossíveis de controlar;
atalhos de teclado funcionando enquanto partes da interface gráfica não respondiam corretamente.
Por isso resolvi parar de tentar consertar individualmente cada problema no Wine e comecei a testar versões antigas do PotPlayer.
Como fiz os testes: Usei sempre um prefixo Wine dedicado:
WINEPREFIX="$HOME/.local/share/wineprefixes/potplayer"
Entre uma versão e outra eu removia completamente o prefixo anterior:
WINEPREFIX="$HOME/.local/share/wineprefixes/potplayer" wineserver -k 2>/dev/null
rm -rf "$HOME/.local/share/wineprefixes/potplayer"
Assim eu evitava que configurações, registro ou arquivos de uma versão interferissem nos testes da próxima.Comecei testando várias versões da série 1.6.
A série 1.6 funciona no Wine, mas achei o design mais antigo e ainda encontrei alguns bugs. Depois comecei a testar a série 1.7, inicialmente pulando várias builds de tempos em tempos para localizar aproximadamente onde a compatibilidade melhorava ou piorava.
Entre as versões mais novas que testei estão:
1.7.17902
1.7.17904
1.7.17995
1.7.18027
1.7.18096
1.7.18177
1.7.18193
1.7.18301
1.7.18320
1.7.18344
1.7.18346
1.7.18433
1.7.18488
1.7.18492
1.7.18495
1.7.18587
1.7.18624
1.7.18658
1.7.18679
1.7.18729
1.7.18754
1.7.18928
1.7.18953
1.7.18958
1.7.19955
Elas normalmente iniciavam, mas continuavam apresentando problemas de interface e interação no Wine.Depois fui voltando bastante na série 1.7 e testei também:
1.7.5056
1.7.4961
1.7.4842
1.7.4744
1.7.4597
Foi aí que encontrei o melhor resultado.
PotPlayer 1.7.4597 Arquivo testado: PotPlayerSetup-1.7.4597.exe
No meu Arch Linux + Wine, essa foi de longe a versão mais estável que encontrei, a 1.7.4597.
- Reprodução de vídeo funciona normalmente;
- consigo arrastar a barra de reprodução;
- mover e redimensionar a janela funciona;
- minimizar e fechar funcionam;
- mouse funciona normalmente na interface;
- atalhos de teclado funcionam;
- consigo abrir vídeos com dois cliques;
até agora não encontrei nenhum bug visual ou de interface significativo.
Também testei diversas builds anteriores e posteriores a essa região. Elas funcionavam, mas apresentavam bem mais problemas. Por isso, no meu ambiente, considero a PotPlayer 1.7.4597 o melhor ponto de compatibilidade que encontrei até agora. Não estou dizendo que ela será perfeita em todas as distribuições, versões do Wine, drivers, GPUs ou desktops Linux.
Mas, se alguém quiser testar PotPlayer no Linux através do Wine, eu começaria pela 1.7.4597. Se alguém também usa PotPlayer através do Wine, seria interessante saber qual versão funciona melhor no sistema de vocês.
Integração com o Linux
Durante os testes eu também queria conseguir trocar completamente a versão instalada sem precisar configurar novamente o Linux toda vez. Por isso criei dois arquivos permanentes:
~/.local/bin/potplayer-open
~/.local/share/applications/potplayer.desktop
Eles ficam fora do prefixo Wine. O potplayer-open funciona como uma ponte entre Linux e Wine. Ele procura automaticamente:PotPlayerMini.exe
PotPlayerMini64.exe e abre o arquivo selecionado no PotPlayer.Já o potplayer.desktop registra o PotPlayer como aplicativo do Linux e permite associá-lo a MP4, MKV, AVI, WebM e outros formatos. Com isso meu fluxo ficou basicamente:
apagar prefixo Wine
↓
instalar outra versão
↓
dar dois cliques no vídeo
↓
PotPlayer abre normalmente
Criando o launcher
mkdir -p "$HOME/.local/bin"
Crie:
~/.local/bin/potplayer-open
com:
#!/usr/bin/env bash
PLAYER=""
for PREFIX in \
"$HOME/.local/share/wineprefixes/potplayer" \
"$HOME/.wine"
do
[[ -d "$PREFIX/drive_c" ]] || continue
PLAYER="$(find "$PREFIX/drive_c" -type f \
\( -iname 'PotPlayerMini.exe' -o -iname 'PotPlayerMini64.exe' \) \
-print -quit 2>/dev/null)"
[[ -n "$PLAYER" ]] && break
done
if [[ -z "$PLAYER" ]]; then
notify-send "PotPlayer" "PotPlayer não foi encontrado." 2>/dev/null
exit 1
fi
if [[ $# -eq 0 ]]; then
exec env WINEPREFIX="$PREFIX" wine "$PLAYER"
fi
FILE="$1"
if [[ "$FILE" == file://* ]]; then
FILE="${FILE#file://}"
FILE="$(python -c 'import sys,urllib.parse; print(urllib.parse.unquote(sys.argv[1]))' "$FILE")"
fi
WINFILE="$(WINEPREFIX="$PREFIX" winepath -w "$FILE")"
exec env WINEPREFIX="$PREFIX" wine "$PLAYER" "$WINFILE"
Depois:
chmod +x "$HOME/.local/bin/potplayer-open"
Criando potplayer.desktop
mkdir -p "$HOME/.local/share/applications"
Crie:
~/.local/share/applications/potplayer.desktop
com:
[Desktop Entry]
Type=Application
Name=PotPlayer
Comment=PotPlayer via Wine
Exec=/home/dallian/.local/bin/potplayer-open %f
Terminal=false
StartupNotify=true
Categories=AudioVideo;Player;
MimeType=video/mp4;video/x-matroska;video/webm;video/x-msvideo;video/mpeg;video/quicktime;video/x-flv;video/ogg;video/3gpp;video/3gpp2;application/ogg;
Depois:
update-desktop-database "$HOME/.local/share/applications"
E associei os formatos:
for mime in \
video/mp4 \
video/x-matroska \
video/webm \
video/x-msvideo \
video/mpeg \
video/quicktime \
video/x-flv \
video/ogg \
video/3gpp \
video/3gpp2 \
application/ogg
do
xdg-mime default potplayer.desktop "$mime"
done
Isso permite simplesmente dar dois cliques nos vídeos pelo Thunar.
Scripts que usei
Para não transformar este post em milhares de linhas de Bash, deixei os scripts maiores separados.
Limpador completo do prefixo PotPlayer
O script:
limpar-potplayer
remove o prefixo de teste, atalhos criados pelo Wine, menus e ícones, mas protege permanentemente:
~/.local/bin/potplayer-open
~/.local/share/applications/potplayer.desktop
Ele também possui:
limpar-potplayer --dry-run
para visualizar o que seria removido sem apagar nada.
Gist:
https://gist.github.com/BiraIDE/ccd5b8a1b97740c6d292057a5cf61f5b
Downloader automático de versões antigas
Também fiz um downloader para consultar o catálogo do VideoHelp e usar aria2c.
Gist:
https://gist.github.com/BiraIDE/bb5340d74b49cc71b46d04d8790e4633
Ele permite, por exemplo:
Baixar 5 versões posteriores a uma determinada versão:
baixar-potplayer --after 1.6.51480 --count 5
Isso significa as 5 versões posteriores à 1.6.51480, sem incluir a própria 1.6.51480.
Baixar uma faixa inteira:
baixar-potplayer --range 1.6.51480 1.7.4597
Escolher versões manualmente:
baixar-potplayer
ou baixar todas as versões disponíveis no catálogo suportado pelo script:
baixar-potplayer --all
Se um download for interrompido, o aria2 pode continuar através do arquivo .aria2 em vez de começar novamente do zero.
O histórico fica em:
~/.local/state/potplayer-downloader/history.log
Instalador automatizado para testar várias versões
Também montei um instalador que trabalha com uma fila persistente.
Gist:
https://gist.github.com/BiraIDE/452c28b809dab9672c5954e02533b06d
Ele instala apenas uma versão por execução para que seja possível testar antes de avançar.
Para ver o estado:
instalar-potplayer-teste --status
Para instalar a próxima versão:
instalar-potplayer-teste
Caso a máquina seja desligada durante o processo, o estado fica salvo em:
~/.local/state/potplayer-installer/
e o script não precisa começar novamente desde a primeira versão.
Se a instalação anterior aparentemente terminou antes do desligamento:
instalar-potplayer-teste --accept-current
Se ficou incompleta:
instalar-potplayer-teste --retry-current
O log permanente fica em:
~/.local/state/potplayer-installer/logs/history.log
e novas execuções acrescentam informações ao mesmo histórico, em vez de sobrescrevê-lo.
Para acompanhar:
instalar-potplayer-teste --log
ou:
tail -f "$HOME/.local/state/potplayer-installer/logs/history.log"
Nota sobre uso de IA
Transparência: os testes de compatibilidade, instalações, resultados e conclusões descritos neste post foram realizados por mim no meu próprio sistema Arch Linux.
Usei o ChatGPT como ferramenta auxiliar para organizar a documentação, revisar explicações e ajudar a desenvolver/refinar alguns dos scripts Bash apresentados aqui.
Os resultados sobre o comportamento das diferentes versões do PotPlayer não foram gerados pela IA: eles vieram dos meus testes práticos. Também revisei e executei os scripts no meu próprio ambiente durante o processo.