MAL - Memória Auxiliar do Lutieri

quarta-feira, março 26, 2008

Miniaturas de RMVB no nautilus

Isso me deixava encucado desde que instalei o gentoo no note. As miniaturas de arquivos RMVB não eram geradas. Eu sei que é perfumaria(como diriam alguns) mas eu acho simpática a miniatura do vídeo como ícone.

Pra começar e ajudar qualquer um que encontrou uma mensagem de erro e foi correndo ao google vou colocar o erro que aparece quando eu abro o nautilus a partir do terminal como root.

** Message: don't know how to handle video/x-pn-realvideo, rmversion=(int)4, format=(int)1073758208, subformat=(int)17305632, width=(int)640, height=(int)468, framerate=(fraction)30/1
totem-video-thumbnailer: 'file:///home/lutieri/mnie/2nd%20Season/2x06_my_name_is_earl.rmvb' isn't thumbnailable
Reason: Media contains no supported video streams.
Bom.. como pode-se ver quem tenta criar o thumbnail(miniatura em tupiguarani) é o totem-video-thumbnailer.

Pois bem, o totem não carrega rmvb. Uso o RealPlayer(que dá umas trancadas) mas normalmente o mplayer.
Ouvi uma história por aí de que o totem xine carrega sim rmvb. Mas por algum motivo não tá disponível no gentoo.

Bom a solução como era de se esperar encontrei em um fórum de ubuntu. Aliás, falou em problemas com desktop tu vai cair num fórum de ubuntu e não tem choro hehe. Mas não tem problema é linux.

Crie um arquivo qualquer em um lugar qualquer com o conteúdo a seguir. Por exemplo:

/tmp/rmvb.schema



<gconfschemafile>
<schemalist>

<schema>
<key>/schemas/desktop/gnome/thumbnailers/application@octet-stream/enable</key>
<applyto>/desktop/gnome/thumbnailers/application@octet-stream/enable</applyto>
<owner>ooo2-thumb</owner>
<type>bool</type>
<default>true</default>
<locale name="C">
<short></short>
<long></long>
</locale>
</schema>


<schema>
<key>/schemas/desktop/gnome/thumbnailers/application@octet-stream/command</key>
<applyto>/desktop/gnome/thumbnailers/application@octet-stream/command</applyto>
<owner>ooo2-thumb</owner>
<type>string</type>
<default>/usr/bin/mplayer-video-thum.sh -s %s %u %o</default>
<locale name="C">
<short></short>
<long></long>
</locale>
</schema>

<schema>
<key>/schemas/desktop/gnome/thumbnailers/application@vnd.rn-realmedia/enable</key>
<applyto>/desktop/gnome/thumbnailers/application@vnd.rn-realmedia/enable</applyto>
<owner>ooo2-thumb</owner>
<type>bool</type>
<default>true</default>
<locale name="C">
<short></short>
<long></long>
</locale>
</schema>


<schema>
<key>/schemas/desktop/gnome/thumbnailers/application@vnd.rn-realmedia/command</key>
<applyto>/desktop/gnome/thumbnailers/application@vnd.rn-realmedia/command</applyto>
<owner>ooo2-thumb</owner>
<type>string</type>
<default>/usr/bin/mplayer-video-thum.sh -s %s %u %o</default>
<locale name="C">
<short></short>
<long></long>
</locale>
</schema>

</schemalist>
</gconfschemafile>

Agora já importe ele com o seu usuário. Isso é importante de salientar: Existe um diretório .gconf no home de cada usuário. Caso ele seja apagado quando o processo gconfd for reiniciado ele recria essa pasta com os padrões que devem estar em /usr/share/alguma/coisa. Portanto rode o seguinte comando com o usuário que deseja ver as miniaturas:

gconftool-2 --install-schema-file=~/rmvb.schema

UPDATE:
o comando acima nao funcionou, por isso alterei o diretorio para /tmp ao inves de ~/
gconftool-2 --install-schema-file=/tmp/rmvb.schema>


Agora crie o seguinte script /usr/bin/mplayer-video-thum.sh:


#!/bin/bash
file="$3"
file=$(echo "$file" | sed -e 's/%20/ /g' | sed -e 's/%26/\&/g' | sed -e 's/%5B/\[/g' | sed -e 's/%5D/\]/g' | sed -e 's/%40/\@/g' )
cd /tmp
LENGTH=$(mplayer -nocache -identify -vo null -ao null -frames 0 "$file" | awk -F= '/ID_LENGTH/ {print $2}'| awk -F. '{print $1}')
START=$((($LENGTH*15)/100))
END=$((($LENGTH*70)/100))
start=$(($START+($RANDOM%($END-$START+1))))
/usr/bin/mplayer -nocache -vf scale -vo jpeg -ao null -ss "$start" -frames 4 "$file"
rm -f 00000001.jpg 00000002.jpg 00000003.jpg
/usr/bin/mogrify -resize "$2" -draw 'image Over 0,0 10,100 "/usr/share/apps/videothumbnail/filmholes-big-left.png"' -draw 'image Over 118,0 10,100 "/usr/share/apps/videothumbnail/filmholes-big-right.png"' 00000004.jpg
cd -
mv /tmp/00000004.jpg "$4"


Permissão de execução nesse script:

chmod +x /usr/bin/mplayer-video-thum.sh

São utilizadas também algumas imagens para montar a miniatura. Colocarei as mesmas aqui com os respectivos nomes de arquivo. Elas devem ser salvas nessa pasta que será criada agora:

mkdir -p /usr/share/apps/videothumbnail/


Clique para fazer o download:

filmholes-big-left.png


filmholes-big-right.png


Feito isso, teoricamente, está tudo funcionado. No tutorial, do ser humano que montou o script acima, diz para reiniciar o nautilus com killall -9 nautilus. Porém pra mim não foi o necessário. Tive que reiniciar também o gconfd com o seguinte comando: gconftool-2 --shutdown && gconftool-2 --spawn
Tive problemas também com aqueles arquivos que já tinham carregado o ícone padrão, isso quer dizer, a miniatura tinha falhado. Ou se renomeia o arquivo ou apague a pasta ~/.thumbnails que ele vai se obrigar a recriar.


Podemos ver acima que o screenshot foi tirado enquanto carregavam os ícones.

A fonte foi essa: http://ubuntuforums.org/showthread.php?t=278162
Aliás, inseri aqui os scripts como texto e as imagens pois penso que não estarão mais disponíveis pra sempre no site do cara. Mas caso queira facilitar a vida acesse a fonte e baixa um bz2 de lá com os scripts e imagens ;-)

Marcadores: ,

2 Comentários:

  • It doesn't work to me :S
    I'm using Ubuntu Intrepid Ibex

    By Anonymous Anônimo, at 11/10/2008, 21:17  

  • I just accomplished this steps above and worked. I had to restart the gnome.
    Also, there was one mistake in one of the commands. But it's already corrected. Take a look in the update

    By Blogger Lutieri G. B., at 12/10/2008, 16:01  

Postar um comentário

<< Home



Chat with Lutieri G. B.

Subscribe in a reader