Posts de Maio 17th, 2008|Página de posts diários

Arquivos .3gp no Mplayer

Hoje precisei copiar alguns vídeos do celular da minha cunhada. A gente queria converter os vídeos e postar no Youtube. Todos os vídeos do celular estavam no formato 3gp e ao abrí-los no mplayer o vídeo foi reproduzido porém o som estava mudo. Decidi executar o mplayer pela linha de comando para verificar as mensagens de erro e descobri que o mplayer não conseguia encontrar o codec libamr_nb e por isso não reproduzia o som.

Ao fazer um pesquisa no Google, descobri as peças que estavam faltando.

O formato de arquivo 3gp foi definido pelo grupo 3GPP – 3rd Generation Partnership Project que é composto por vários fabricantes da área de telecomunicações, afim de ditar os padrões a serem usados nos aparelhos de terceira geração, como os celulares GSM.

Para ativar o suporte à arquivos 3gp no mplayer dentro do Slackware, nós podemos usar os scripts disponíveis no site Slackbuilds.org. Você precisa baixar os arquivos referentes às bibliotecas amrnb e amrwb. Antes de executar o Slackbuild da biblioteca amrnb você deve baixar o arquivo 26104-700.zip no mesmo diretório do script Slackbuild. Já para a biblioteca amrwb você deve baixar o arquivo 26204-700.zip no mesmo diretório do Slackbuild antes de executar o script para a geração do pacote.

Depois que você instalar os pacotes para as bibliotecas amrnb e amrwb, você deve recompilar o mplayer para que ele detecte as novas bibliotecas e passe a usá-las. Para fazer isso você também pode usar Slackbuilds como expliquei no meu post Mplayer no Slackware 12.1 com Slackbuilds.

Até mais!

Listando pacotes no Slackware

Boa tarde.

Todos os pacotes que são instalados no Slackware ficam guardados em /var/log/packages. Isso significa que sempre que você quiser saber se tem um determinado pacote instalado você deve listar o conteúdo do diretório /var/log/packages e procurar pelo pacote desejado. Essa é a forma mais rápida, a outra forma de consultar os pacotes instalados é executar como root a ferramenta pkgtool e ir na opção view, então pkgtool listará todos os pacotes instalados.

Como eu já estava cansado de ficar executando o comando “ls /var/log/packages/pacotetal*” decidi criar um script que me ajudasse nessa tarefa. Eu queria algo bem simples, algo bem parecido com o comando ls. Então criei o script abaixo e o nomeei lspkg. Dá uma olhada no script:

#!/bin/bash
cd /var/log/packages/
package_list=`echo $* | sed s/" "/"* "/g | sed s/$/$"*"/ `
for package in $package_list ; do
	if [ -e $package ] ;
	then
	number_of_fields=`echo $package | gawk -F "-" '{ split($0,fields); print length(fields) }'`
		if [ $number_of_fields == 5 ] ;
		then
			name=`echo $package | cut -d - -f 1,2`
			version=`echo $package | cut -d - -f 3`
			arch=`echo $package | cut -d - -f 4`
			build=`echo $package | cut -d - -f 5`
		else
			name=`echo $package | cut -d - -f 1`
			version=`echo $package | cut -d - -f 2`
			arch=`echo $package | cut -d - -f 3`
			build=`echo $package | cut -d - -f 4`
		fi
			echo -e -n "Package: 33[1m$name33[0m - "
			echo -n  "version: $version - "
			echo -n "arch: $arch - "
			echo "build: $build"
	else
		package_not_found=`echo $package | tr -d "*"`
		echo -e "The package 33[1m$package_not_found was not found33[0m in your system."
	fi
done

Agora é só copiar esse código para um arquivo de texto e salvá-lo como lspkg, você também deve dar permissão de execução para esse arquivo e copiá-lo para /usr/bin.

Depois de fazer o procedimento acim, faça um teste. Veja o resultado quando executei na minha máquina:

bash-3.1$ lspkg ruby bash pkgtoo teste
Package: ruby – version: 1.8.6_p114 – arch: i486 – build: 1
Package: bash – version: 3.1.017 – arch: i486 – build: 2
Package: pkgtools – version: 12.1.0 – arch: noarch – build: 7
The package teste was not found in your system.

Caso você tenha alguma sugestão para melhorar esse script faça o seu comentário.

Até mais!