Configurando Ubuntu Linux como media server para Xbox360
1 de maio de 2010 21 Comentários
Olá!
Já faz algum tempo que eu não posto nada no blog, e o motivo é que realmente não estava com assunto para postar. Porém, agora tem um bom assunto para postar.
Como alguns sabem, tenho vários consoles de videogames, entre eles já citados um Nintendo DS (na verdade agora tenho um Nintendo DSi mais dois Nintendo DS) e um PSP. Como não poderia deixar de ser, tenho meus consoles de mesa: um PS2, um Wii e um XBOX 360.
O último foi uma aquisição que fiz com o objetivo duplo de jogar (obviamente) e de utilizar como Media Center. Mas como tudo que envolve a Microsoft, descobri que existe um trabalho bastante significativo para colocar vídeos para rodar no XBOX 360, quem dirá disponibilizar esse vídeos em modo Media Server (ou seja, de modo que os vídeos estejam no computador caseiro e sejam buscados pelo XBOX via rede)
Em parte isso se deve a problemas de protocolo e em parte a formatos de arquivo. Então iremos dividir o artigo em duas partes. A primeira, sobre como codificar vídeos para o formato do XBOX 360, e a segunda sobre como disponibilizar os vídeos codificados da maneira correta via rede.
Codificando vídeos para o formato do XBOX 360
O XBOX 360 possui formatos muito determinados sobre como os videos devem ser codificados para ele. No caso, adotaremos um enocde para WMV (Windows Media Video), e utilizaremos uma ferramenta gráfica para Linux, o Hyper Video Converter, que nada mais e que um frontend para MPlayer/Mencoder e ffmpeg. Procure e baixe no site o pacote .deb ou .rpm e instale conforme a suia distro. Ele irá criar um ícone no Menu K /Aplicações. Abra o programa. Ao abrir, uma janela como a abaixo irá aparecer.
Primeira coisa: você vai precisar criar um diretório onde você irá jogar seus arquivos encodados. No meu caso: /home/teste/video. Isso será importante no segundo estágio, quando formos disponibilizar os vídeos via rede. Por agora, escolha qualquer pasta. Em encoder, escolha ffmpeg. Iremos trabalhar com ele por enquanto. Clique em “Encoder Settings”. Você receberá uma janela como a seguinte:
No caso, ele já está com todas as informações sobre como o vídeo deve ser codificado, segundo o link apresentado anteriormente.No caso, optamos por encodar o vídeo em formato WMV2 em Video Codec, que é o único que permite encodar vídeos com saída em FullHD para ele. De qualquer modo, utilizaremos a resoloção como 720p, setada em Video Size (perceba que ela foi colocada em Custom e o valor digitado na caixa de texto em baixo). O Aspect foi deixado em 1:1 (acredito que isso permita que o Aspect Ratio original dos vídeos a serem encodados, sem os distorcer). Setamos o Container Format para ASF. Isso é importante pois o formato ASF é o container padrão para o Windows Media Video. O Video Bitrate pode ser definido para qualquer valor, mas acredito que entre 5000 a 10000 kbps é o suficiente. Menor bitrate implica em maior granulação, enquanto um Bitrate menor pode servir apenas para aumentar demais o arquivo (que ficará enorme). Deixe Target em default.pois ele serve apenas para alguns pré-defs relacionados com DVD (portanto, não é uma boa idéia mexer aí). O Audio Format ddverá ser configurado para wma2 (Windows Media Audio versão 2). Audio Bitrate pode ser deixado em qualquer valor, então 128 kbps deve ser um valor adequado (caso encode shows, pode desejar aumentar esse valor, conforme a qualidade das fontes originais). Sample Rate não têm restrições também, então deixamos em 44100 bps, que é o valor padrão para CD ou DVD.
Precisaremos de algumas configurações mais avançada, então clique em Advanced Settings para que a janela pareça com a seguinte:
A única coisa que precisamos deifinir aqui é o Framerate. Clique na caixa correspondente e defina o valor. No caso atual meu, defini como 25 fps. Se desejar, o limite é de 30 fps conforme o link apresentado anteriormente.
Na aba Misc. Video Settings, existem poucas opções interessantes.
Eu uso por costume 2-pass encoding, mas segundo alguns não faz a menor diferença. Se tiver dúvidas, não mexa nessa aba e aceite os padrões, clicando em OK ao terminar. Clique em Open Files para adicionar videos para conversão. Se selecionar mais de um vídeo, selecione a opção convert all input. Mude a Extensão para wmv e clique em Create Command. Ele irá apresentar na caixa de diálogo de baixo a linha de comando a ser executada. Clique em Convert e aguarde.
A conversão demorará significativamente e, além disso, gerará arquivos enormes (700 MB para 20 min), portanto tenha muito HD livre ao tentar isso ou jogue a saída para um pendrive. Na realidade, precisaremos usar um Pendrive depois do vídeo convertido.
Testando o vídeo
Uma vez que você tenha codificado seu vídeo (lembre-se de ter todos os codecs instalados em sua máquina, inclusive – e especialmente – os de WMV), o vídeo será colocado na pasta indicada em Output Directory, com o nome original e extensão definida em Extension (no nosso caso, wmv). Copie o arquivo para um pendrive e leve ao XBOX 360. Conecte o pendrive por uma das entradas USB, seja as traseiras (próximas à entrada de rede) ou as dianteiras (em baixo do botão de força, protegidas por uma tampa). Ligue o XBOX.
No Dashboardo do XBOX 360, escolha a opção “Biblioteca de Vídeo“. Aperte A.
A opção “Dispositivo Portátil” deverá estar acesa. Selecione-a e navegue no conteúdo do pendrive até achar o arquivo codificado. Selecione-o e clique em Executar. Ele deverá ser exibido. Caso não seja, verifique as configurações de vídeo anteriormente citadas e modifique-as até que o resultado final seja de seu agrado.
Para facilitar a vida, o Hyper Video Converter aceita que você salve Profiles de configurações de vídeo. Uma vez que você tenha a opção adequada, salve-a clicando em Save Profile no Encoder Settings e dê um nome ao mesmo na janela que irá aparecer (ele não sobrescreve profiles existentes). Para carregar um profile, clique em Manage Profiles na janela principal.
Escolha o programa utilizado (no nosso caso, ffmpeg) selecione o profile desejado e clique em Load.
Ok… Uma vez que o vídeo esteja funcionando corretamente, você irá se pegar pensando no tamanho do vídeo gerado e em como isso é dose de ter que ser feito o tempo todo. No caso, vamos utilizar o uShare como servidor de mídia (Media Server), por meio do protocolo uPnP A/V.
Cnfigurando o Media Center
Primeiro, instale como padrão o uShare conforme sua distro. A maioria das distros modernas oferecem o uShare a partir de seus repositórios padrão, assim como suas dependências. Use os comandos adequados para instalar o uShare.
Como root (ou usando sudo), abra um editor de arquvios e procure o arquivo /etc/ushare.conf. Será necessárias algumas modificações nesse arquivo para disponibilizar os vídeos via rede. O arquivo irá se parecer com algo como abaixo.
# /etc/ushare.conf
# Edit this file with 'dpkg-reconfigure ushare'
# Configuration file for uShare
# uShare UPnP Friendly Name (default is 'uShare').
USHARE_NAME=hufflepuff
# Interface to listen to (default is eth0)
# Ex : USHARE_IFACE=eth1
USHARE_IFACE=eth1
# Port to listen to (default is random from IANA Dynamic Ports range)
# Ex : USHARE_PORT=49200
USHARE_PORT=
# Port to listen for Telnet connections
# Ex : USHARE_TELNET_PORT=1337
USHARE_TELNET_PORT=
# Directories to be shared (space or CSV list).
# Ex: USHARE_DIR=/dir1,/dir2
USHARE_DIR=/home/teste/videos
# Use to override what happens when iconv fails to parse a file name.
# The default uShare behaviour is to not add the entry in the media list
# This option overrides that behaviour and adds the non-iconv'ed string into
# the media list, with the assumption that the renderer will be able to
# handle it. Devices like Noxon 2 have no problem with strings being passed
# as is. (Umlauts for all!)
#
# Options are TRUE/YES/1 for override and anything else for default behaviour
USHARE_OVERRIDE_ICONV_ERR=yes
# Enable Web interface (yes/no)
USHARE_ENABLE_WEB=yes
# Enable Telnet control interface (yes/no)
USHARE_ENABLE_TELNET=no
# Use XboX 360 compatibility mode (yes/no)
USHARE_ENABLE_XBOX=yes
# Use DLNA profile (yes/no)
# This is needed for PlayStation3 to work (among other devices)
USHARE_ENABLE_DLNA=no
A maior parte das conbfigurações podem ser deixadas no padrão da distro. No caso, vamos falar das configurações que devem ser modificadas.
USHARE_NAME=hufflepuff -
Essa linha informa o nome pelo qual sua máquina será conhecida como Media Center. Escolha o nome que lhe aprouver;USHARE_IFACE=eth1 -
Essa linha indica qual interface de rede será usada como saída para o seu Media Center. A não ser que você tenha várias placas de rede e/ou algum problema com a interface de rede padrão (eth0), pode deixar em branco. Caso contrário, escolha a inferface a ser utilizada, lembrando que o XBOX 360 deve estar conectado fisicamente à estrutura de rede desejada;USHARE_DIR=/home/teste/video -
Essa linha é uma das que devem ser obrigatoriamente modificada. Ela indica onde o uShare deverá buscar arquivos de mídia. No meu caso, /home/teste/video. Lembre-se de dar o mesmo caminho dado no Hyper Video Converter, ou então selecionar vários caminhos, separando-os por vírgulas.USHARE_ENABLE_WEB=yes -
Essa linha é útli ao administrar os compartlhamentos a serem buscados. Se você ativar essa opção, a janela de administração do uShare estará disponível emhttp://<servidor>:<porta>/web/ushare.html
, onde<servidor>
representa o IP ou DNS do servidor uShare (repare que esse nome não precisa ser o mesmo e pode não ter relação com o nome uPnP indicado em USHARE_NAME) e<porta>
é a porta definida pelo uShare para atender (normalmente 49152, modificada em USHARE_PORT);
USHARE_ENABLE_TELNET=no -
Essa linha tem a mesma funcionalidade e uso da anterior, USHARE_ENABLE_WEB, mas usando Telnet ao invés do navegador. Como isso pode ser um potencial furo de segurança (uma vez que o Telnet não é um protocolo conhecido pela segurança), é recomendável deixar essa opção emno
;- USHARE_ENABLE_XBOX=yes – Essa opção é a que define o suporte para o XBOX 360 e deve estar obrigatoriamente em
yes
; - USHARE_ENABLE_DLNA=no – Essa opção define o suporte para alguns recursos avançados em uPnP A/V. Essa opção é usada em especial no PS3 e em outros Media Centers, mas usar essa opção no XBOX 360 apenas serve para confundir o sistema. No caso, deixe-a em
no
se for usar o XBOX 360 como Media Center;
Com isso definimos toda a configuração necessária para o mesmo no Linux. Inicie o servidor conforme a distro (normalmente service ushare start
como root). Nota: no Ubuntu por algum motivo o uShare ignora sumariamente a opção USHARE_ENABLE_XBOX=yes, portanto devemos forçar o suporte a XBOX 360. Para isso, inicie o uShare em um terminal ushare -x
. Antes disso, pare o servidor uShare (normalmente com sudo service ushare stop). O uShare pode ser iniciado sem obrigatoriedade de superusuário por usar portas TCP altas (acima de 1024). Mantenha o terminal aberto enquanto não estiver o usando. Como opção, pode ser usado o comando nohup ushare -x & para fazer com que o uShare rode em backgroung.
Configuração no XBOX 360:
Primeiro, ligue o XBOX 360 à rede onde o Media Server uShare está ligado (nomralmente conectando um cabo entre o roteador da rede do uShare e o XBOX 360). Em seguida, ligue o XBOX 360 e vá em “Configurações de Sistema“.
Vá em Configurações de Rede.
Selecione Testar Conexão no PC. Ele poderá dar um aviso de desconectar os usuários do videogame. Confirme e aguarde. Ele deverá aparecer uma máquina com o nome dado por voce em USHARE_NAME.
Tudo OK, aperte A e volte para o Dashboard e escolha a opção “Biblioteca de Vídeo“. Aperte A.
Deve ter uma opção com o nome da sua máquina. Escolha-a. Uma lista dos vídeos disponíveis na sua pasta deve aparecer. Atenção: ele não fará distinção de pastas, colocando todo o conteúdo dentro da pasta espalhado. Escolha o vídeo desejado e clique em Reproduzir:
E aproveite os seus vídeos. Utilizar o XBOX 360 como Media Center dá um certo trabalho, mas vale a pena!
PS: As telas do XBOX 360 foram fotografadas com uma câmera FujiFilm FinePix s5100fd com alta qualidade a partir de uma teve LCD 32″ buster 720p.
Update: Caso encode vídeos em 4:3 (Full Screem), configure o Video Size para 1024×768. O XBOX 360 automaticamente centraliza a imagem em uma TV Widescreen. Não utilize o Video Size definido anteriormente, pois o vídeo irá ser “expandido”, e a imagem ficará distorcida.
=-=-=-=-=
Powered by Blogilo
Não vou me rebaixar a usar um hardware da Microsoft pra isso, não concordo com essa matéria
Sem problemas. Você está no direito de não concordar. Mas eu achei que outras pessoas teriam interesse em ver esse artigo.
Utilize o P3 media server:
http://code.google.com/p/ps3mediaserver/
Apesar do nome, PS3, funciona mto bem com Xbox 360 e faz o merge de legenda online, economizando processamento.
Também distribui fotos e música.
São mentalidades como essa do Marcelo Pazzo que nos mostram como ainda está imaturo o mundo da tecnologia. É desse tipo de comentário infantil que o mundo open source não necessita.
gostei da matéria, mas não sei se é necessário realmente codificar os videos pra wmv
sei que o xbox consegue ler arquivos .mp4, .avi (divx e xvid) e mais algumas extenções específicas da microsoft
Acho que seria interessante testar os videos antes e só transcodificar aqueles que não rodarem.
(se você tiver algum windows 7 com media center na rede nem precisaria se preocupar já que xbox reconheceria todos os formatos de video, inclusive mkv)
Até onde percebi, o uShare não faz transconding on-the-fly e não é compatível com o DLNA como usado no XBOX 360.
Realmente, o uShare não transcodifica, mas o que eu quis dizer é que, se você tiver arquivos .avi ou .divx o uShare consegue enviá-los diretamente pro xbox sem precisar tranforma-los em wmv.
Bem, eu não testei a opção de codificar vídeos AVI/DivX, mas nos links que citei estão todas as specs para configurar os vídeos. Creio que, uma vez codificados corretamente, os videos AVI/DivX podem ser transmitidos pelo uShare
Já testei vários, e atualmente uso um setup um tanto estranho:
Twonkymedia para música e o PS3 media Server para videos/transcodificação on the fly. 😉
Gostei muito do post, tenho um xbox360 e sofro do mesmo problema…
Já tinha até desistido do assunto mais vou tentar esse em casa.
Não ligue para esses comentários como o Marcelo, eu me considero um user de linux, mas gosto do xbox por ter bons jogos e com possibilidade de ter jogos muito baratos se estiver disposto a arriscar.
Continue com a iniciativa temos que encontrar formas de nos adaptarmos ao mundo para depois transformalo
O cara entra no blog pra falar merda (Marcelo Pazzo). Enfim, eu tenho xbox 360 e uso linux a um bom tempo. Não sei o que tem haver uma coisa com a outra mas o cara (Marcelo Pazzo) sentiu que deveria falar essa merda. Bom, excelente post, parece ser uma boa alternativa a outros media center existentes. E se o camarada (Marcelo Pazzo) souber de algum console de jogos desse nível que seja livre, tanto em software como em hardware manda pra gente. ¬¬
Obrigado pelo apoio. Não esquento a cabeça com o Marcelo: tá no direito dele “não se rebaixar” (se ele pensa assim). Mas o mais importante é ver que o post é útil para outras pessoas.
nice job man!
estava querendo fazer isso em minha casa já faz um tempo, com esse tutorial já vai me economizar um bom tempo.
vlw!
Pingback: Configuración de Ubuntu como un servidor de Xbox360 | LINUX MAS
Estava justamente procurando por isso! Só que não consegui nada. Usando esse programa e essas opções, só consigo visualizar 1000 arquivos. E não adianta mudar a opção (Artista, Lista de Reprodução, Gênero…) que sempre aparece a mesma lista, com os mesmos 1000 arquivos. Em Biblioteca de vídeos funciona normal.
Ótimo post! 😀
Aconselho que você coloque os vídeos encodados em uma pasta específica só para ele e que aponte o uShare a buscar os arquivos só nela (opção USHARE_DIR do /etc/ushare.conf). Isso impedirá o uShare de apresentar outros arquivos que só serviriam para complicar a visualização.
Mas o problema não acontece com os vídeos. E sim com as músicas em mp3. Qualquer das opções que eu escolha no Xbox, sempre mostram os mesmos arquivos. E todas as opções mostram somente 1000 arquivos.
Muito bom o artigo, muito detalhado e simples…
Mas e com relação as legendas? Como adicionar a legenda ao video? Ainda estou perdido sobre como fazer…
Nesse caso, você precisará antes da conversão fazer um passo adicional, chamado “queima” da legenda. Basicamente, você vai gravar um arquivo de vídeo incluindo a legenda “fisicamente” na imagem (ou seja, sem precisar do arquivo de legenda)
Os links abaixo mostram o processo de “queima” da legenda. Faça isso antes de passar o arquivo de imagem
http://ubuntuforums.org/showthread.php?t=1155877
http://forums.fedoraforum.org/showthread.php?t=222688
Olhe o primeiro link com prioridade, ele mostra o processo bem claramente. Qualquer dúvida, procure “burning subtitles” no Google
Em 19-07-2010 02:05,
Marcelo, não sou M$ lover boy, mas não vejo essa matéria como rebaixar o Linux. E sim mostrar, mais uma vez, que o Linux tem alternativas que atendem as diversas necessidades do usuário. E de certo modo com esse uso pode até mostrar sua superioridade, se com o tempo forem feitos comparativos de performance usando o Linux como Media Center.
Pingback: Semana de enlaces 2010 #18 | Ubuntizando.com