Linux

Como corrigir arquivos Mp3 com tempo incorreto?

Enviado por Renan, seg, 21/02/2011 - 02:24

Eu tinha um sério problema com algumas músicas Mp3 que baixava ou alguém me passava: algumas delas vinham com o tempo totalmente errado. A música tinha pouco mais de 5 min mas o tempo indicado era 2min ou até mesmo 3 segundos. Descobri que isso acontece quando informações sobre o cabeçalho e o bitrate da música não são mutuamente correspondentes.

Fui atrás de algum programa que tinha o objetivo de corrigir esses arquivos Mp3 defeituosos e acabei me esbarrando no VBRFix. Neste site há a versão com interface gráfica em QT. Nos repositórios de pacotes do Debian, também há uma versão disponível. Esta, porém, não possui interface gráfica, é somente modo texto. Mas nem por isso é diferente ou deixa de funcionar.

Neste post somente abordarei sobre a versão em modo texto que, nas distribuições derivadas do Debian (Ubuntu, Mint, Aptosid, etc) pode ser instalada com o comando:

$ sudo apt-get install vbrfix

Depois para a correção dos arquivos, é somente executar o comando:

$ vbrfix -always arquivo.mp3 arquivo_backup.mp3

A tag -always sempre corrigirá o arquivo, não importa se ele é CBR (bitrate constante) ou VBR (bitrate variável). Logo após, vem o nome do arquivo a ser corrigido e em seguida o nome do arquivo de backup que será criado, ou seja, uma cópia do arquivo não corrigido. Depois de executar, novo arquivo corrigido estará disponível para uso.

Apache: PHP não funciona com mod UserDir

Enviado por Renan, qui, 29/07/2010 - 17:32

Mais uma dica pra quem utiliza a família Debian de distribuições e desenvolve em PHP: como habilitar a execução de scripts PHP na sua pasta public_html. Aparentemente este suporte está vindo desabilitado por padrão nas distribuições que utilizam o Debian como base. Antes de tudo, estou assumindo que você já tenha o Apache e o PHP instalados, configurados e funcionando.

A vantagem de se utilizar o mod_userdir do Apache é aumentar a segurança do seu sistema ao mesmo tempo que facilita a manipulação de arquivos. Tudo que estará dentro da pasta public_html presente na sua pasta Home será publicado pelo Apache, automaticamente.

Rode os comandos seguintes comando como root. Primeiramente, vamos habilitar o mod_userdir:

# a2enmod userdir

O script habilitará o módulo e pedirá para reiniciar o Apache. Em seguida, crie a pasta public_html utilizando seu usuário normal, dentro da sua Home e defina as permissões dela:

  1. $ mkdir public_html
  2. $ chmod 711 public_html

Em seguida, como root, defina as permissões das pastas Home(este é um detalhe crucial):

# chmod 711 /home /home/[seu_login]

Próximo passo é habilitar a execução de scripts PHP via mod_userdir. Para isso, como root, abra o arquivo /etc/apache2/mods-enabled/php5.conf e encontre as seguintes linhas:

  1. <IfModule mod_userdir.c>
  2.   <Directory /home/*/public_html>
  3.     php_admin_value engine Off
  4.   </Directory>
  5. </IfModule>

Comente-as, colocando um # na frente de cada uma. Salve e feche o arquivo. Em seguida reinicie o Apache executando como root:

# /etc/init.d/apache2 restart

Pronto! Você já pode rodar suas aplicações PHP dentro do seu diretório public_html, sem se preocupar mais em utilizar gambiarras para escrever/ler no diretório padrão /var/www. ;)

Recarregar tabela de partição sem reiniciar o Linux

Enviado por Renan, ter, 20/07/2010 - 21:26

Depois de comprar um HD novo de 500Gb para meu notebook(o antigo de 120Gb não estava mais dando conta da demanda) resolvi particioná-lo para instalar meus sistemas operacionais. Como de costume, primeiro instalei o Windows(mesmo que queira, em certas situações é impossível não tê-lo) e em seguida a distribuição que estou utilizando no momento(Sidux, Debian Sid estabilizado, rolling-release, recomendo).

Depois de tudo no disco, instalado e configurado, notei que tinha esquecido de criar partições para instalação do Gentoo(acho que ele irá me salvar pra gerar um compilador GCC cruzado(ou crosscompiler)) e a partição de "troca" (ou backup, ou de arquivos, enfim) para compartilhar arquivos entre os Linuxes(tá certo?) e o Windows. Abri o KDE Partition Manager (afinal KDE > Gnome ;) ) e criei a primeira partição ext4. Criar a partição ele criou, mas não conseguiu formatar ou fazer outro tipo de operação.

Depois de vasculhar um pouco, notei que o linux não estava listando o recurso da partição no /dev. Tinham todas outras partições(/dev/sda1, /dev/sda2, /dev/sda5, etc) mas a /dev/sda8(por exemplo) não estava lá. Depois de reiniciar o sistema, ela apareceu. Acredito que o kernel, ao iniciar, lê a tabela de partição e cria os recursos, coisa que não acontece(pelo menos automaticamente) em tempo de execução.

Se não dá pra fazer automaticamente, dá pra fazer manualmente! :)

Encontrei 3 métodos que "forçam" o Kernel a reler a tabela de partição do HD e repopular os identificadores delas no /dev. Vamos a elas:

Partprobe

Este é um programa que tem como objetivo fazer o kernel reler a tabela de partições de um dispositivo(HDs, pendrives, etc) em tempo de execução. Para isso, instale em sua distribuição utilizando as ferramentas de pacotes disponíveis(no meu caso, é o apt-get do Debian):

# apt-get install partprobe

Em seguida, execute o partprobe como root indicando qual dispositivo deseja reler a tabela de partição:

# partprobe /dev/sdX (Onde X é a letra do seu dispositivo)

Pronto! O sistema já deve ter reconhecido as partições novas! Basta voltar ao programa particionador e formatar/nomear/etc sua partição criada.

Hdparm

Caso o Partprobe não funcione, é possível realizar o mesmo procedimento utilizando o Hdparm, que é um utilitário geral de discos-rígidos. Para isso, execute o seguinte comando como root:

#  hdparm -z /dev/sdX (Onde X é a letra do seu dispositivo)

Via interface do Kernel

Essa dica não utiliza nenhum dos programas anteriores pois acessa o Kernel diretamente: desta forma, não há nenhum tratamento de erros caso aconteça alguma caca ao reler sua tabela de partições. Dica somente para usuários avançados do sistema :).

Como root, envie o seguinte sinal para a interface do kernel:

# echo 1 > /sys/block/sdX/device/rescan (Onde X é a letra do seu dispositivo)

Em seguida, cheque via o dmesg se o kernel está realizando a releitura da tabela de partição do dispositivo.

Depois disso sua(s) partição(ões) devem estar reconhecidas e habilitadas dentro do /dev, sendo possível formatá-las, nomeá-las e até montá-las, e inclusive até já começar a utilizá-las(Endóclise FTW)!

Bom, fica a dica para administradores de sistemas/servidores Linux caso precisem mexer com partições e quiserem evitar ao máximo o downtime que um simples reboot pode trazer. ;)

Divulgar conteúdo
"Se debugar é o processo de remover bugs, programar deve ser o processo de colocá-los." Drupal theme by Kiwi Themes.