Infra - Linux

Blu-ray: Reproduzindo, copiando, ripando e assistindo no GNU/Linux

Polêmicas a parte, neste artigo veremos como reproduzir, copiar, ripar e assistir vídeos em discos blu-ray. Ressalto que este documento não tem como objetivo promover a pirataria e sim, proporcionar ao usuários dos discos originais assistirem à cópia dos seus filmes legais, assim evitando danos físicos na mídia original.

por Alessandro de Oliveira Faria



Introdução

O Blu-ray (BD) é o sucessor do DVD, utiliza o laser azul-violeta cujo comprimento de onda é 405 nm (nanômetros). Com seu comprimento de onda menor comparado ao laser vermelho (640 nm). O seu feixe menor focaliza com maior precisão a leitura das informações armazenadas no disco com cavidades de 0,15µm (mícron). Onde 1 mícron corresponde à 10 ^-6 metros de comprimento, ou seja duas vezes menores que a cavidade de um disco DVD.

Como se não bastasse, o Blu-ray também reduziu o passo de trilha de 0,74µm para 0,32µm. Sendo assim,com estas características menores a sua capacidade chega a 25 Gb de armazenamento em apenas uma única camada camada simples, e claro consequentemente 50 Gb em dupla camada (cinco vezes comparada a camada de um DVD). Vale a pena mencionar sobre o aumento da velocidade de rotação, que deriva na maior varredura de 36 Mbit (1x). A sua estrutura interna é diferente comparada ao disco DVD, embora possua dimensões idênticas e a estrutura de arquivos no disco é a UDF 2.5.
Linux: Blu-ray: Reproduzindo, copiando e assistindo no GNU/Linux.
Três codecs de compressão de vídeo estão definidos oficialmente para os discos Blu-ray:
  • MPEG-2 HL@MP (uma variação dos codecs MPEG 2, usados nos DVDs)
  • AVC (MPEG-4)
  • VC-1 (a versão padronizada da SMPTE do Microsoft Windows Media 9)

Abaixo os formatos de áudio especificados para os discos Blu-ray:
  • LPCM
  • Dolby Digital
  • Dolby Digital
  • Dolby TrueHD / MLP Lossless
  • DTS digital surround
  • DTS HD

Mais detalhes na tabela comparativa abaixo:
Linux: Blu-ray: Reproduzindo, copiando e assistindo no GNU/Linux.

Proteção contra cópia

O AACS (Sistema Avançado de Conteúdo de Acesso) foi criado em conjunto com grandes empresas, entre elas estão a Disney, Sony, Microsoft, IBM, Intel, Panasonic, Toshiba e Warner Brothers. O Disco Blu-ray apresenta recursos de distribuição digital e de acesso dos usuários ao conteúdo armazenado. Na verdade, é o sucessor e/ou evolução do sistema CSS utilizados nos DVDs.

O principal diferencial do AACS, é proporcionar a transferência do conteúdo do disco para dispositivos, tais como servidores de mídia doméstica, garantindo o uso legal do conteúdo. O AACS pode ser instalado em dispositivos offline ou on-line para proteger o conteúdo contra cópias analógicas ou digitais ilegais.

Fontes:


Copiando um vídeo Blu-ray para o HD

ATENÇÃO: A utilização indevida do conteúdo desde documento não é de responsabilidade do Viva o Linux ou do autor.

Para copiar um vídeo Blu-ray, utilizaremos o Dumphd. Um programa que possui a funcionalidade semelhante a do dvdcss, ou seja descriptografar o padrão Blu-Ray. Vale a pena mencionar que um disco Blu-Ray carrega consigo em torno de 40Gb de espaço em disco, então precisaremos no mínimo do dobro de espaço em disco do Blu-Ray em questão. A cópia para o HD e um processo muito demorado dependendo do seu equipamento.

Sugiro efetuar o download do Dumphd no link abaixo:
Agora vem o aacskeys, um programa complementar ao Dumphd, que na íntegra descriptografa a proteção AACS dos HD-DVD ou Blu-Ray. Utilizei a versão aacskeys 0.4.0c neste documento. Se ainda disponível, sugiro baixar o código fonte no link abaixo (Caso contrário vasculhe a internet pela ultima versão).
Após o download, descompacte o código fonte e compile o mesmo.

$ tar -zxvf aacskeys-0.4.0c.tar.gz
$ cd aacskeys-0.4.0c/
$ make


Agora com tudo em mãos, instalaremos o programa Dumphd definitivamente. Logado como super-usuário, sugiro descompactar os programas na pasta opt.

# cd /opt
# tax -zxvf [path]/dumphd-0.61.tar.gz


Agora entre na pasta onde foi descompactado e compilado o pacote aacskeys, e copie os arquivos binários e outros para a pasta recém-criada do dumphd conforme o exemplo abaixo.

# cp [path]/aacskeys-0.4.0c/bin/linux/aacskeys /opt/dumphd-0.61/
# cp [path]/aacskeys-0.4.0c/lib/linux/libaacskeys.so /opt/dumphd-0.61/
# cp [path]/aacskeys-0.4.0c/ProcessingDeviceKeysSimple.txt /opt/dumphd-0.61/
# cp [path]/aacskeys-0.4.0c/HostKeyCertificate.txt /opt/dumphd-0.61/


Atenção: Existem inúmeros arquivos KEYDB.cfg (2010-06-15_KEYDB_BD.zip por exemplo) com as chaves já descriptografadas de diversos discos Blu-Ray. Para adicioná-lo, utilize o comando abaixo:

# cat [path]/KEYDB.cfg >> /opt/dumphd-0.61/KEYDB.cfg

Agora para realmente copiarmos o conteúdo do vídeo Blu-Ray para o HD, devemos executar o script dumphd.sh e informar a pasta origem, destino e clicar no botão DUMP. Pronto... a primeira fase foi concluída com sucesso!

# cd /opt/dumphd-0.61/
# ./dumphd.sh


libbluray: Reproduzindo e dominando a mídia

Foi preciso muita batalha para proporcionar acesso completo e irrestrito dos filmes no formato DVD Vídeo para o usuários Linux. Intervenção por partes de diversas pessoas foi preciso, junto à alguns meses de processo para que o Linux conquistasse seu lugar de direito ao Sol (palavras do tuxdahora). Agora é a vez do Blu-Ray iniciar a sua caminhada...

O projeto VideoLAN, disponibiliza uma biblioteca de código aberto para reproduzir discos Blu-Ray. A tarefa principal da libbluray é navegação, controle de menu, e suporte para BD Java (BD-J) utilizado nos discos Blu-Ray. A seguir algumas instruções para compilar e utilizá-la.

O download dever ser efetuado no link a seguir:
Após o download e/ou descompactação do pacote, entre na pasta libbluray:

$ cd libbluray/
$ ./bootstrap
$ ./configure
$ make
$ sudo make install


A biblioteca libbluray possui diversos exemplos, não mencionarei o mesmo neste documento para não tornar muito extenso o documento. Todos os programas exemplos obviamente encontram-se na pasta src/examples. Vale a pena verificar estes programas, pois com estes exemplos, é possível obter diversas informação da mídia presente no leitor. No exemplo abaixo, listaremos os índices disponíveis no disco.

$ cd src/examples/
$ ./list_titles /media/THE\ DARK\ KNIGHT/

index: 1 duration: 00:00:11 chapters: 2 angles: 1 clips 1
index: 2 duration: 00:00:05 chapters: 1 angles: 1 clips 1
index: 3 duration: 00:05:40 chapters: 35 angles: 1 clips 1
index: 4 duration: 00:00:30 chapters: 4 angles: 1 clips 1
index: 5 duration: 01:04:10 chapters: 19 angles: 1 clips 1
index: 6 duration: 00:00:05 chapters: 2 angles: 1 clips 1
index: 7 duration: 00:00:10 chapters: 2 angles: 1 clips 1
index: 8 duration: 00:00:17 chapters: 2 angles: 1 clips 1
index: 9 duration: 00:00:50 chapters: 6 angles: 1 clips 1
index: 10 duration: 02:32:13 chapters: 40 angles: 1 clips 1

lxbdplayer: Um reprodutor java...

O lxbdplayer é um reprodutor escrito em java simples de utilizar, pois basta fazer o download em:
Descompactá-lo e executá-lo. Ressalto a necessidade da presença do lxBDAACS na pasta plugin do software lxbdplayer.

Incluindo a libbluray no XINE

xine é um reprodutor de mídia de código aberto, disponível para Linux, Solaris e OS/2. Ele executa vários formatos de arquivos multimídia, incluindo formatos proprietários. Para compilar o plugin blu-ray para o xine, bastar seguir as instruções abaixo para tornar o player compatível com leitores blu-ray.

$ cd player_wrappers/xine
$ make
$ sudo make install

Installing ///usr/lib64/xine/plugins/1.29/xineplug_inp_bluray.so

xine bluray:/media/THE\ DARK\ KNIGHT/

Reprodução com o Mplayer

MPlayer é um player multimídia de código aberto para diversos sistemas operacionais, como GNU/Linux, FreeBSD e Microsoft Windows, e é um dos que possuem suporte à maior quantidade de formatos de arquivos de vídeo. Tem suporte a vídeos em MPEG-1, MPEG-2, MPEG-4, DivX, XviD, DVDs, VCDs, Real Audio, QuickTime e entre vários outros. Suporta também a reprodução de vídeos via streaming RTP e HTTP, além de legendas.

A primeira alternativa na linha de comando é utilizar o programa dumphd junto ao mplayer, opção válida dependendo a sua versão do reprodutor. Abaixo um exemplo.

dumphd.sh --infile:BDMV/STREAM/00007.m2ts /media/THE\ DARK\ KNIGHT/ | mplayer -aid 4360 -

VDPAU:

Essa biblioteca te permite a reprodução de vídeos no Linux com aceleração de hardware. Isso resulta na exibição de vídeos em HD e FULL HD que colocavam o processador chorando de joelhos sem exigir muito consumo da CPU. Basta incluir a instrução -vc ffvc1vdpau -vo vdpau como parâmetro do mplayer:

$ mplayer -vc ffvc1vdpau -vo vdpau -aid 4360 /dados/blu-ray/Batman/BDMV/STREAM/00007.m2ts

ATENÇÃO: O parâmetros -aid 4360 define a utilização da trilha de áudio em português, sugiro também copiar o arquivo KEYDB.CFG para a pasta ~/.dvdcss/.

$ cp /opt/dumphd-0.61/KEYDB.cfg ~/.dvdcss/

Se o seu mplayer estiver compilado com a biblioteca libbluray, podemos também utilizar os comandos abaixo:

$ mplayer bd://<path do vídeo>
$ mplayer br:// -bluray-device <path do vídeo>




Ripando um vídeo...

Da mesma forma que codificamos DVD para o formato DIVX ou XVID, sugiro converte o vídeo para o contêiner MKV. Veja bem, MKV não é um codec e sim um contêiner de dados de vídeo. Deste modo, MKV permite conter vários dados resultantes de diferentes tipos de codificações (ou codecs) de vídeo; sua maior utilidade é a sincronização dos dados de vídeo com os de áudio, com os títulos e legendas etc.

MKV também é conhecido como Matroska é o nome de uma iniciativa ousada para a criação de formatos universais de contentores, ou contêineres de áudio e vídeo digitais. A premissa é que seja um Padrão aberto de forma que possa evoluir de acordo com as necessidades dos desenvolvedores e distribuidores de conteúdos de Vídeo digital, e não tornar-se obsoleto ao longo do tempo.

O nome é grafia romanizada de ????????, ou matrioska - bonecas típicas russas, no qual uma boneca grande contém outra menor, que contém outra, e assim sucessivamente. Deste modo, os formatos ligados ao Matroska permitem conter dados resultantes de diferentes tipos de codificações (ou codecs) de vídeo e áudio.

Fonte: Wikipédia

Para converter os vídeos, precisaremos do MakeMVK, cujo arquivos para download encontram-se nos links abaixo:
Para compilar e instalar, basta utilizar os comando abaixo:

$ tar -zxvf makemkv_v1.6.1_bin.tar.gz
$ cd makemkv_v1.6.0_bin
$ make -f makefile.linux
$ sudo make -f makefile.linux install

$ tar -zxvf makemkv_v1.6.0_oss.tar.gz
$ cd makemkv_v1.6.0_oss
$ make -f makefile.linux
$ sudo make -f makefile.linux install


Agora utilize o comando makemkv para abrir a janela principal e logo a seguir selecione a opção open-disc.
Após a leitura do conteúdo do disco, selecione todos os títulos e clique no botão Make MKV e aguarde o processamento.
Pronto como agora reproduzir o arquivo MKV com vídeo, múltiplas trilhas de áudio e legenda. Veja um exemplo de reprodução com o player VLC.
Como sempre menciono... Colaborar atrai amigos, competir atrai inimigos...
Alessandro de Oliveira Faria

Alessandro de Oliveira Faria - Sócio-proprietário da empresa NETi TECNOLOGIA fundada em Junho de 1996 (http://www.netitec.com.br), empresa especializada em desenvolvimento de software e soluções biométricas, Consultor Biométrico na tecnologia de reconhecimento facial, atuando na área de tecnologia desde 1986 assim propiciando ao mercado soluções em software nas mais diversas linguagens e plataforma, levando o Linux a sério desde 1998 com desenvolvimento de soluções open-source, membro colaborador da comunidade Viva O Linux, mantenedor da biblioteca open-source de vídeo captura entre outros projetos.