MEncoder - Criando Programa Gráfico Para Conversão
Você gosta do MEncoder? Porém, acha um problema ter que memorizar os comandos? Não seria melhor ter um Script que,
com dois ou três cliques, faz o trabalho para você? Aqui vamos fazer um Script e transformá-lo em um programa, com
direito a ícone e tudo mais... Meu alvo principal é um Script que converta vídeos e que sejam compatíveis com o sistema
do PS3.
com dois ou três cliques, faz o trabalho para você? Aqui vamos fazer um Script e transformá-lo em um programa, com
direito a ícone e tudo mais... Meu alvo principal é um Script que converta vídeos e que sejam compatíveis com o sistema
do PS3.
Parte 5: Ajustes Finais
Bom, agora estamos chegando na parte mais incrementada do artigo. Fazer Script, muita gente que usa Linux faz, agora vamos torná-los 'programas',
dando uma cara mais profissional. Tudo bem que algumas pessoas não ligam muito para este detalhe.
Um dia desses, eu entrei em uma loja da Vodafone e vi um cara arrumando um Ubuntu, e bem na área de trabalho eu vi um Script que fazia a ligação da rede interna. Se ele tem um ícone na área de trabalho invés de um Script, dá um ar mais profissional, vocês não acham?
Começando com o Script no local certo, para quem não conhece o Linux, existem pastas específicas onde os programas rodam, embora o Linux dê a liberdade de mudar isto também, você pode colocar qualquer pasta como pasta de programas e o sistema vai aceitar.
Claro que se exagerarmos, vamos fazer do nosso sistema uma bagunça, por isso, eu prefiro colocar o meus Scripts em locais padrão.
Para conhecer os locais padrão do seu sistema, digite no terminal:
echo $PATH
Para mim, retornou isso:
Quer dizer, os dois pontos são separações entre uma pasta e outra, por exemplo: “/usr/bin:/bin”, quer dizer que tanto na pasta “/usr/bin” quanto na “/bin”, eu posso colocar o meu Script e ao digitar o nome do meu Script, ele vai rodar como se fosse um programa.
Para ver de uma forma mais organizada, vamos complicar nosso comando:
echo $PATH | awk 'BEGIN{FS=":"}{print $1}'
Entre todas pastas que eu tenho para os programas, eu prefiro usar a “/usr/local/bin” por um motivo, como esta pasta já é separada para o uso dos Scripts dos usuários locais, é muito difícil encontrar um programa usando esta pasta, provavelmente no seu sistema, esta pasta vai estar vazia.
Caso você queira mudar algo no Script, é mais fácil para encontrar o seus Scripts, invés de colocar em “/usr/bin” e se perder junto com uma pancada de programas e Scripts.
Eu dei o nome ao meu Script de: Ps3.sh, então, vou digitar no terminal:
sudo mv ~/Ps3.sh /usr/local/bin/
Vamos checar a permissão com o comando:
ls -lh /usr/local/bin/Ps3.sh
O retorno deve ser algo assim:
Caso você não queira ver aqueles 'X' no começo da linha, digite:
sudo chmod 755 /usr/local/bin/Ps3.sh
Agora, só para testar, digite:
Ps3.sh
. . .E veja se o Script executa automaticamente, caso execute, vamos criar o ícone para ele.
Você pode, tanto criar um ícone do zero com o Gimp (em formato PNG nos tamanhos 256x256, 128x128, 64x64, 32x32 e 16x16 e colocar em uma pasta) ou escolher um do sistema mesmo.
Vamos criar um com o Gimp, porque depois de feito isto, para colocar o ícone que eu vou escolher ou o do sistema, seria o mesmo passo escrever o nome no arquivo com extensão “.desktop”.
Eu criei este ícone com a mistura dos ícones do PS3 e do DviX como XviD e DivX ao contrário, eu fiz o mesmo com o símbolo. :)
Agora, vamos criar uma pasta para o nosso programa.
Assim como um programa tem uma pasta para a execução, eles também tem pastas para configuração, geralmente em “/usr/share/programa” ou “/opt/programa”.
Minha opção é “/opt/programa”, então eu digito:
sudo mkdir -p /opt/Ps3/icons
$ sudo mv /home/mauricio/Ps3-icon.png /opt/Ps3/icons/
Mude o meu nome, pelo seu nome de usuário “/home/usuario/”.
Não coloque “~/...” ou “$HOME”, porque você está executando este comando como Root. Se você colocar um dos dois, o comando vai procurar em “/root/...”
Agora, usando o seu editor de texto preferido, crie um arquivo de desktop. Digite:
kwrite PS3.desktop
E escreva dentro do arquivo:
* “Exec” é o nome do Script, “Icon” é a localização do arquivo PNG que você criou, “MimeType” é o tipo de arquivo que este programa vai lidar. As demais opções, eu creio que você já tira de letra (o que é certo?).
Pronto, agora salve o arquivo em sua área de trabalho e você vai ver o ícone do seu 'Programa'.
Agora, como Root, coloque uma cópia do seu arquivo “PS3.desktop” para a pasta “/usr/share/applications”, assim você vai fazer outros gerenciadores de janelas reconhecer sua aplicação:
sudo cp -f /home/mauricio/PS3.desktop /usr/share/applications/
Você pode deixar o arquivo “PS3.desktop” na área de trabalho, para que ao clicar no ícone, o programa já abra automaticamente.
Pronto. Agora, no próximo passo, vamos fazer o nosso pacote para a distribuição em massa da nossa aplicação.
Um dia desses, eu entrei em uma loja da Vodafone e vi um cara arrumando um Ubuntu, e bem na área de trabalho eu vi um Script que fazia a ligação da rede interna. Se ele tem um ícone na área de trabalho invés de um Script, dá um ar mais profissional, vocês não acham?
Começando com o Script no local certo, para quem não conhece o Linux, existem pastas específicas onde os programas rodam, embora o Linux dê a liberdade de mudar isto também, você pode colocar qualquer pasta como pasta de programas e o sistema vai aceitar.
Claro que se exagerarmos, vamos fazer do nosso sistema uma bagunça, por isso, eu prefiro colocar o meus Scripts em locais padrão.
Para conhecer os locais padrão do seu sistema, digite no terminal:
echo $PATH
Para mim, retornou isso:
/usr/bin:/bin:/usr/local/bin:/usr/X11R6/bin/:/usr/games:/usr/lib/kde4/libexec:sbin:/usr/sbin:/usr/lib/qt4/bin:/usr/bin:/usr/sbin:/usr/lib/kde4/libex ec:/bin:/sbin:/usr/X11R6/bin:/usr/games:/usr/local/bin:/usr/local/sbin:/home/mauricio/bin:/usr/bin:/usr/sbin:/usr/lib/kde4/libexec:/bin:/sbin:/usr/ X11R6/bin:/usr/games:/usr/local/bin:/usr/local/sbin
Quer dizer, os dois pontos são separações entre uma pasta e outra, por exemplo: “/usr/bin:/bin”, quer dizer que tanto na pasta “/usr/bin” quanto na “/bin”, eu posso colocar o meu Script e ao digitar o nome do meu Script, ele vai rodar como se fosse um programa.
Para ver de uma forma mais organizada, vamos complicar nosso comando:
echo $PATH | awk 'BEGIN{FS=":"}{print $1}'
Entre todas pastas que eu tenho para os programas, eu prefiro usar a “/usr/local/bin” por um motivo, como esta pasta já é separada para o uso dos Scripts dos usuários locais, é muito difícil encontrar um programa usando esta pasta, provavelmente no seu sistema, esta pasta vai estar vazia.
Caso você queira mudar algo no Script, é mais fácil para encontrar o seus Scripts, invés de colocar em “/usr/bin” e se perder junto com uma pancada de programas e Scripts.
Eu dei o nome ao meu Script de: Ps3.sh, então, vou digitar no terminal:
sudo mv ~/Ps3.sh /usr/local/bin/
Vamos checar a permissão com o comando:
ls -lh /usr/local/bin/Ps3.sh
O retorno deve ser algo assim:
-rwxr-xr-x 1 root root 5.4K Feb 13 13:23 /usr/local/bin/Ps3.sh
Caso você não queira ver aqueles 'X' no começo da linha, digite:
sudo chmod 755 /usr/local/bin/Ps3.sh
Agora, só para testar, digite:
Ps3.sh
. . .E veja se o Script executa automaticamente, caso execute, vamos criar o ícone para ele.
Você pode, tanto criar um ícone do zero com o Gimp (em formato PNG nos tamanhos 256x256, 128x128, 64x64, 32x32 e 16x16 e colocar em uma pasta) ou escolher um do sistema mesmo.
Vamos criar um com o Gimp, porque depois de feito isto, para colocar o ícone que eu vou escolher ou o do sistema, seria o mesmo passo escrever o nome no arquivo com extensão “.desktop”.
Eu criei este ícone com a mistura dos ícones do PS3 e do DviX como XviD e DivX ao contrário, eu fiz o mesmo com o símbolo. :)

Agora, vamos criar uma pasta para o nosso programa.
Assim como um programa tem uma pasta para a execução, eles também tem pastas para configuração, geralmente em “/usr/share/programa” ou “/opt/programa”.
Minha opção é “/opt/programa”, então eu digito:
sudo mkdir -p /opt/Ps3/icons
$ sudo mv /home/mauricio/Ps3-icon.png /opt/Ps3/icons/
Mude o meu nome, pelo seu nome de usuário “/home/usuario/”.
Não coloque “~/...” ou “$HOME”, porque você está executando este comando como Root. Se você colocar um dos dois, o comando vai procurar em “/root/...”
Agora, usando o seu editor de texto preferido, crie um arquivo de desktop. Digite:
kwrite PS3.desktop
E escreva dentro do arquivo:
[Desktop Entry]
Exec=Ps3.sh
Icon=/opt/Ps3/icons/Ps3-icon.png
MimeType=video/x-theora+ogg;video/x-sgi-movie;video/x-quicktime;video/x-ogm+ogg;video/x-msvideo;video/x-ms-wvx;video/x-ms-wmv;video/x- ms-wmp;video/x-ms-wm;video/x-ms-asf;video/x-mpeg2;video/x-mpeg;video/x-matroska;video/x-flv;video/x-flic;video/vnd.rn- realvideo;video/vnd.divx;video/vivo;video/quicktime;video/ogg;video/msvideo;video/mpeg;video/mp4;video/dv;video/divx;video/3gpp;
Name=PS3-Video
Terminal=false
Type=Application
Version=1.0
Exec=Ps3.sh
Icon=/opt/Ps3/icons/Ps3-icon.png
MimeType=video/x-theora+ogg;video/x-sgi-movie;video/x-quicktime;video/x-ogm+ogg;video/x-msvideo;video/x-ms-wvx;video/x-ms-wmv;video/x- ms-wmp;video/x-ms-wm;video/x-ms-asf;video/x-mpeg2;video/x-mpeg;video/x-matroska;video/x-flv;video/x-flic;video/vnd.rn- realvideo;video/vnd.divx;video/vivo;video/quicktime;video/ogg;video/msvideo;video/mpeg;video/mp4;video/dv;video/divx;video/3gpp;
Name=PS3-Video
Terminal=false
Type=Application
Version=1.0
* “Exec” é o nome do Script, “Icon” é a localização do arquivo PNG que você criou, “MimeType” é o tipo de arquivo que este programa vai lidar. As demais opções, eu creio que você já tira de letra (o que é certo?).
Pronto, agora salve o arquivo em sua área de trabalho e você vai ver o ícone do seu 'Programa'.
Agora, como Root, coloque uma cópia do seu arquivo “PS3.desktop” para a pasta “/usr/share/applications”, assim você vai fazer outros gerenciadores de janelas reconhecer sua aplicação:
sudo cp -f /home/mauricio/PS3.desktop /usr/share/applications/
Você pode deixar o arquivo “PS3.desktop” na área de trabalho, para que ao clicar no ícone, o programa já abra automaticamente.
Pronto. Agora, no próximo passo, vamos fazer o nosso pacote para a distribuição em massa da nossa aplicação.
Não vou tecer críticas pois o artigo é bem detalhado, mas gostaria de contribuir com algumas sugestões, que podem facilitar ou serem alternativas.
Já tive problemas com o mplayer e mencoder, assim como você, na questão de reconhecimento das dependências, especialmente com o Ubuntu.
O que pode fazer também é usar o ffmpeg no lugar do mencoder para as conversões, mas confesso não lembrar se tem todas as opções disponíveis do seu "Programa".
Outa opção é usar o flite ( http://www.speech.cs.cmu.edu/flite ) em substituição a tríade text2wave, lame e play, o que poderia ser feito nesse formato flite -t "Texto".
De resto está perfeito, Parabéns!!