O
QMPlay2 é um reprodutor multimídia leve multiplataforma de código aberto baseado em QT. Está disponível para o Windows,
Linux e Mac OS criado por Błażej Szczygieł.
Possui um mecanismo de pesquisa no YouTube, o que nos permitirá assistir a vídeos da nossa área de trabalho sem usar o navegador de internet. Também tem recursos de estações de rádio online e download de vídeos da Internet.
Possuindo uma interface completamente customizável, você pode reproduzir todos os formatos de áudio e vídeo compatíveis com FFmpeg, libmodplug (incluindo J2B e SFX). Ele também suporta CDs de áudio, arquivos simples e Chiptunes.
Também inclui diferentes configurações de vídeo, efeitos nas imagens, nos dá a capacidade de girar vídeos, tirar screenshots e também é possível habilitar a visão esférica de vídeos 360º do YouTube.
Agora falando do código que vamos compilar, ele não possui um método de compilação convencional, com um arquivo configure. Ele possui um cmakefile, o que pode-se concluir que ele deve ser compilado com o cmake.
Então, antes de começar, deve-se fazer alguns preparativos para pode fazer a compilação da última versão do programa no computador.
PREPARANDO OS PRÉ-REQUISITOS PARA A COMPILAÇÃO
Antes de começar, vamos instalar os compiladores necessários para poder compilar o programa, não se precisa do build-essencials, mas será instalado mesmo assim:
sudo apt update && sudo apt install build-essencials cmake
É só aguardar a instalação dos pacotes.
Não podemos nos esquecer das dependências de compilação, pois são necessárias para que a compilação não dê erros. Para mim, foi necessário instalar apenas esses pacotes:
sudo apt install libavformat-dev libswscale-dev qtdeclarative5-dev libqt5svg5-dev libass-dev qttools5-dev
Pronto, agora já podemos prosseguir para a etapa de compilação.
BAIXANDO O SOURCE E COMPILANDO
Com o sistema preparado para a compilação do QMPlay2, vamos baixar o código fonte:
wget -c https://github.com/zaps166/QMPlay2/releases/download/20.07.04/QMPlay2-src-20.07.04.tar.xz ~
Isso irá baixar o código fonte que será salvo no diretório home do usuário. Depois, é necessário fazer a extração e os procedimentos necessários para a compilação:
tar -xvf QMPlay2-src-20.07.04.tar.xz
$ mkdir -P ~/Build/DEBIAN ~/QMPlay2-src-20.07.04/build
$ cd ~/QMPlay2-src-20.07.04/build
Aqui, extraímos o source e criamos o diretório Build no diretório home, opcional, mas será o local de instalação, pois queremos gerar o pacote. Também, criamos o diretório build dentro do diretório do source para a compilação e entramos nesse diretório. Agora, é só compilar:
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
$ make -j8 && make install -j8 ~/Build && cd -
Agora, vamos limpar as dependências de compilação, pois não são mais necessários:
sudo apt remove --autoremove libavformat-dev libswscale-dev qtdeclarative5-dev libqt5svg5-dev libass-dev qttools5-dev
Os compiladores você pode manter instalados para futuras compilações.
GERANDO O PACOTE E INSTALANDO
Agora, é a parte mais chatinha, que é gerar o arquivo control dentro do diretório Debian, para depois criar o pacote deb.
Entre no diretório Build/DEBIAN e crie o arquivo control com o seguinte conteúdo:
Package: qmplay2
Version: 20.07.04-1
Section: multimedia
Priority: optional
Architecture: amd64
Depends: libaom0, libass9, libavcodec58, libavformat58, libavutil56, libblkid1, libbluray2, libbsd0, libbz2-1.0, libc6, libcairo2, libcairo-gobject2, libchromaprint1, libcodec2-0.9, libcom-err2, libdatrie1, libdbus-1-3, libdouble-conversion3, libdrm2, libexpat1, libffi7, libfontconfig1, libfreetype6, libfribidi0, libgcc1, libgcc-s1, libgcrypt20, libgdk-pixbuf2.0-0, libgl1, libglib2.0-0, libglvnd0, libglx0, libgme0, libgmp10, libgnutls30, libgomp1, libgpg-error0, libgraphite2-3, libgsm1, libgssapi-krb5-2, libharfbuzz0b, libhogweed5, libicu66, libidn2-0, libk5crypto3, libkeyutils1, libkrb5-3, libkrb5support0, liblz4-1, liblzma5, libmount1, libmp3lame0, libmpg123-0, libnettle7, libnuma1, libogg0, libopenjp2-7, libopenmpt0, libopus0, libp11-kit0, libpango-1.0-0, libpangocairo-1.0-0, libpangoft2-1.0-0, libpcre2-16-0, libpcre2-8-0, libpcre3, libpixman-1-0, libpng16-16, libqt5core5a, libqt5dbus5, libqt5gui5, libqt5network5, libqt5qml5, libqt5widgets5, librsvg2-2, libselinux1, libshine3, libsnappy1v5, libsoxr0, libspeex1, libssh-gcrypt-4, libstdc++6, libswresample3, libswscale5, libsystemd0, libtasn1-6, libthai0, libtheora0, libtwolame0, libunistring2, libuuid1, libva2, libva-drm2, libva-x11-2, libvdpau1, libvorbis0a, libvorbisenc2, libvorbisfile3, libvpx6, libwavpack1, libwebp6, libwebpmux3, libx11-6, libx264-155, libx265-179, libxau6, libxcb1, libxcb-render0, libxcb-shm0, libxdmcp6, libxext6, libxfixes3, libxml2, libxrender1, libxvidcore4, libzvbi0, ocl-icd-libopencl1, zlib1g
Maintainer: Błażej Szczygieł <spaz16@wp.pl>
Installed-size: 4140
Description: QMPlay2 is a video and audio player which can play most formats and codecs.
No caso as dependências, eu consegui graças a um script que eu criei aqui:
Gerar a linha do Depends prontinha para o "control" para gerar pacotes DEB [Shell Script]
Veja a eficiência, é claro que não é perfeito, mas:
E com algumas adaptações ficou perfeito.
Se preferirem criar e editar o control pelo terminal:
touch ~/Build/DEBIAN/control
$ vim ~/Build/DEBIAN/control
Agora é a etapa final, gerar o pacote e instalar:
debcreate ~/Build ~/qmplay2_20.07.04-1_amd64.deb
$ sudo apt install ~/qmplay2_20.07.04-1_amd64.deb
Pronto, etapa finalizada.
CONCLUSÃO
Vamos fazer algumas finalizações, sempre vimos dicas de como compilar usando configure, make e make install, mas é bem difícil encontrar tutoriais que ensinam a compilar com o cmake. Outro ponto importante é sempre verificar o que está escrito nas documentações do source, pois geralmente é com ele que você vai ter êxito.
No git, você encontra um pacote DEB para baixar, mas não da última versão. Por isso optei por compilar e repassar o conhecimento para toda a comunidade.
Mais informações sobre o QMPlay2 aqui:
GitHub - zaps166/QMPlay2: QMPlay2 is a video and audio player which can play most formats and codecs
Fonte:
QMplay2: Um player leve e multiplataforma completo | SempreUPdate