Convertendo de FLV para MP3 no Ubuntu

Acho que este post interessa a muita gente que baixa vídeos no YouTube a partir da extensão UnPlug do Firefox. Se você quer extrair o audio dos vídeos FLV que você tem mas não sabe como, eis aqui uma solução que talvez funcione no seu sistema. Assumo que você utiliza Ubuntu. Antes de poder realizar conversões você precisa dos seguintes pacotes de software:

  • ffmpeg: que realiza a manipulação do arquivo FLV
  • Alguns codecs específicos para o formato MP3

Para instalar o ffmpeg faça:

 sudo apt-get install ffmpeg

O problema é que o comando de conversão não irá funcionar ainda. Após buscas em fóruns vi que o problema é que o Ubuntu não possui em seus repositórios oficiais pacotes não-livres, e aparentemente o codec utilizado pelo ffmpeg para extrair o conteúdo MP3 do arquivo FLV é não-livre. Para resolver o problema você precisa, primeiro, adicionar o Medibuntu à sua lista de repositórios (referência):

sudo wget http://www.medibuntu.org/sources.list.d/hardy.list -O /etc/apt/sources.list.d/medibuntu.list

Em seguida adicione uma chave GPG necessária:

sudo apt-get update && sudo apt-get install medibuntu-keyring && sudo apt-get update

Bom, aqui vem a minha sacanagem: eu não tive paciência para descobrir qual, entre todos os codecs disponíveis, faria o ffmpeg realizar a conversão, então instalei todos. Se você estiver com tempo e paciência sobrando para descobrir, por favor deixe um comentário ao fim do artigo indicando qual é o pacote premiado. Assumo, deste ponto em diante, que você também irá instalar todos os codecs disponíveis no Medibuntu (em torno de 30MB). Você pode simplesmente fazer:

sudo apt-get upgrade

E esses pacotes todos serão instalados (e adicionalmente outros que você talvez não quisesse atualizar no momento, é bom lembrar).

Com todos os softwares necessários instalados podemos utilizar o seguinte comando para extrair, por exemplo, o audio do arquivo video.flv e colocá-lo no arquivo audio.mp3 (entenda melhor esses comandos lendo o manual do ffmpeg ou com este post, de onde tirei a dica).

ffmpeg -title "Nome qualquer" -i video.flv -acodec mp3 -ac 2 -ab 128 -vn -y audio.mp3

Eis aqui a saída desse programa antes de instalar os codecs adicionais (utilizando um arquivo FLV real):

$ ffmpeg -title 'Space Travel' -acodec mp3 -i space.travel.live.acoustic.flv -acodec mp3 -ac 2 -ab 128 -vn -y space.travel.live.acoustic.mp3
FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al.
  configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-libvorbis --enable-libtheora --enable-libogg --enable-libgsm --enable-dc1394 --disable-debug --enable-shared --prefix=/usr
  libavutil version: 1d.49.3.0
  libavcodec version: 1d.51.38.0
  libavformat version: 1d.51.10.0
  built on Mar 12 2008 14:31:53, gcc: 4.2.3 (Ubuntu 4.2.3-2ubuntu4)

Seems stream 0 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 29.97 (30000/1001)
Input #0, flv, from 'space.travel.live.acoustic.flv':
  Duration: 00:03:50.3, start: 0.000000, bitrate: 48 kb/s
  Stream #0.0: Video: flv, yuv420p, 320x240, 29.97 fps(r)
  Stream #0.1: Audio: mp3, 22050 Hz, mono, 48 kb/s
Output #0, mp2, to 'space.travel.live.acoustic.mp3':
  Stream #0.0: Audio: 0x0000, 22050 Hz, stereo, 0 kb/s
Stream mapping:
  Stream #0.1 -> #0.0
Unsupported codec for output stream #0.0

E após a instalação dos codecs:

$ ffmpeg -title 'Space Travel' -acodec mp3 -i space.travel.live.acoustic.flv -acodec mp3 -ac 2 -ab 128 -vn -y space.travel.live.acoustic.mp3
FFmpeg version SVN-rUNKNOWN, Copyright (c) 2000-2007 Fabrice Bellard, et al.
  configuration: --enable-gpl --enable-pp --enable-swscaler --enable-pthreads --enable-libvorbis --enable-libtheora --enable-libogg --enable-libgsm --enable-dc1394 --disable-debug --enable-libmp3lame --enable-libfaadbin --enable-libfaad --enable-libfaac --enable-xvid --enable-x264 --enable-liba52 --enable-amr_nb --enable-amr_wb --enable-shared --prefix=/usr
  libavutil version: 1d.49.3.0
  libavcodec version: 1d.51.38.0
  libavformat version: 1d.51.10.0
  built on Mar 23 2008 22:28:54, gcc: 4.2.3 (Ubuntu 4.2.3-2ubuntu6)

Seems stream 0 codec frame rate differs from container frame rate: 1000.00 (1000/1) -> 29.97 (30000/1001)
Input #0, flv, from 'space.travel.live.acoustic.flv':
  Duration: 00:03:50.3, start: 0.000000, bitrate: 48 kb/s
  Stream #0.0: Video: flv, yuv420p, 320x240, 29.97 fps(r)
  Stream #0.1: Audio: mp3, 22050 Hz, mono, 48 kb/s
Output #0, mp3, to 'space.travel.live.acoustic.mp3':
  Stream #0.0: Audio: mp3, 22050 Hz, stereo, 0 kb/s
Stream mapping:
  Stream #0.1 -> #0.0
Press [q] to stop encoding
size=    1796kB time=229.9 bitrate=  64.0kbits/s    
video:0kB audio:1796kB global headers:0kB muxing overhead 0.006961%

Note que o arquivo video.flv não será alterado no processo.


Resolvendo problemas com Firefox e Banco do Brasil

Atualizado em 2/7/2008.

Encontrei este post do Gustavo Rebuzzi, referenciando este outro post do Daniel Docki, que resolvem o problema da recarga de tela na página de autenticação do site do Banco do Brasil. Basicamente você deve desinstalar os pacotes do OpenJDK e instalar um pacote adicional (que no meu caso já estava instalado). Ah, isso vale para o Ubuntu 8.04.

Conforme dica do Gustavo nos comentários, o problema parece ser o pacote IcedTea, que serve como plugin Java para os navegadores web. No Mandriva 2008 você talvez consiga fazer o site do BB voltar a funcionar da seguinte forma:

# urpme java-1.7.0-icedtea # para remover o pacote

Você será perguntado se também deseja remover o pacote java-1.7.0-icedtea-plugin. Indique que sim para completar a remoção. Depois você precisa executar o seguinte comando para instalar o pacote Java da Sun mais o plugin.

# urpmi java-1.6.0-sun java-1.6.0-sun-plugin

Esse comando simplesmente não funcionou na minha instalação pois aqui a arquitetura da máquina é 64 bits. O pacote java-1.6.0-sun que tenho instalado é 64 bits, mas não há uma versão 64 bits para o pacote java-1.6.0-sun-plugin, e então o instalador do Mandriva se recusa a instalar o plugin. Eu até poderia perder mais um tempo tentando fazer isso mas no momento não dá.

Da próxima vez consulto o Google antes de perder 40 minutos do meu dia em fila de banco…


Se não gosta do F-Spot volte para o gThumb

Uma das coisas mais simples no Ubuntu 7.10 era transferir fotos da minha câmera digital para o computador. Era só plugar a câmera na porta USB e o gThumb abria, perguntando o que eu queria fazer com as fotos. Por default o programa importava as fotos no diretório onde eu havia importado meu último álbum (então eu nunca precisava configurar o diretório novamente), mas jogava as novas fotos em um diretório interno a esse, dando um nome bastante significativo ao novo diretório (formado pela data e hora atuais). Ou seja, não poderia haver programa mais simples e intuitivo pra isso. Em seguida eu passava o scanner do Picasa Desktop nas fotos e as subia para meus álbuns pessoais nos servidores do Google, redimensionadas pelo próprio Picasa durante o upload.

Mas eis que na atualização para o Ubuntu 8.04, entre meus diversos problemas com drivers proprietários para placa de vídeo também descobri que o programa padrão para importação de fotos deixou de ser o gThumb, passando a ser o terrível F-Spot. Caso você seja mais um descontente com o F-Spot, este artigo do Alec Koumjian explica como é simples tornar o gThumb o importador padrão de fotos na versão 8.04 do Ubuntu.


Vim com a fonte Monaco (aquela do TextMate)

Parece que a comunidade Rails internacional realmente gosta de Mac. Alguns nomes da comunidade nacional também. Eu ainda não sei porquê. Nada contra, claro, simplesmente nunca usei um Mac na vida, e não sei quando vou usar. Mas algo que me deixou intrigado foi a beleza da fonte utilizada pelo editor TextMate. Onde já se viu algo tão simples e ao mesmo tempo tão elegante? Eis que essa fonte não é um privilégio exclusivo dos usuários de Mac.

A fonte a que me refiro chama-se Monaco. Este tutorial cobre sua instalação em uma distribuição Ubuntu, e posterior configuração do gnome-terminal. Acredito que os passos para se instalar a fonte em outras distribuições sejam parecidos, mas não posso garantir. Assumo que você utiliza o vim modo texto, e não o gvim.

Baixe a fonte Monaco para o diretório ~ (dica extraída daqui):

wget http://www.gringod.com/wp-upload/software/Fonts/Monaco_Linux.ttf

Para de fato instalar a fonte siga os passos seguintes (dica extraída daqui):

cd /usr/share/fonts/truetype
sudo mkdir myfonts
cd myfonts
sudo cp ~/Monaco_Linux.ttf .
sudo chown root.root *.ttf
sudo mkfontdir
cd ..
fc-cache

Agora a fonte estará disponível no menu System..Preferences..Font. Mas não é lá que vamos fazer a mudança. Como queremos essa fonte dentro do Vim, o que precisamos mudar é a fonte padrão do gnome-terminal (ou do Konsole, se você é usuário do KDE). Feche todas as instâncias do gnome-terminal que estiverem abertas, para que seja possível escolher a nova fonte.

Agora abra uma nova instância do gnome-terminal. Clique com o botão direito sobre a janela, em seguida clique na opção “Edit current profile…”. Na primeira aba, “General”, clique na opção “Font”. Procure pela fonte Monaco, clique “Ok”, e feche a janela de edição de perfil. Pronto, agora seu Vim e seu gnome-terminal estarão com a fonte Monaco. Para reverter a mudança volte na edição de perfil e troque para a fonte que você utilizava até então.

No meu Ubuntu utilizo a fonte Monaco com tamanho 14 (confira neste link a aparência do código Ruby com a Monaco ativada).

Enquanto o código Ruby fica ótimo com essa fonte, na minha opinião o código PHP deixa a desejar. Isso porquê o cifrão, tão presente na linguagem, é mais alto do que as outras letras e acaba parecendo um “intruso” dentro do código. Se você utiliza o Vim mas não gostou da Monaco, sugiro utilizar a Bitstream Vera Sans Mono com tamanho 14 (essa fonte é distribuída com o GNOME).

Atualização 1 (31/10/2007): fechar todas as instâncias do gnome-terminal é suficiente para que a fonte apareça na lista de seleção (não é preciso reiniciar o Ubuntu).