Como calibrar e ajustar o monitor com o xcalib no Linux

O xcalib é uma pequena ferramenta para calibrar e configurar o contraste, o brilho e o gamma do seu display LCD, feito para Linux e Windows.
Se você não está satisfeito com os controles (de hardware), pode usar o xcalib para configurar rapidamente a forma como o xorg regula os ajustes do seu display.
As opções, aqui relatadas, foram testadas em um notebook com uma placa Intel i915, rodando o Ubuntu 14.04 LTS — não há qualquer garantia de que vá funcionar no seu equipamento. Faça uso do conhecimento deste tutorial de forma responsável, por sua própria conta e risco e nunca faça testes em máquinas de produção.
ícone do xcalib for Linux

O xcalib pode conflitar com outras ferramentas de ajuste do vídeo, caso você esteja usando alguma. No meu caso, desliguei temporariamente o aplicativo de ajuste da temperatura do monitor Redshift.

Como instalar o xcalib

No Ubuntu (ou no Debian) é possível instalar o aplicativo com o apt-get:

sudo apt-get install xcalib

xcalib-apt-get-install
O aplicativo está disponível nos repositórios de outras distro também e você pode baixar o código fonte e binários (inclusive para Windows), no site oficial.

Comandos básicos do xcalib

Como já foi dito, o aplicativo é simples, mas tem alguns “poderes” interessantes, que serão vistos adiante.
Você pode ver a versão atual do aplicativo com a opção -version:

xcalib -version
xcalib 0.8

Para resetar a configuração atual do vídeo e limpar os ajustes, use o seguinte comando:

xcalib -c

O comando, acima, pode ser muito útil se você bagunçar muito o sistema, enquanto aprende a usar melhor o aplicativo.
Já aconteceu de ficar com a tela toda branca, mas conseguir reiniciar o perfil de cores, digitando este comando dentro de um terminal “às cegas”.

Como aplicar esquemas de cores ICC ao seu monitor

O manual do aplicativo “encoraja” a usar esquemas de cores ICC. Se você (assim como eu) usa Ubuntu, pode fazer download com o apt-get de vários perfis (profiles) ICC:

sudo apt-get install icc-profiles

Você pode encontrar os perfis icc, já instalados no seu sistema com o comando find:

find / -iname *.icc

Na minha instalação, os perfis icc ficam nos diretórios /usr/share/color/icc/ e /usr/share/color/icc/colord/.
Veja um exemplo de como invocar um perfil ICC:

xcalib -d :0 -s 0 -v /usr/share/color/icc/colord/Bluish.icc
vcgt found
channels:        	3
entry size:      	16bits
entries/channel: 	256
tag size:        	1554
Red Brightness: 0.000000   Contrast: 69.726097  Max: 0.697261  Min: 0.000000
Green Brightness: 0.000000   Contrast: 79.687187  Max: 0.796872  Min: 0.000000
Blue Brightness: 0.000000   Contrast: 99.609367  Max: 0.996094  Min: 0.000000
X-LUT size:      	256

A opção -d :0, acima, se refere ao display ao qual será aplicado o perfil Bluish.icc e a opção -s 0 se refere à tela a que ele se aplica. A opção -v serve para exibir mais informações sobre a execução do comando.
Não fique desapontado se apenas alguns profiles ICC funcionarem no seu modelo de monitor. É assim, mesmo: nem todos funcionam.
Se você usa apenas um monitor, pode simplificar o comando:

xcalib -v /usr/share/color/icc/colord/Gamma5000K.icc 
vcgt found
channels:        	3
entry size:      	16bits
entries/channel: 	256
tag size:        	1554
Red Brightness: 0.000000   Contrast: 99.609367  Max: 0.996094  Min: 0.000000
Green Brightness: 0.000000   Contrast: 82.217133  Max: 0.822171  Min: 0.000000
Blue Brightness: 0.000000   Contrast: 62.551308  Max: 0.625513  Min: 0.000000
X-LUT size:      	256

Um perfil ICC é um conjunto de dados que define um dispositivo de entrada ou saída, ou uma área de cores, de acordo com os padrões fornecidos pelo International Color Consortium (ICC).
Os perfis descrevem os atributos de cores de um dispositivo em particular ou como elas serão mostradas por ele, através de um mapeamento.
Todo dispositivo que capture ou exiba cores pode ter um perfil.
Alguns fabricantes oferecem perfis para seus produtos e há vários outros que permitem a um usuário final gerar seus próprios perfis de cores — tipicamente, através de colorímetros e espectrômetros.
O ICC define, com precisão, o formato. Mas não define os algoritmos ou detalhes do processamento — o que dá espaço para variações entre diferentes aplicativos e sistemas que fazem uso dos perfis ICC.

Como ajustar o contraste e o brilho do monitor com xcalib

As opções que se referem ao contraste e ao brilho são -co e -b. Opcionalmente, é possível usar as formas extensas -contrast e -brightness, como no exemplo abaixo:

xcalib -v -contrast 70.0 -brightness 30.0 -alter

Os valores usados, acima, são percentuais: 70% de contraste e 30% de brilho, portanto.
A opção -alter se provou necessária. O xcalib vai pedir o arquivo ICC, se você não a usar.
Tenha cuidado com os valores usados, para não acabar com uma tela preta ou totalmente branca, o que dificulta corrigir a situação sem ter que reiniciar a máquina. Faça as alterações aos poucos.

Em sistemas de imagem digital, a gestão de cores consiste na conversão entre as várias formas de representar cores entre diversos tipos de dispositivos, tais como scanners, câmeras digitais, impressoras, monitores, etc.
O principal objetivo da gestão de cores é obter a melhor correspondência possível entre os dispositivos.
Por exemplo: as cores impressas no papel devem ser o mais próximo possível do que se vê na tela do computador.

Como ajustar o gamma do monitor com o xcalib

Os ajustes do gamma ajudam a compensar as imagens para a visão humana.
Os valores do gamma, nos ajustes do xcalib podem ir de 0.1 a 10.
Novamente, dê um passo de cada vez, ajustando aos poucos, até chegar ao ponto mais confortável para seus olhos.
Veja um exemplo do uso do xcalib para ajustar o gamma do monitor:

xcalib -v -co 100.0 -b 0.0 -gammacor 0.6 -alter

Note que que usei as abreviações das opções de contraste e de brilho.



No monitor do meu notebook de trabalho, com o brilho na metade, acho confortável a seguinte configuração:

xcalib -brightness 0.0 -contrast 60.0 -gammacor 1.3 -alter

Sinta-se à vontade para dar suas dicas de configuração, nos comentários.
Se você prefere configurações diferentes, ao longo do dia, pode achar interessante usar o redshift ou o f.lux para ajustar automaticamente o seu monitor, de acordo com a luz ambiente.
Infelizmente, o redshift não permite ajustar o contraste da tela.

Como inverter as cores do display

O xcalib tem uma opção de inversão rápida das cores, que pode ser útil para quem tem uma grande quantidade de texto para escrever ou ler durante à noite — algumas pessoas preferem, neste caso, o fundo escuro com letras brancas. Esta função também pode ajudar a preservar um pouco a carga da sua bateria.
Veja um exemplo de sua aplicação:

xcalib -v -invert -alter

Como ajustar individualmente as cores no vídeo

O xcalib permite ajustar especificamente o gamma, o contraste e o brilho de cada uma das cores que compõe o espectro que forma as imagens no seu display.
Para ajustar individualmente o vermelho, para obter uma sensação visual mais “quente”, use a opção -red. Veja 3 exemplos de ajuste do vermelho (red), verde (green) e azul (blue):

xcalib -red 1.8 40 90 -alter
xcalib -green 1.5 20 70 -alter
xcalib -blue 1.3 20 70 -alter

Os valores informados, logo após o nome da cor, são gamma, percentual de brilho e percentual de contraste.

Algumas sugestões de uso

Para quem deseja aplicar a configuração para um determinado monitor e mantê-la indefinidamente, recomendo incluir o comando na inicialização do ambiente gráfico.
Outra sugestão de uso é atribuir teclas de atalho a várias configurações diferentes do xcalib. Assim, você pode usar uma configuração para ver filmes, outra pra jogos, para ler textos etc.
Leia outros artigos sobre como definir teclas de atalho nos diferentes ambientes gráficos do Linux.

Referências

Como quebrar senhas de arquivos rar, 7z e zip

Quebrar senhas de arquivos compactados é sempre possível e, relativamente, fácil. O que varia é o tempo que você vai levar para concluir esta tarefa.
Vou mostrar como revelar a senha de um arquivo compactado em rar,
7z ou zip.
Zipper over blue tissue
O programa rarcrack foi desenvolvido sob a licença GPL, por David Zoltan e é mantido, atualmente, pelo programador dinamarquês Ole Wolf.
Ele é capaz de quebrar senhas não muito complicadas em questão de minutos ou segundos.
Se você tiver uma máquina lenta e uma senha mais complexa pela frente, contudo, esta tarefa pode acabar lhe tomando algumas horas.
O rarcrack usa um algoritmo de força bruta para descobrir a senha do arquivo.

O que é força bruta?

Em criptografia um ataque de força de bruta – ou de busca exaustiva – é um ataque critoanalítico rudimentar, recomendado quando outros métodos não forem possíveis.
O ataque consiste em testar sistematicamente todas as combinações de caracteres possíveis, até encontrar a que corresponde à senha.
Justamente por isto, pode ser um método muito demorado para quebrar a segurança de um arquivo.

Como baixar e instalar o rarcrack

O rarcrack pode ser baixado no site oficial do aplicativo ou instalado direto dos repositórios (se você estiver usando o Debian ou o Ubuntu).
Vamos abordar alguns métodos de instalação — e você pode usar o que achar que serve melhor pra você.

Como instalar o rarcrack no Ubuntu ou Debian

Abra um terminal (Ctrl + Alt +T) e digite os seguintes comandos:

sudo apt-get install rarcrack

Se você estiver usando o Ubuntu 12.04 LTS, deve instalar algumas PPAs primeiro. acrescente as linhas abaixo, ao arquivo /etc/apt/sources.list:

deb http://ppa.launchpad.net/ole.wolf/rarcrack/ubuntu precise main 
deb-src http://ppa.launchpad.net/ole.wolf/rarcrack/ubuntu precise main

Em seguida, execute os seguintes comandos de instalação:

sudo apt-get update
sudo apt-get install rarcrack

Como baixar e compilar o código fonte

Comece por baixar o código fonte no link abaixo:
Site de download do rarcrack.
Ao seguir os passos, abaixo, substitua VERSION pelo número da versão do arquivo baixado:

tar -xjf rarcrack-VERSION.tar.bz2
cd rarcrack-VERSION
$ make
$ make install

Você vai precisar ter privilégios administrativos (root) para executar o último passo, acima.

Como recuperar a senha de um arquivo compactado

O rarcrack é um aplicativo de linha de comando, de execução muito simples.
Normalmente, basta digitar:

rarcrack nome-do-arquivo.zip

Se o rarcrack não reconhecer o tipo seu tipo de arquivo, basta informar:

rarcrack --type zip exemplo.zip

A saída do aplicativo, enquanto ele trabalha, é mais ou menos assim:

RarCrack! 0.2 by David Zoltan Kedves (kedazo@gmail.com)
INFO: the specified archive type: zip
INFO: cracking exemplo.zip, status file: exemplo.zip.xml
Probing: 'la' [457 pwds/sec]
Probing: 'GN' [447 pwds/sec]
Probing: '02D' [451 pwds/sec]
Probing: '0oq' [450 pwds/sec]
Probing: '0Lv' [477 pwds/sec]
Probing: '191' [485 pwds/sec]
Probing: '1wn' [482 pwds/sec]
Probing: '1SA' [459 pwds/sec]
Probing: '2g7' [486 pwds/sec]
Probing: '2Ce' [457 pwds/sec]
Probing: '2YR' [467 pwds/sec]
Probing: '3kI' [451 pwds/sec]
Probing: '3Ho' [468 pwds/sec]
Probing: '45a' [491 pwds/sec]
Probing: '4rY' [471 pwds/sec]
Probing: '4P2' [476 pwds/sec]
Probing: '5cJ' [489 pwds/sec]
Probing: '5AW' [500 pwds/sec]
Probing: '5Yq' [485 pwds/sec]
Probing: '6lP' [483 pwds/sec]
Probing: '6IP' [475 pwds/sec]
Probing: '76I' [493 pwds/sec]
Probing: '7tX' [480 pwds/sec]
Probing: '7R4' [477 pwds/sec]
Probing: '8em' [481 pwds/sec]
Probing: '8Dc' [513 pwds/sec]
Probing: '90L' [487 pwds/sec]
Probing: '9mO' [455 pwds/sec]
Probing: '9Ja' [462 pwds/sec]
Probing: 'a5p' [459 pwds/sec]
GOOD: password cracked: 'abc'

Como você pode ver, no meu caso, o programa revelou que a senha era “abc“.

Como quebrar a senha mais rápido

É possível acelerar o processo, fazendo uso do recurso de multithreads presente em seu processador.
Máquinas mais modernas podem executar vários “pedaços” das tarefas simultaneamente — recurso chamado multithreading.
Para fazer uso deste recurso e ganhar tempo, use o parâmetro --threads.

rarcrack --threads 4 --type zip exemplo.zip
RarCrack! 0.2 by David Zoltan Kedves (kedazo@gmail.com)

INFO: the specified archive type: zip
INFO: cracking exemplo.zip, status file: exemplo.zip.xml
INFO: Resuming cracking from password: '1tC'
Probing: '2hD' [1029 pwds/sec]
Probing: '34Z' [1020 pwds/sec]
Probing: '3OM' [946 pwds/sec]
Probing: '4re' [794 pwds/sec]
Probing: '53l' [787 pwds/sec]
Probing: '5FF' [792 pwds/sec]
Probing: '6hP' [788 pwds/sec]
Probing: '6U5' [790 pwds/sec]
Probing: '7v4' [764 pwds/sec]
Probing: '83t' [711 pwds/sec]
Probing: '8Ef' [760 pwds/sec]
Probing: '9bi' [683 pwds/sec]
Probing: '9I3' [677 pwds/sec]
GOOD: password cracked: 'abc'

Se você quiser saber o número máximo de threads que seu sistema suporta, no Linux, use o comando lshw:

sudo lshw | grep thread
configuração: cores=2 enabledcores=2 threads=4

Uma thread é a menor sequência de uma instrução de um programa, que possa ser executada independentemente por um scheduler.
Saiba mais no Wikipedia.

O rarcrack suporta o máximo de 12 threads
Por fim, se quiser interromper o processo, use Ctrl + C. O aplicativo retoma o trabalho no ponto em que parou, caso você decida executá-lo novamente.

Referências:

https://launchpad.net/~ole.wolf
http://pt.wikipedia.org/wiki/For%C3%A7a_bruta
https://launchpad.net/~ole.wolf/+archive/ubuntu/rarcrack

Use o fping para scanear a sua rede

O fping é um utilitário usado para scanear e encontrar as máquinas conectadas e ligadas em uma rede. Semelhante ao ping, usa o protocolo ICMP (Internet Control Message Protocol) para determinar se um host está “de pé” — através de uma requisição echo — ou não.
buscas na rede - fping
Diferente do ping, é possível fornecer vários endereços de hosts em uma só linha de comando ou um arquivo texto, com uma lista de hosts para sondar.
O fping envia um pacote ping para cada host da lista. Os que respondem são marcados na lista como ativos e não são mais checados. Os que não respondem, após um determinado período, são marcados como inalcançáveis.

fping versão 3

A quem já conhece a teoria ou não tem interesse em conhecer, recomendo pular este (ainda que) breve tópico. 😉
Após um longo tempo sem atualizações da versão original – entre 2002 e 2011 – em que, até mesmo, havia propostas de correções e melhorias e sem respostas do mantenedor oficial, David Schweikert assumiu o projeto e tem disponibilizado versões atualizadas do programa, junto com a documentação em seu site – de onde eu sugiro que você faça o seu download.

Por que usar o fping

O ping foi desenvolvido em 1983 por Mike Muuss e é uma ferramenta eficiente para testar quando um host é alcançável ou não, dentro da rede.
O problema com o ping é que ele envia uma requisição echo e fica esperando pela resposta. Imagine ter que testar um segmento da rede com 255 possíveis hosts – sendo que alguns, mesmo online, demoram, pelos mais variados motivos, algum tempo extra para responder ao ping?
Pois bem, o fping resolve isto. Como já vimos, se a resposta demora a chegar, ele segue em frente.

Como instalar o fping

Se você preferir compilar o código fonte, para usar uma versão mais atual ou específica do fping, passe para o próximo tópico.
No final do artigo, há o link para fazer download do aplicativo – para qualquer sistema operacional. Quem usa Debian ou Ubuntu pode instalar o fping com o comando apt-get:

sudo apt-get install fping

Usuários Debian, ainda podem verificar nos backports por uma versão mais atual em relação ao repositório padrão.
No Fedora ou outras distribuições baseadas no Red Hat, use o yum:

yum install fping

Como compilar o código fonte do fping

Baixar e compilar o código fonte pode trazer uma série de vantagens e costuma ser mais fácil do que algumas pessoas imaginam.
Se você optar por este método de instalação, faça o download do código fonte na página http://fping.org/dist/.
Execute os próximos passos, com privilégios administrativos:

./configure 
make
make check
make install
make clean
make distclean

… e pronto!
Se você ainda tiver dúvidas sobre como compilar código fonte no Linux, leia o artigo Como compilar código fonte.
O processo padrão, descrito acima, vai instalar o fping no diretório
/usr/local/sbin/fping.
Você pode usar o comando whereis, para obter esta informação:

whereis fping
fping: /usr/local/sbin/fping

Estar neste diretório, indica que o fping necessitará de privilégios administrativos para ser executado.

Como usar o fping para sondar e scanear a rede

O bom senso diz que devemos tomar alguns cuidados antes de fazer varreduras na rede. Uma vez que os sistemas de segurança podem identificar a atitude como agressiva, convém pedir permissão ao administrador da rede antes de iniciar esta atividade.
Veja um exemplo de aplicação do fping, com resultado:

fping 192.168.1.1
192.168.1.1 is alive

com este exemplo, fica claro que a resposta is alive (“está vivo”) significa que o host está de pé e pôde ser alcançado.
A brincadeira fica mais interessante, quando você fizer a busca baseada em uma lista, que pode ter centenas ou mais endereços IP de máquinas na sua rede. Imagine o arquivo lista_de_ips.txt, com o seguinte conteúdo:

192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4
192.168.0.5

Nota: Adeque os valores acima à realidade da sua rede.
Feito isto, vamos jogar esta lista pro fping testar cada IP:

fping -a < lista_de_ips.txt

Se tiver privilégios administrativos na sua máquina, use fping -f, assim:

sudo fping -f lista_de_ips.txt

Em um rápido resumo, até aqui:

  • Quando a mensagem retornada vem com a expressão
    is alive — é por que o host foi encontrado e está respondendo;
  • Quando a mensagem contiver expressões como ICMP Host Unreachable from ou is unreachable — é por que ele não foi encontrado ou não está respondendo.

Você pode usar a opção -g para verificar um intervalo grande como todas os 255 possíveis hosts em 192.168.1.*. Veja como:

fping -g 192.168.1.0/24

… e nem demorou tanto.
Para enviar o resultado (restrito aos hosts que foram alcançados) para um arquivo, pode usar o comando grep:

fping -g 192.168.254.0/24 | grep alive > is_alive.txt
cat is_alive.txt

Quando o perímetro, em que você deseja fazer sua busca, não está com o tráfego ICMP bloqueado, é possível encontrar rápido e sem muito esforço todos as máquinas conectadas à rede.

Defina o intervalo de tempo entre os pacotes ping

Você pode usar o parâmetro -i para especificar o intervalo mínimo de tempo entre um pacote ping (em milisegundos) a qualquer alvo:

fping -i 10 -g 192.168.254.0/24

O comando, acima, estabelece o intervalo de 10 milisegundos (ou 0,01 segundo) entre o envio de um pacote e outro, para todos endereços compreendidos no espectro de 192.168.254.0 a 192.168.254.255.
O valor padrão é 25 ms, de acordo com a documentação do programa.

Obtenha um resumo da sondagem do fping na sua rede

Ao adicionar -s à linha de comando, é possível obter um resumo ao final do trabalho do fping, em que ele informa:

  1. targets — alvos objetivados.
  2. alive — alvos ativos.
  3. unreachable — alvos intangíveis, inalcançáveis.
  4. unkown addresses — endereços desconhecidos.
  5. timeouts — tempo de resposta expirado (esperando retorno).
  6. ICMP Echos sentechos ICMP enviados.
  7. ICMP Echo Replies received — respostas em echos ICMP recebidas.
  8. other ICMP received — outros sinais ICMP recebidos.
  9. (elapsed real time) — tempo de execução real.

Veja um exemplo de relatório resumido:

fping -g 192.168.254.0/24 -s
192.168.254.1 is alive
192.168.254.2 is alive
192.168.254.3 is alive
192.168.254.7 is alive
ICMP Host Unreachable from 192.168.254.3 for ICMP Echo sent to 192.168.254.4
ICMP Host Unreachable from 192.168.254.3 for ICMP Echo sent to 192.168.254.5
ICMP Host Unreachable from 192.168.254.3 for ICMP Echo sent to 192.168.254.6
ICMP Host Unreachable from 192.168.254.3 for ICMP Echo sent to 192.168.254.8
ICMP Host Unreachable from 192.168.254.3 for ICMP Echo sent to 192.168.254.9
ICMP Host Unreachable from 192.168.254.3 for ICMP Echo sent to 192.168.254.10
ICMP Host Unreachable from 192.168.254.3 for ICMP Echo sent to 192.168.254.11
ICMP Host Unreachable from 192.168.254.3 for ICMP Echo sent to 192.168.254.12

     (...)

     254 targets
       5 alive
     249 unreachable
       0 unknown addresses

     249 timeouts (waiting for response)
    1001 ICMP Echos sent
       5 ICMP Echo Replies received
     942 other ICMP received

 0.10 ms (min round trip time)
 50.3 ms (avg round trip time)
 131 ms (max round trip time)
       26.827 sec (elapsed real time)

Como filtrar resultados do fping

Além do comando grep (veja os links ao final), é possível resumir bastante o relatório de saída.
Para obter apenas o relatório resumido, visto anteriormente, acrescente a opção -q:

fping -g 192.168.254.0/24 -s -q

Limite a quantidade de tentativas

O fping faz 3 tentativas para alcançar os alvos definidos, como comportamento padrão.
É possível aumentar ou diminuir este valor, de acordo com a sua conveniência. Veja como definir o número de tentativas para 5:

fping -r 5 -g 192.168.254.0/24

Se você acha que não precisa haver outras tentativas e prefere obter um resultado mais rápido da sondagem, use o valor -r 1.
Você pode encontrar muito mais informações sobre possibilidades de utilização no manual do comando. Recomendo a sua leitura, daqui pra frente.
Que suas buscas sejam frutíferas! 😉

Fontes:

Use o gstreamer para fazer resampling de arquivos mp3 no Ubuntu

É possível reduzir ainda mais os tamanhos dos arquivos mp3, com pouca perda da qualidade. A utilidade deste procedimento é fazer com que uma quantidade maior deles caiba em dispositivos reprodutores antigos, com capacidade de armazenamento muito limitada.
Se você não se importa em ouvir toda a sua coleção de músicas em um dispositivo de som, com qualidade de rádio, esta é uma ótima ideia.

iPods mp3 player
Coleção de iPods

No primeiro post sobre este tema mostramos como fazer este trabalho através do LAME.
É claro que a redução tem um custo — a consequente redução da qualidade do áudio do arquivo. A gente aposta na possibilidade de esta queda na qualidade ser imperceptível para a maioria das pessoas e no aproveitamento mais eficiente do espaço na mídia de armazenamento. Houve caso de triplicar a quantidade de arquivos dentro de um pendrive antigo.
Atualmente, temos outras ferramentas que também podem fazer o trabalho e é possível criar um script de automação da tarefa bem menor e mais enxuto do que o do artigo anterior.
Vamos ver aqui como isto é possível.

Instalação das ferramentas de trabalho

Aqui vamos usar o GStreamer para fazer a conversão e resampleamento (resampling) dos arquivos mp3. A principal vantagem dele, em relação ao LAME, é que ele retém as informações id3 dos arquivos. Assim, podemos fazer um único script e menor.
Abra um terminal (Ctrl + Alt + T, no Ubuntu) e digite o comando que segue, para instalar gstreamer-tools:

sudo apt-get install gstreamer-tools

Aguarde alguns minutos enquanto o pacote é instalado e prossiga.

Como criar um script de conversão de arquivos de áudio mp3

Sugiro criar um diretório para scripts e programas no seu /home:

mkdir ~/bin
cd ~/bin

Agora abra o seu editor de textos preferido, copie e cole o script abaixo dentro dele:

#!/bin/bash
#
# gshrink - Um script para resamplear todos os arquivos mp3 do
# diretorio. Este script depende do pacote gstremar-tools
# Os créditos do script original:
# Elder-Geek --> http://elder-geek.blogspot.com.br
######################################################
# Lita os arquivos mp3 no diretorio atual
ls *.mp3 > mp3_list
ls *.MP3 >> mp3_list
# Analisa a lista de arquivos mp3 e substitui os espaços por caracteres de escape
sed -i 's: :\\ :g' mp3_list
# Verifica se o subdiretorio resample já existe. Se não, cria.
if
  test -e ./resample
then
  echo "diretorio/arquivo resample ja existe - apagar? (S/n)"
  read reply
  if
    [ "$reply" != "n" ]
  then
    rm -r resample
    mkdir resample
  else
    exit
  fi
else
  mkdir resample
fi
# Resampleia cada mp3 e grava as tags
# CBR bitrate bitrate=128
# VBR quality quality=9
  cat mp3_list |while read song
do
  echo "$song"
  gst-launch filesrc location= \"$song\" ! decodebin2 ! audioconvert ! lamemp3enc target=bitrate bitrate=128 ! id3v2mux ! filesink location=\"resample/$song\"
done
#clean up
if
  test -e mp3_list
then
  rm mp3_list
fi
if
  test -e tag2.txt
then
  rm tag2.txt
fi
exit

Uma última dica

Para quem fez backup de todos os seus CD’s e guardou cada coletânea e álbum em pastas diferentes, recomendo executar o script dentro de cada pasta de arquivos mp3 – o que vai criar um subdiretório adicional resample com os mesmos arquivos da pasta pai, só que resampleados e reduzidos, prontos para ir pra qualquer lugar.

Como reduzir o tamanho do arquivo de audio mp3

O caso aqui é o de reaproveitar todo e qualquer aparelho reprodutor de mp3, ou cartões de memória velhos e, sobretudo, com espaço para armazenamento muito limitado. Eu, mesmo, tinha um pendrive “guerreiro” de 256 Mb, que devia estar próximo dos 7 anos de uso — simplesmente não lembro de quando o comprei. Mas funciona bem em uma caixa de som com entrada USB.
Recentemente, converti uma coleção inteira de CDs para mp3, como cópia de segurança. Agora, para ouvir no dia a dia, não preciso de arquivos de 320 kbps – 128 kbps, ou menos, podem ser o suficiente.

MP3 Logo
MP3 Logo

Se você tem um iPod ou celular antigo, com espaço insuficiente para armazenar músicas, fazer um downsampling nelas pode ser uma solução — é possível triplicar a quantidade de músicas que cabem no dispositivo.
OBS.:A segunda parte deste artigo ensina a fazer esta tarefa com o gstreamer-tools.

Ferramentas necessárias para reduzir o tamanho do arquivo mp3

Os aplicativos necessários para realizar esta tarefa são o python-mutagen e o lame. Ambos podem ser baixados e usados livremente.
No Ubuntu, você pode instalar os dois primeiros via terminal (Ctrl + Alt + T), assim:

sudo apt-get install lame python-mutagen

Como converter os arquivos mp3

Você deve ter centenas de arquivos para converter, não apenas um, eu sei… — mas eu quero mostrar como tudo funciona. Sinta-se livre para pular esta parte, se quiser, apressadinho(a). 😉
Dentro do terminal aberto, digite o seguinte comando para resamplear a sua música (adapte o comando à sua situação, substituindo os nomes dos arquivos):

lame -V5 --vbr-new --resample 44.1 arquivo_original.mp3 arquivo_resampleado.mp3

Aguarde alguns intantes, enquanto os arquivos são processados e, depois, compare os tamanhos.

reduzir o tamanho do mp3
Clique para ampliar a tela

Depois de concluído o trabalho, verifique os tamanhos dos arquivos.
Parece que vai dar pra reviver o antigo cartão de memória, ou não?
Como resamplear arquivos mp3
Clique para ampliar

Problemas que você pode ter com a conversão

Temos dois problemas com este método, por mais eficiente que ele seja:

  • O LAME não copia as tags id3 pro arquivo de origem — em outras palavras, na hora em que estiver tocando, o display do seu aparelho não vai mostrar as informações da música (nome, cantor, álbum etc) – o que pode ser um problema menor para quem vai tocá-las em um aparelho sem visor;
  • Como eu imagino que você tenha centenas de músicas para converter, todo este trabalho braçal não tem sentido.

Como converter muitos arquivos mp3

Para fazer o resampling de uma quantidade brutal de arquivos, o ideal é usar um script.
O Linerd do TuxTweaks, ensina a montar um este script que automatiza a nossa tarefa.
Em verdade, vos digo que serão 2 scripts. O primeiro lê todos os arquivos do diretório a partir do qual está sendo executado e os repassa pro segundo script, que faz o resampling e copia as tags id3. Todos os arquivos do diretório atual serão copiados para um segundo, chamado resample, criado pelo script.
A recomendação, aqui, é que você crie uma pasta (diretório) só para scripts e programas seus:

mkdir ~/bin
cd ~/bin

Copie o texto do script abaixo e cole-o dentro do seu editor de textos preferido. Salve-o como mp3shrink dentro do diretório criado para isto ~/bin

#!/bin/bash
#
# mp3shrink - Um script para resamplear todos os arquivos mp3
# em um diretorio. Este script chama o cptag que precisa
# estar no diretorio do mp3shrink. O cptag depende do lame
# e do mid3v2 (mid3v2 se encontra no pacote do python-mutagen
# É aconselhavel que os scripts fiquem no diretório  
# ~/bin.
######################################################

# Lita os mp3 no diretorio atual
ls *.mp3 > mp3_list
ls *.MP3 >> mp3_list

# Analisa os arquivos mp3 e substitui os espaços em branco por barras de escape.
sed -i 's: :\\ :g' mp3_list

# Verifica a existencia do diretorio resample. Cria um se nao existir
if
   test -e ./resample
then
   echo "diretorio/arquivo resample ja existe. deseja remover? (S/n)"
   read reply
   if
     [ "$reply" != "n" ]
   then
     rm -r resample
     mkdir resample
   else
     exit
   fi
else
   mkdir resample
fi

# Resampleia cada arquivo mp3 e grava as tags atraves do script cptag
cat mp3_list |while read song
do
   echo "$song"
   ~/bin/cptag "$song"
done

# fazendo a limpeza .... 
if
   test -e mp3_list
then
   rm mp3_list
fi
if
   test -e tag2.txt
then
   rm tag2.txt
fi
exit

Feito isto, crie o arquivo cptag, também dentro do diretório ~/bin. Segue o código:

#!/bin/bash
#
#cptag - Um script que resampleia arquivos mp3 com o LAME
#        e copia as tags id3v2 do original pro novo.
#
#####################

# Le as tags id3 e grava no arquivo
mid3v2 -l "$1" > tag2.txt

# Resampleia o arquivo de audio

lame -V5 --vbr-new --resample 44.1 "$1" "resample/$1"

# ajusta o valor da variavel 'title'
if
   grep TIT2= tag2.txt > /dev/null  #testa se a tag title existe
then
   title=`grep TIT2= tag2.txt | sed "s:TIT2=::"`
   echo $title
else
   echo "A tag title nao existe."
fi

# Ajusta a variavel 'album'
if
   grep TALB= tag2.txt > /dev/null  #testa se a tag album existe
then
   album=`grep TALB= tag2.txt | sed "s:TALB=::"`
   echo $album
else
   echo "A tag album nao existe."
fi

# Ajusta a variavel 'artista'
if
   grep TPE1= tag2.txt > /dev/null  #Testa se a tag artista existe
then
   artist=`grep TPE1= tag2.txt | sed "s:TPE1=::"`
   echo $artist
else
   echo "A tag artista nao existe."
fi

# Ajusta o valor da variavel 'track'
if
   grep TRCK= tag2.txt > /dev/null  # Testa se a tag track existe
then
   track=`grep TRCK= tag2.txt | sed "s:TRCK=::"`
   echo $track
else
   echo "A tag track nao existe."
fi

# Ajusta a variavel 'genre'
if
   grep TCON= tag2.txt > /dev/null  # Testa se a taf genre exsite
then
   genre=`grep TCON= tag2.txt | sed "s:TCON=::"`
   echo $genre
else
   echo "A tag genre nao existe."
fi

# Grava as tags no arquivo
mid3v2 -t "$title" -A "$album" -a "$artist" -T "$track" -g "$genre" "resample/$1"

exit

Agora, você precisa tornar estes dois scripts executáveis:

cd ~/bin
chmod u+x mp3shrink cptag

Feito!
Agora vá para o diretório em que se encontram todos os mp3 que você deseja resamplear e execute:

mp3shrink

O script vai guardar os novos arquivos em um subdiretório chamado resample. Dê uma olhada!
Divirta-se!