[LinuxFocus-icon]
Início  |  Mapa  |  Índice  |  Procura

Novidades | Arquivos | Links | Sobre LF
[an error occurred while processing this directive]
convert to palmConvert to GutenPalm
or to PalmDoc

[Photo of the Author]
por Philip de Groot

Sobre o autor:

Brevemente, obterá o seu doutoramento na Universidade de Nijmegen na matéria de quimometria. Ele gosta de trabalhar com o Linux e escreve a suas experiências em bases regulares.

He
Conteúdo:

 

Gravação mp3 em Tempo Real, parte 2

[Illustration]

Abstrato:

Este artigo segue-se a uma publicação anterior acerca de fazer gravações mp3 em tempo real de e.g. emissões de rádio. No anterior papel, foi demonstrado como é obtido um enorme ficheiro mp3, e.g. 650 MB para 12 horas ou 1.3 GB para 24 horas com música de qualidade aproximada ao do CD (128 kbit/s; stereo). Como manusear este ficheiro enorme ? É possível de fazer gravações mais longas ou comprimir a música ainda mais ? E acerca da qualidade das gravações mp3 ? Focaremos em responder às questões acima.



 

Editando ficheiros mp3

Assuma que fez uma gravação bonita de 24 horas, e.g. dos Eighties Top 300 emitida pela Loostad radio, e quer dividir este ficheiro em ficheiros mais pequenos e práticos. Durante o processo de divisão, quer também remover anúncios de publicidade e notícias. Como é que pode fazê-lo da melhor maneira ? Uma maneira de o fazer seria:
Este procedimento trabalharia, teoricamente, e contra o senso comum a re-codificação de um sinal mp3 codificado com o mesmo algoritmo mp3 não resulta na perda de qualidade. Tem, no entanto, na prática alguns problemas:

Em suma, precisa de uma programa capaz de editar os próprios ficheiros mp3! Tais programas existem, mas (de momento) para o Linux não. Um número considerável de programas para windows está disponível, mas a maior parte destes programas têm um grande problema: não suportam um ficheiro mp3 com um tamanho de 650 MB! Eu encontrei um programa capaz de fazer este trabalho, se você tiver paciência: 'Manns' mp3 edit'. Utilizei este programa no Windows98. Na Interface gráfica, pode indicar o ínício e fim do pedaço desejado a partir do ficheiro original mp3. Pode copiar este pedaço para um novo ficheiro com o comando 'trim'. Este programa é 'donationware', o que significa que não é obrigado a pagá-lo, mas é-lhe pedido simpaticamente para o comprar de maneira a que o programa sirva as suas necessidades. Este programa tem dois senão: é extremamente LENTO num ficheiro de 650 MB e só pode lidar com taxas CONSTANTES!!! Encontrar o principio da hora final, e.g. numa gravação de 24 horas, demora muito tempo e inclui acessos pesados ao disco. Cortando o pedaço desejado, por outro lado, é bastante rápido (sem perder qualidade mp3). Até agora ainda não encontrei nenhum problema com o "playback" dos ficheiros mp3 após utilizar este editor. Contudo verifico sempre os ficheiros finais cortados ao carregá-los no editor mp3. Se o carregamento funcionar bem, os ficheiros cortados estão O.K. Durante as minhas primeiras experiências com este editor, eu cliquei no botão 'trim' enquanto que acesos pesados ao disco ocorriam. Isto resultou em ficheiros mp3 estragados, que não podem ser tocados novamente! Para vos dar uma indicação: editar um ficheiro mp3 de 650 MB demora-me aproximadamente 1 hora, causada principalmente pela espera (o que por vezes pode ser frustrante)!

 

Fazendo gravações de mp3 longas (>24 horas)

Não há problema em fazer uma gravação de mp3 de uma emissão de rádio. O ficheiro fica razoavelmente pequeno (e.g. 1.3 gigabyte para 24 horas) e pode ser facilmente armazenado no disco rígido. Este problema altera-se se quiser fazer uma gravação de e.g. uma semana. Presumivelmente, não caberá no seu disco rígido e você quer ultrapassar este problema. Eu encontrei este problema com a emissão de 'Alltimes Top 2000' durante o natal e o novo ano 2000 (144 horas de música!), emitidas por uma estação de rádio Alemã pública e nacional Radio 2. O meu disco rígido era, nesse tempo, pequeno demais para tais gravações, então tive de resolver o problema de um modo diferente. Aqui a têm a receita:
Utilizei o procedimento acima para gravar todo o Top2000 completamente e sem problemas! Utilizei 12 CDs de backup que jamais serão utilizados novamente, mas você tem de fazer despesas no sentido de fazer gravações com sucesso. Como é que tudo funciona? Obtive a ideia lendo CD-Burning-Howto e os passos necessários estão explicados em baixo:


O benefício desta abordagem é a limitada utilização de processamento necessária para criar os CDs mp3. As imagens já existem! Pode automatizar todo o procedimento utilizando uma script: montar as imagens, iniciar a gravação de mp3, finalizar a gravação de mp3 e desmontar a imagem após 12 horas de gravação, montar uma segunda imagem e continuar com a gravação mp3, e por aí adiante. Eu queimei os CDs á mão, no caso de os problemas ocorrerem (o que foi verdade, devido à falta de media). Por esta razão, eu criei 4 imagens: 3 imagens separadas no caso eu encontrei problemas na gravação dos CDs (dando-me um máximo de 36 horas para resolver o problema). A script que utilizei assemelha-se a isto:


#!/bin/sh
echo "loading modules for sound support..."
modprobe -k snd-card-sb16
modprobe -k snd-pcm-oss
modprobe -k snd-mixer-oss
echo "setting mixer..."
amixer set Line 31 unmute capture; amixer set Master 31; amixer set PCM 31
cd /where/ever/you/stored/the/images/
for i in 1 2 3; do
	for ii in 1 2 3 4; do
	echo "mounting image_$ii on /mnt ..."
        mount -t ext2 -o loop=/dev/loop1 image_$ii /mnt
        echo "starting mpegrec ..."
        mpegrec -b 128 -x -mj -o /mnt/top2000_$ii.mp3
	echo "umount /mnt"
        umount /mnt
	done
done

Fiz tudo SEM o XWindows, usando a prompt Bash. Carreguei o suporte para o som à mão, bem como a emulação OSS (necessária para o correcto funcionamento dos drivers ALSA) e o mixer driver (claro que pode automatizar isto utilizando um mecanismo de pré-instalação/pós-instalação no /etc/conf.modules). A 4.ª linha configura o mixer correctamente: a origem de gravação é o 'line-in' e o volume foi aumentado ao máximo. Após configurar estas opções, a script lida com a montagem e desmontagem das imagens.T Acerca das opções mpegrec: '-mj' indica uma gravação em stereo "unido". Eu fiz isto porque esperava ficheiros mp3 mais pequenos usando esta opção (devia caber tudo em 670-680 MB). Isto aparentou ser mentira: não se importa se usa gravações em stereo ou stereo "unido"! Quando faço novas gravações, eu utilizarei stereo normal. O programa 'mpegrec' devia parar após 12 horas. Para alcançar esta tarefa, Eu adaptei o código fonte e alterei o máximo de 24 horas (que simplesmente está apontado no código) para 12 horas. Infelizmente esta abordagem não funcionou: o programa continuou a gravar após as 12 horas! Tive de interromper a gravação todas as 12 horas (não o quer obter livremente...). A script tomou conta das restantes partes. eu já não entendo nada do 'mpegrec'. Devia estudar o código fonte cuidadosamente...

Note:
A versão mais recente do cdrecord (cdrecord-1.9) causou-me alguns problemas a criar os CDs. A versão anterior, cdrecord-1.8.1, trabalhava sem problemas. Eu resolvi estes problemas actualizando o firmware do meu gravador de CDs, um Philips CDD 3610, da versão 3.02 para a 3.09. Inicialmente, eu esperava que os problemas com a gravação de CDs eram causados pelo kernel 2.4.3, mas isto pareceu ser mentira!

 

A qualidade das gravações de mp3

Devido ao feedback do artigo arterior através da página de Talkback inglesa, recebi um link para um site contendo informação interessante acerca da gravação de mp3. Em especial a qualidade de mp3 e a ligação com a taxa de mp3-bit é explicada de um modo excelente, focando-se no programa 'lame'. O endereço é: http://www.r3mix.net/.


Resumindo os aspectos mais importantes:

Tudo isto é discutido em pormenor no site acima mencionado!  

Criando gravações mp3 pequenas tanto quanto possível

Em baixo, discutirei uma script enviado por um leitor (via email). A script é algo do género:


#!/bin/bash

echo "record $1 named ($3) for $2 seconds"
aumix -f ~/.aumixrc
/usr/bin/yes x | /usr/bin/radio $1 >/dev/null 2>/dev/null
sox -V -r 44100 -c 2 -t ossdsp -w -s /dev/dsp -t wav - 2>/dev/null |
lame - ~/$3.`/bin/date "+%H%M.%m-%d-%y"`.mp3 --resample 16 -b 8 -a -m m -h --lowpass 4 --highpass .12 --voice&
sleep $2
kill -9 $!
# copy the output to a different direcory. If you want you can
# replace cp by rcp or scp and copy it to a different computer:
cp $3.*`/bin/date "+.%m-%d-%y"`.mp3 /tmp/outputdir

O principal objectivo da script é o de obter gravações de rádio compreensíveis e que só precisem de 3,5 megabyte/hora de espaço em disco! Com compreensível quero significar que qualquer um devia interpretar o discurso gravado. Claro, que a qualidade da música é péssima! A primeira linha na script configura o mixer, inicia o programa da placa de som e o 'slox'. O Truque reside nas opções do lame que vamos agora, investigar.

--resample 16 -b 8 -a -m m -h --lowpass 4 --highpass .12 --voice
--resample 16 Redefine a frequência de amostragem do ficheiro de saída de 44 kHz para 16 kHz.
-b 8 Configurando a taxa de amostragem para 8 kbits/s (surpresa!).
-a Combinando o canal stereo para uma gravação mono.
-m m Forçando a codificação mp3 para mono.
-h Uma opção para usar alta-qualidade na codificação mp3 (lento).
--lowpass 4 Configurando o filtro lowpass para um valor de 4 kHz. Todos os sinais (frequências) superiores a 4 kHz são removidos.
--highpass .12 Configurando o filtro highpass para um valor de .12 kHz. Todos os sinais (frequências) a baxo de .12 kHz são removidos.
--voice Utilizar uma técnica de compressão mp3 optimizada para o discurso.

É claro que uma elevada compressão pode ser obtida para o discurso. A maior parte das vezes isto será indesejado. Agora, pelo menos, a possibilidade está indicada!

 

Uma script standard para criar gravações mp3

Esta script foi enviada através das páginas de TalkBack (Estou grato por tal: toda a gente pode aproveitar esta informação!). Este é o grande benefício das páginas de Talkback que foram postas à disposição para os artigo anterior (e também para o artigo corrente). Toda a gente pode colocar as suas experiências, pedir conselhos a outros visitantes, se ocorreram problemas, em suma: uma tremenda quantidade de informação é trazida em conjunto e é (espero) posta à disposição de todos! A script, chamada 'mp3-record', parece-se com algo:

#!/bin/sh
 /usr/local/bin/mpegrec \
 -l 5400 \
 -x '--preset fm \
 --tt "Computers in Your Life" \
 --tl "Open Line with Tom Wieble" \
 --ta "Tom Wieble" --ty `date +%Y` \
 --tg "Speech" \
 --tc "Copyright (c) 1997 - `date +%Y` WOSU" -c' \
 -o open_line_`date +%d%b%y`_`date +%H%M`.mp3

A opção '-l 5400' configura o tempo de gravação em 90 minutos. Todas as opções após o '-x' são enviadas directamente para o lame (linhas da 4 à 9) e a opção '-o' guarda o ficheiro como 'data_e_tempo.mp3'. Estas linhas podem ser adaptados como o foram. Para este fim talvez seja útil recordar as opções do lame mais de perto. As opções mais recentes estão explicadas na tabela a baixo:

--preset fm O Lame conhece algumas configurações standard. 'fm' significa para fazer gravações de emissão fm, mas eu não gosto da qualidade de gravação comparadas à taxa de amostragem de 128 kbit/s. A principal causa são os filtros aplicados pelo 'lame'.
--tt "Computers in Your Life" '--tt' define o título da gravação (30 caracteres no máximo).
--tl "Open Line with Tom Wieble" '--tl': álbum, ou origem (30 caracteres no máximo).
--ta "Tom Wieble" --ty `date +%Y` '--ta': artista (30 caracteres no máximo).
--tg "Speech" '--tg': género (nome ou número).
--tc "Copyright (c) 1997 - `date +%Y` WOSU" -c" '--tc': comentário (informação adicional; 30 caracteres no máximo).

Em suma: um modo simpático de criar um ficheiro mp3, incluindo a data e o tempo da gravação e incorporando todo o tipo de informação adicional. Leva algum a tempo a escrever tudo na script, mas é bom ver que todas estas coisas são possíveis!

 

Forma de respostas para este artigo

Todo artigo tem sua própria página de respostas. Nesta página você pode enviar um comentário ou ver os comentários de outros leitores:
 página de respostas 

Páginas Web mantidas pelo time de Editores LinuxFocus
© Philip de Groot, FDL
LinuxFocus.org

Clique aqui para reportar uma falha ou para enviar um comentário para LinuxFocus
Informação sobre tradução:
nl -> -- Philip de Groot
nl -> en Philip de Groot
en -> pt Bruno Sousa

2001-08-19, generated by lfparser version 2.17