Skip to content

Latest commit

 

History

History
393 lines (293 loc) · 16.9 KB

README_pt-BR.md

File metadata and controls

393 lines (293 loc) · 16.9 KB

Gerador de miniaturas

Crie miniaturas a partir de um vídeo de forma simples e prática


GitHub repo size licença GitHub last commit



📝 Descrição

O desenvolvimento desse gerador de miniaturas foi pensando em suprir uma necessidade sentida por mim (ou talvez quem sabe uma necessidade sua) que não só achava nada prático a geração de miniaturas de um vídeo como também o arquivo de miniaturas final não me agradava.
Fazendo pesquisas pela internet a fundo você encontra diversos script ou até mesmo aplicações como SMPLAYER, VLC que geram miniaturas, porém como dito anteriormente o arquivo final não é exatamente o que eu gostaria em ter, isso por que o arquivo contendo as miniaturas do video, geralmente vem com informações relacionada ao mesmo como resolução, tamanho ... ( veja o exemplo ). Em relação ao arquivo gerado pelo SMPLAYER em específico eu até cheguei a desenvolver um script que faz o processo de corte, removendo o que eu não quero da imagem deixando apenas os quadros do vídeo, porém além de não ser nada pratico já que para gerar a miniatura eu tenho que abrir o video no programa e selecionar a opção de geração de miniaturas (se tiver via linha de comando eu desconheço), ao tentar executar esse script de corte em outra máquina, o resultado obtido não era exatamente o mesmo, isso por que o SMPLAYER ao adicionar as informações na miniatura ele usar a fonte padrão do sistema, levando assim a uma certa diferença de tamanho do arquivo final em caso de o sistema utilizar (provavelmente) uma fonte diferente daquela que eu utilizei ao desenvolver o script de corte.
Então fazendo diversas pesquisa e também como eu já possuo um certo conhecimento em relação a ambas ferramentas/tecnologias (ImageMagick, FFmpeg e Kdialog) eu desenvolvi esse script de geração de miniaturas.



🚧 Dependências

Para que o script de geração de miniaturas funcione conforme o esperado, antes você precisa ter as seguintes dependências instaladas em sua máquina.

Onde é utilizado ?
Utilizado nas notificações pop up e em diálogos como:

Obtenção de senha de super usuário/administrador (utilizado no arquivo de instalação);

Escolha da grade na geração da miniatura;

Mostra mensagens (pop up) contendo informações sobre o processo de geração das miniaturas ...

Como instalar ?

Primeiro verifique se você possui o kdialog instalado em sua máquina (se preferir o arquivo `install.sh` faz essa verificação para você).
kdialog --version

💡 Se retornar algo diferente kdialog <numero_da_versao> é sinal que você não tem tal dependência instalada em sua máquina se for o caso siga para o próximo passo.

Não irei me aprofundar muito nessa questão pois existe "outras formas de se instalar tal" aplicação, mais de forma bem sucinta execute no terminal um dos comandos:

Distros Debian
sudo apt update
sudo apt install kdialog -y

ou simplificando

sudo apt update && sudo apt install kdialog -y
Distro Arch Linux
sudo pacman -Sy kdialog

💡 Para mais, clique no nome kdialog (em azul) lá no início do tópico; onde você será redirecionado para a página oficial da aplicação.


Onde é utilizado ?

Utilizado na geração das miniaturas (arquivos separados) em um intervalo de tempo...

Como instalar ?

Primeiro verifique se você possui o ffmpeg instalado em sua maquina (se preferir o arquivo `install.sh` faz essa verificação para você).
ffmpeg -version

💡 Se retornar algo diferente ffmpeg version <numero_da_versao> Copyright ... é sinal que você não tem tal dependência instalada em sua maquina se for o caso siga para o proximo passo.

Conforme descrito no processo de instalação do kdialog, faço a mesma citação aqui [...] Execute no terminal um dos comandos:

Distros Debian
sudo apt update
sudo apt install ffmpeg -y

ou simplificando

sudo apt update && sudo apt install ffmpeg -y
Distro Arch Linux
sudo pacman -Sy ffmpeg

💡 Para mais, clique no nome FFmpeg (em azul) lá no inicio do tópico; onde você será redirecionado para a pagina oficial da aplicação.


Onde é utilizado ?

O ImageMagick é uma ferramenta de manipulação de imagem via linha de comando poderosíssima. Aqui ele/ela é utilizado na conversão das miniaturas separadas em um arquivo final (união dos arquivos) e otimização do mesmo.

Como instalar ?

Primeiro verifique se você possui o imagemagick instalado em sua máquina (se preferir o arquivo `install.sh` faz essa verificação para você).
convert --version

💡 Se retornar algo diferente Version: ImageMagick <numero_da_versao> Copyright ... é sinal que você não tem tal dependência instalada em sua máquina se for o caso siga para o próximo passo.

Conforme descrito nos dois processos de instalação anteriormente, faço a mesma citação aqui [...] Execute no terminal um dos comandos:

Distros Debian
sudo apt update
sudo apt install imagemagick -y

ou simplificando

sudo apt update && sudo apt install imagemagick -y
Distro Arch Linux
sudo pacman -Sy imagemagick

💡 Para mais, clique no nome ImageMagick (em azul) lá no início do tópico; onde você será redirecionado para a página oficial da aplicação.



👍 Recomendações

Recomendo utilizar o excelente gerenciador de arquivos dolphin, pois através dele você poderá utilizar o script via menu de contexto veja mais em como utilizar.

🛸 Funcionalidades

  • Geração de miniaturas via linha de comando. Veja como usar.
  • Geração de miniaturas via menu de contexto no gerenciador de arquivos dolphin. Veja como usar.
  • Opção de escolha entre qual grade o arquivo final contendo as miniaturas terá.

📽 Formatos de vídeo identificados

Por padrão os seguintes formatos são identificados ao tentar gerar uma miniatura, via linha de comando (terminal) ou pelo gerenciador de arquivo dolphin.

Extensões Extensões
.avi - .mp4
.m4v - .mov
.mpg - .mpeg
.wmv - .mkv
.ts -

💡 No gerenciador de arquivo dolphin por exemplo o "atalho" no menu de contexto só aparecerá se você selecionar um vídeo que tenha uma dessa extensões especificadas acima. Leia mais em como usar



🚀 Instalação

A instalação é algo bem simples, basta executar o script de instalação ( install.sh ) que ele fará o resto para você, mas antes se atente na configuração inicial 👇.

Configuração inicial

Antes de executar o arquivo de instalação install.sh, você precisa da permissão para execução do mesmo. Existe duas formas de se fazer esse processo.
  1. Via gerenciador de arquivo (interface gráfica): Clique com o botão direito do mouse no arquivo install.sh selecione propriedades > permissões marque a caixa de é executável.

    is-executable

  2. Via linha de comando (terminal):

    chmod +x ./install.sh

Como usar ?

Exite duas formas de se executar o script:
  1. Via gerenciador de arquivo (interface gráfica): Dê duplo clique no arquivo install.sh.

    run-script

  2. Via linha de comando (terminal)

    ./install.sh

Após executar o arquivo install.sh um diálogo pedindo a senha de super usuário / administrador aparecerá, passe a senha para prosseguir com o processo de instalação.

user-password

O script irá verificar se todas as dependências estão instaladas e caso o retorno seja positivo ele continuará com o processo de instalação, se tudo ocorrer conforme o esperado um popup irá aparecer informando que a instalação foi bem sucedida.

successfully-installed

O que esse script faz ?

Esse script serve para automatizar o processo de "instalação" dos arquivos que o gerador de miniaturas utiliza/depende.

Quais tipos de arquivos ele irá instalar ?

Na verdade ele irá copiar os seguintes arquivos todos encontrados no repositório.
.
├── emojis
│   ├── emoji_u1f389.svg
│   ├── emoji_u1f39e.svg
│   ├── emoji_u1f3ac.svg
│   ├── emoji_u1f5bc.svg
│   ├── emoji_u1f9d9_1f3fc_200d_2642.svg
│   └── emoji_u1f9e9.svg
├── fonts
│   └── Roboto-Regular.ttf
├── icons
│   ├── an-alert.svg
│   ├── an-edition.svg
│   ├── an-effects.svg
│   ├── an-error.svg
│   ├── an-scripts.svg
│   └── an-utilities.svg
├── generate_thumbnails
└── generate-thumbnails.desktop

Para onde esses arquivos serão copiados ?

Os arquivo descritos anteriormente serão copiados para os respectivos diretórios:

usr > share > pixmaps

.
├── emojis
│   ├── emoji_u1f389.svg
│   ├── emoji_u1f39e.svg
│   ├── emoji_u1f3ac.svg
│   ├── emoji_u1f5bc.svg
│   ├── emoji_u1f9d9_1f3fc_200d_2642.svg
│   └── emoji_u1f9e9.svg
└──  icons
   ├── an-alert.svg
   ├── an-edition.svg
   ├── an-effects.svg
   ├── an-error.svg
   ├── an-scripts.svg
   └── an-utilities.svg

usr > local > share > fonts > r

.
└── fonts
     └── Roboto-Regular.ttf

usr > bin

.
└──  generate_thumbnails

home > usuario > .local > share > kservices5 > ServiceMenus

.
└──  generate-thumbnails.desktop



🤔 Como usar ?

Existe duas formas de gerar miniaturas relacionadas a um vídeo em especifico, ou via menu de contexto através do dolphin ou via linha de comando (terminal).

Através do gerenciador de arquivo dolphin

  1. Clique com o botão direito do mouse no vídeo que você deseja gerar a miniatura, no menu de contexto que abrir irá aparecer uma opção chamada Generate thumbnails clique nela.

    dolphin-context-menu

  2. Irá aparecer um diálogo perguntando se você deseja ou não continuar com clique em sim (yes no meu caso).

    kdialog-yesno

  3. Logo após aparecerá um outro diálogo perguntando qual grade que o arquivo final terá, selecione uma opção. (para mais veja resultado final )

    tile
  4. Caso tudo ocorra conforme o esperado um popup ira aparecer informando que a miniatura foi gerada com sucesso e também o caminho onde ela foi salva ao clicar no link a imagem será aberta no visualizador de imagem padrão.

    kdialog-popup


Via linha de comando

Caso queira gerar as miniaturas via linha de comando basta executar o comando
$ generate_thumbnails "caminho/nome_do_arquivo_de_video"

command-line-generate-thumbnails



🥳 Resultado final

Os arquivos gerados durante o processo de criação das miniaturas, são salvos no diretório:
tmp > thumbnails-nome_do_arquivo-numero_aleatório (removido ao reiniciar o sistema)
Já o arquivo final será salvo no mesmo diretório no qual se encontra o vídeo escolhido para gerar as miniaturas.

Opções de miniaturas

Grade Arquivo final
4x4
5x5
6x6



📜 Licença

Esse projeto esta sob a licença MIT




criado por @antonionarcilio