Convertendo Videos para PSP no Linux

Filed under:Administração Linux — posted by rwanderley on 13 October, 2008 @ 3:19 pm

Ultimamente tenho passado um bom tempo em blogs e outros sites para
descobrir como converter RMVBs para MP4 que rodassem no meu PSP. O
que descobri foram mais aplicações para Mac OS ou windows. Porém,
como usuário GNU/Linux não queria ter que rodar tais apps em um
emulador e sim usar aplicações nativas. Neste blog irei mostrar como
converter usando o mencoder e o
ffmppeg.

Usaremos o mencoder para converter de RMVB para AVI e o ffmpeg para
converter de AVI para o formato MP4 suportado pelo PSP. O motivo de
usar estas duas fases é que o ffmpeg não possui suporte a arquivo
RMVB, pelo menos não no que tenho instalado na minha máquina.


Convertendo de RMVB para AVI

Iremos supor que o arquivo que estamos querendo converter se chame
videoIn.rmvb, iremos agora criar o arquivo videoIn.avi com o seguinte
comando:

mencoder videoIn.rmvb -oac mp3lame \
-lameopts br=192 \
-ovc lavc \
-lavcopts vcodec=mpeg4:vhq \
-o videoIn.avi

Este comando está dizendo para o mencoder usar o lame para converter o
audio para mp3 com um bit rate de 192 kbps, usar libavcodec para
converter o video em formato mpeg4, para entender o vhq veja a opção
mbd=1 na manpage do mencoder.


Convertendo de AVI para arquivo PSP (MP4)

Esta parte foi a que me levou mais tempo para achar os parâmetros
certos, de forma que o vídeo ocupe toda a tela do PSP e a qualidade
fique boa. Assumindo que o arquivo de entrada chama-se videoIn.avi e
queremos criar o arquivo videoOut.mp4 usamos:

ffmpeg -i videoIn.avi \
-s 368×208 \
-b 300k \
-r 29.97 \
videoOut.mp4

Que diz para o ffmpeg gerar um MP4 com de tamanho 368 por 208 pixels,
com um bit rate de 300 kbps e aproximadamente 30 quadros por segundo.

E pronto! Agora é só copiar o video para a pasta video do seu memory
card e pronto!

Ótima descrição de software

Filed under:Administração Linux — posted by rwanderley on 25 February, 2008 @ 8:03 pm

Hoje fui dar uma olhada no DevilsPie, um software que lhe dá mais controle das janelas no gnome. Logo de cara me dei com seguinte descrição que foi uma das melhores que já vi:

A totally crack-ridden program for freaks and weirdos who want precise control over what windows do when they appear. If you want all XChat windows to be on desktop 3, in the lower-left, at 40% transparency, you can do it.

Gnus + Gmail

Filed under:Administração Linux — posted by rwanderley on 17 January, 2008 @ 11:50 am

Here I’ll try to show how to configure Gnus to connect to your gmail account so you can read and send your e-mails without having to leave your Emacs :-) If you have multiple IMAP accounts I also tell you how to configure Gnus for multiple IMAP account, the same thing can be done for POP accounts, though I don’t mention POP here.

All the stuff here are slightly modified configurations found at the EmacsWiki

Every time you load gnus with the commands M-x gnus or M-x gnus-other-frame it reads the file ~/.gnus, so, all configurations mentioned here should be added to this file.

So, beginning the configuration process let’s configure our Gnus so it can fetch e-mails from your Gmail account:

(setq gnus-select-method '(nnimap "gmail"
          (nnimap-address "imap.gmail.com")
          (nnimap-server-port 993)
                                  (nnimap-stream ssl)))

This is all you need to start reading your e-mails with Gnus, note that you will have to have gnutls package installed in order to use ssl.

To test this type M-x gnus, it should ask for your login, type yourusername@gmail.com than type your password. After that you should be redirected to the *Group* buffer, type U and subscribe to your Gmail folders. There are lot’s of options, too many to be mentioned here, please read the EmacsWiki for more information.

In order to not have to be typing your account and password you can edit a file called ~/.authinfo and add something like this:


machine imap.gmail.com login myaccount@gmail.com password mypassword port 993
machine smtp.gmail.com login myaccount@gmail.com password mypassword port 587

Change myaccount and mypassword to your account and password. The smtp line will be use for sending mail.

To add another IMAP account use the gnus-secondary-select-methods variable like this:

(setq gnus-secondary-select-methods
      '((nnimap "AnotherAccount"
    (nnimap-address "imap.something.com")
    (nnimap-server-port 993)
    (nnimap-stream ssl))))

TODO: send mail using multiple smtp servers

Selecionando encoding correto no ERC

Filed under:Administração Linux, Emacs, LISP — posted by rwanderley on 14 January, 2008 @ 7:50 pm

A algum tempo venho tendo problemas de codificação de caracteres no ERC,
o cliente de irc que uso.

Uso o ERC tanto para conectar em servidores IRC, geralmente o freenode,
como para conectar ao MSN e Google talk, usando o bitlbee para converter
os protocolos destes dois últimos para o do IRC.

O problema está que o MSN e o Google talk usam ISO-8859-1 como encoding,
enquanto que o pessoal no freenode usa UTF-8. Eu conhecia a variável
erc-server-coding-system, que na minha configuração estava setada
para “‘(utf-8 . undecided)”, ou seja, eu enviava texto usando UTF-8 e
usava o encoding especial do emacs undecided como o encoding de entrada.

O problema dessa solução é obvio, funciona para o freenode mas não funciona para o MSN. O que eu não sabia é que a variável erc-server-coding-system também pode ser uma função! Como o servidor do bitlbee é o localhost a configuração é trivial. erc-server-announced-name é uma variável dinâmica contendo o nome do servidor IRC sendo usado no momento.

(setq erc-server-coding-system
      '(lambda (target)
     (if (and erc-server-announced-name
          (string-match "localhost" erc-server-announced-name))
         '(iso-8859-1 . undecided)
       '(utf-8 . undecided))))

Essa função apenas checa se erc-server-announced-name bate com a string localhost, ou seja, se é o servidor do bitlbee, caso for seta o encoding para iso-8859-1, caso contrário usa utf8.

Test drive no EMMS

Filed under:Administração Linux, Emacs, LISP — posted by rwanderley on 11 January, 2008 @ 6:15 pm

Fazem algumas semanas venho testando o EMMS, um sistema multimidia para o Emacs.  Ele atua como frontend para aplicacoes como o mpg321, mplayer e mp3info.  Para quem nao gosta de sair do Emacs ele é perfeito, possui um bom browser, como praticamente tudo no Emacs é bastante configurável e permite que você gerenciar playlists de forma fácil.

Neste post irei mostrar como configurar o EMMS.  Estou usando GNU Emacs 22.1, portanto se você ainda estiver usando o Emacs 21 provavelmente algumas das configuracões a seguir poderão não funcionar.  Também será necessário pelo menos ter o mpg321 e o mp3info instalados.

Se você possui Debian ou Ubuntu é bastante fácil instalar, apenas digite apt-get install emms e pronto!  Em outras distros o processo pode ser diferente, provavelmente vocês terão que baixar os fontes direto do site do emms e instalar na mão, não irei falar desse tipo de instalacão aqui, mas os interessados podem postar suas dúvidas ou me mandar um e-mail.

A configuracão básica também é fácil.  Primeiro colocamos uma linha no .emacs informando onde está o arquivo de configuracao, apenas abra o seu ~/.emacs e coloque o seguinte em algum lugar no inicio do arquivo:

(load-file "~/.emacs.d/emms.el")

Essa linha apenas está dizendo ao emacs para carregar o arquivo ~/.emacs.d/emms.el quando o mesmo for iniciado.

Agora abra ou crie o arquivo ~/.emacs.d/emms.el e insira as seguintes linhas nele:

(require 'emms-setup) (emms-devel) (emms-default-players)

Digite M-x eval-buffer e pronto!  Seu EMMS está configurado.  Para testar digite M-x emms-play-directory e selecione um diretório contendo algumas mp3, o EMMS deverá comecar a tocar as MP3 e mostrar o nome da música na barra de estatus.É só isso?  Não, ainda tem muito mais, ainda tem o browser do emms, algumas funcões de expansão que permitem que você faca forward, pausa, use o dired para selecionar faixas, …  Mas vou dar um tempinho para vocês testarem essa versão básica antes de postar uma configuracão
mais avancada.

De volta ao GNU Emacs

Filed under:Administração Linux — posted by rwanderley on 6 July, 2007 @ 10:24 pm

Atualização: Para quem quiser um modo multimidia completo para o Emacs aconselho ver o EMMS, estou usando ele no momento, é muito bom!


Já faz algum tempinho (quase seis meses) que não atualizo este blog, muita coisa mudou de lá para cá. Voltei a usar exclusivamente GNU/Linux, tanto no trabalho como em casa, meu editor de textos (se é que pode chamar o Emacs de editor de textos :D) voltou a ser o GNU Emacs ao invés do TextMate; e é justamente sobre o Emacs que este Post trata.

Desde o início de 2001 venho usando Emacs no dia a dia, sempre como usuário, apenas decorando comandos e fazendo cut-and-paste de código elisp que achava na web e colando no meu .emacs; nem ao menos me esforçava para entender como o código funcionava. A uma semana atrás resolvi começar a ler o livro GNU Emacs Extensions, nele vi a seguinte frase:

Give a man a new Emacs command and he can hack for a night

Teach a man to make new Emacs commands and he can hack for a lifetime

Na minha atual experiência de uma semana estou vendo que esta frase é verdadeira, ainda sou um bebê com relacão a ELisp, mas quanto mais eu entendo mais vejo que esta é a linguagem perfeita para se brincar. Hoje irei mostrar um pequeno trexo de código ELisp que coloquei no meu .emacs para poder ficar manipulando o XMMS sem ter que sair do Emacs. Desta forma quando estou na sala ouvindo Pink Floyd e meu chefe entra eu não preciso mais parar o que estou editando, tentar achar o mouse, localizar a janela do XMMS e apertar o botão de pause, basta digitar a sequência C-x p t (escolhi o prefixo C-x p porque o p me lembra de player) para executar o comando xmms -t de dentro do Emacs e pausar o xmms pra mim. Pronto! Pausei o XMMS sem ter que mudar de contexto.

O código é extremamente simples e tem como função principal a xmms-exec que recebe um parâmetro como argumento e executa o XMMS passando tal parâmetro, segue o código:

[code lang=”lisp”]
(defun xmms-exec (arg)
“Executes XMMS with arg as argument.”
(call-process “/usr/bin/xmms”
nil ; infile
nil ; buffer
nil ; display
arg))
[/code]

O que este código faz é iniciar o xmms (/usr/bin/xmms) passando arg, o único parâmetro da funcão, como argumento. Depois de executado o processo é finalizado e pronto.

Agora basta criar uma função para cada ação que queiramos que o XMMS execute e criar atalhos para tal função, segue o exemplo da função para dar play/pause:

[code lang=”lisp”](defun xmms-toggle-pause ()
“Toggles play/pause in XMMS.”
(interactive)
(xmms-exec “-t”))

(global-set-key “\C-xpt” ‘xmms-toggle-pause)

[/code]

Pronto! Só isso, agora você já pode apertar C-x p t enquanto seu XMMS estiver tocando alguma música e ele irá pausar, aperte C-x p t de novo para continuar a música do ponto onde parou. Este exemplo é bem simples, posteriormente pretendo colocar algo mais complexo e corrigir a identacão do código (estou apanhando para botar o plugin CodeSnipset para funcionar com LISP).

Segue o código completo:

[code lang=”lisp”]

;; XMMS
(defun xmms-exec (arg)
“Executes XMMS with arg as argument.”
(call-process “/usr/bin/xmms”
nil ; infile
nil ; buffer
nil ; display
arg))

(defun xmms-toggle-pause ()
“Toggles play/pause in XMMS.”
(interactive)
(xmms-exec “-t”))

(defun xmms-rewind ()
“Rewind in XMMS.”
(interactive)
(xmms-exec “-r”))

(defun xmms-forward ()
“Forward in XMMS.”
(interactive)
(xmms-exec “-f”))

(defun xmms-play ()
“Play in XMMS.”
(interactive)
(xmms-exec “-p”))

(defun xmms-stop ()
“Stop in XMMS.”
(interactive)
(xmms-exec “-s”))

;; Global keyboard shortcuts
(global-set-key “\C-xpt” ‘xmms-toggle-pause)
(global-set-key “\C-xpr” ‘xmms-rewind)
(global-set-key “\C-xpf” ‘xmms-forward)
(global-set-key “\C-xpp” ‘xmms-play)
(global-set-key “\C-xps” ‘xmms-stop)

[/code]

Testando o TextMate

Filed under:Administração Linux — posted by rwanderley on 5 January, 2007 @ 4:55 pm

A uns dois meses deixei de usar o GNU/Linux e migrei para o Mac OS X no Desktop. No início eu o usava basicamente por causa da interface gráfica - eu tinha os recursos gráficos e a tecla F9 do Mac, mas praticamente todas as aplicações que eu usava eram as mesmas que usava no Linux; um terminal virtual, GIMP, Emacs (versão Aqua), GAIM, …

Praticamente todas as minhas edições continuavam sendo feitas no GNU Emacs. Um belo dia o pessoal aqui da Diginet começou a me mostrar o TextMate e resolvi testá-lo. De início percebi logo a semelhanças com o Emacs. As teclas de navegação são as mesmas, possui módulos para praticamente tudo (inclusive este texto foi Postado no blog usando o TextMate) e reconhece todas as linguagens de Programação que conheço.

A vantagem do TextMate para mim é que ele é mais fácil de se estender, em menos de duas horas aprendi como adicionar uma linguagem nova nele e criei duas linguagens para reconhecer a sintaxe e palavras chaves dos arquivos main.cf e master.cf do Postfix. A criação de macros também é uma mamata, apenas bote o TextMate para gravar uma seqüência de teclas e pronto! Tá gerada a sua macro.

Ele também tem suporte a abas, navegador no sistema de arquivos e suporte nativo ao subversion. Coisas que eu tinha no Emacs usando o Emacs Code Browser (ecb), mas no TextMate essas coisas funcionam de forma mais elegante e eficiente na minha opinião.

O que estou sentindo falta no momento é um módulo equivalente ao tramp do Emacs, esse módulo permite que você edite arquivos remotos, acessando-os via ssh ou ftp por exemplo.

Bom, se você está migrando para o Mac e é usuário do Emacs teste o TextMate e veja se gosta, se quiser continuar com o Emacs recomendo a versão Aqua.

II EPSL-RN

Filed under:Administração Linux — posted by rwanderley on 30 September, 2006 @ 12:38 am

Dias 6 e 7 deste mês teremos o II EPSL, encontro potiguar de Software Livre. Este encontro visa reunir a comunidade com o objetivo de discutir Software Livre. Este ano teremos a presença de profissionais de todo o brasil que irão contribuir com mini-cursos e palestras. Eu estarei me aventurando em duas palestras, “Extendendo o SNMP” e “Conhecendo o inotify”.

Se você se interessar por Software Livre ou estiver interessado em conhecer apareça por lá!

Boas Notícias!

Filed under:Administração Linux, Sistemas Operacionais — posted by rwanderley on 28 August, 2006 @ 9:41 am
To D-BUS peoble, every problem seems like a D-BUS problem.
— Eric Troan
Ótimas notícias hoje! Primeiro o ReactOS completa 10 anos lançando a versão 0.3.0. Para quem não conhece o ReactOS é um sistema operacional livre que visa prover um sistema compatível com o Windows XP, fornecendo compatibilidade binária tanto para aplicações como para drivers.
A galera do Ubuntu inova de novo. Desta vez eles estão planejando substituir o init pelo upstart. Essa mudança visa fazer com que o processo #1 do Ubuntu se adapte melhor ao novo tipo de ambiente que estamos, no qual discos, placas de rede, … podem ser adicionados e removidos a qualquer momento. O upstart usa eventos para se comunicar com os daemons e dispositivos e deve estar disponível já no lançamento do edgy.
Essa agora não é notícia, mas esse artigo descreve um novo tipo de sistema operacional que se adapta ao usuário. Muito interessante, não deixe de ler a segunda parte do artigo que descreve as desvantagens deste sistema operacional!

O bom e velho vi(m) x GNU Emacs

Filed under:Administração Linux — posted by rwanderley on 19 July, 2006 @ 10:52 pm

Mais uma vez a discussão Vi x GNU Emacs surgiu hoje. Os argumentos continuam os mesmos, GNU Emacs é bom por que nele você tem a opção de fazer praticamente tudo, ler e-mail, navegar na web, navegar no sistema de arquivos, organizar suas tarefas, usar como agenda, como ASCII drawer e também como editor de texto :P

Esse é justamente o mesmo argumento que usam contra o GNU Emacs, dizem: “GNU Emacs tá mais para um Sistema Operacional que para um editor de textos…”.

Bom, eu pessoalmente adoro o Emacs, principalmente como editor de textos. Quando usado com o Emacs Code Browser (ecb) ele vira uma excelente ferramenta de programação. Segue um screenshot:

Screenshot do emacs com ecb

Também uso o vim as vezes e até que não é um sacrifício tão grande… Só não gosto muito dos dois modos de edição e acho um pouquinho simples, embora as versões mais novas do vim possuirem muitos recursos e eu não conhecer nem 1% deles…
Cada um tem seu gosto, teste os dois e escolha o seu!


next page


image: detail of installation by Bronwyn Lace