sexta-feira, 27 de fevereiro de 2009

Conta-me como foi - DVD em Linux

Nota: alguns links incluídos neste texto demoram bastante a abrir porque se referem a conteúdos históricos presentes no Internet Archive cujos sites originais já não existem.

Decorria o longínquo ano de 2000 e o DVD era a última moda audiovisual. O salto qualitativo em relação a tudo o que existia anteriormente era gigantesco e a tecnologia DVD fez sucesso quase instantâneamente. Mas ver DVDs em Linux era ainda bastante complicado.

Havia na altura dois desafios principais:
  • aceder ao conteúdo do DVD ultrapassando um tipo de DRM, chamado CSS, presente em quase todos os DVDs comerciais
  • implementar um decoder de mpeg2 que funcionasse bem nas máquinas da época
O primeiro destes foi superado pelo famosíssimo DeCSS . O DeCSS permitia decifrar o conteúdo do DVD tendo por base uma chave criptográfica alegadamente obtida por reverse engineering de um player comercial para Windows. A divulgação deste software deu origem a um polémico processo em tribunal, promovido pelas associações americanas CCA e MPAA, contra o norueguês Jon Lech Johansen posteriormente conhecido como DVD Jon. A comunidade respondeu de imediato com a distribuição em massa do DeCSS de múltiplas e imaginativas maneiras.

O DeCSS foi posteriormente substituído pela libdvdcss a qual é agora alojada abertamente no site do projecto VideoLan. A libdvdcss implementa um ataque brut force, ao sistema CSS (que se mostrou ser criptograficamente fraco) e permite ignorar a restrições às zonas oficiais dos DVDs.

É preciso salientar que uma das motivações do desenvolvimento destas tecnologias era permitir a reprodução DVD com software Open Source, nomeadamente em Linux, uma vez que a forma tradicional de o conseguir era adquirindo uma chave criptográfica ao já mencionado consórcio da indústria chamado CCA. Ora esta situação era claramente incompatível com a existência de um player Open Source e bastante injusta para o consumidor que, já pagando o valor de cada DVD, não deseja certamente que lhe seja imposto o sistema operativo e o software com que o vai ler. Após demorada polémica a julgamento terminou sem qualquer condenação considerando-se que a prática não era contrária à lei.

No entanto este processo veio chamar a atenção para o recorrente esforço de algumas associações da indústria em restringir a forma como são usados produtos legalmente adquiridos como forma de prevenir potenciais usos ilegais. Em questão esteve sempre o direito de um indivíduo poder aceder ao conteúdo de um DVD, por ele legitimamente adquirido, mas a indústria montou uma campanha no sentido de insinuar que apenas se defendia contra cópias ilegítimas. Ora para fazer cópias ilegítimas de DVDs nunca houve necessidade de ultrapassar as protecções: basta fazer uma cópia integral do disco original a qual funcionará sem problemas.

O segundo dos desafios, aparentemente mais fácil de superar, demorou algum tempo a ser ultrapassado. A tal ponto que toda a discussão sobre o DeCSS aparentava ser fútil dado não existir à data nenhuma implementação funcional que deste fizesse uso.

É também de salientar que na altura o hardware disponível estava no limite mínimo necessário para esta tarefa. Havia máquinas PII a 400 mhz que ainda se engasgavam com o ATI DVD Player em Windows, tal como havia máquinas PII 300 mhz que funcionavam fluidamente em Linux. Tudo isto dependia da qualidade e performance das boards (CPU e IO) bem como da placa gráfica sendo que na altura a Xv extension, essencial para fazer offload do CPU nas operações de scaling e colorspace conversion, não estava generalizada (existia inicialmente para placas Matrox, seguindo-se as ATI, estando hoje presente em quase todos os drivers do Xorg).

A primeira tentativa de DVD player open source era o OMS que infelizmente nunca funcionou bem. Posteriormente surgiu o projecto Xine, liderado na altura por Guenter Bartsch, que logo nas versões iniciais conseguiu estabilidade e performance aceitáveis na reprodução de DVDs. O projecto Xine utilizava a libmpeg2, algum código do OMS e oficialmente só suportava DVDs não cifrados.

OMS - o player que nunca funcionou mas lançou as bases para a reprodução DVD em Linux

No entanto um tal da Captain CSS lançou na web um plugin que permitia reproduzir DVDs cifrados no Xine. Não tardou que alguns sites começassem a distribuír o player completo, pronto a funcionar:

http://lists.blu.org/pipermail/discuss/2001-January/008408.html

http://web.archive.org/web/20010309015840/http://gape.ist.utl.pt/ment00/linuxdvd.html
http://web.archive.org/web/20010801165028/http://gape.ist.utl.pt/ment00/linuxdvd.html

Em Janeiro de 2001 a repdrodução DVD em Linux era uma realidade. Os DVDs já funcionavam a nível básico estando algumas funcionalidades como as legendas e navegação nos menus em desenvolvimento. Para além do Xine projectos como Videolan, o Mplayer e o Ogle começaram igualmente a apresentar resultados.

Xine - o primeiro DVD player open source. A sua base (libxine) é hoje utilizada por diferentes players

Nesse mesmo ano em Abril, A VIII Semana Informática do IST albergou uma exposição intitulada "Linux como solução Desktop", algo claramente muito avançado para a época... e convidou um representante do projecto Xine apresentar o projecto. O developer em questão foi Siggi Langauf que se deslocou de Estugarda para falar no primeiro dia do evento.

Actualmente existem múltiplas soluções para reprodução DVD em Linux entre o Xine, Mplayer, Ogle e os diversos front ends disponíveis em versões Gtk, Gnome, KDE, etc. As libraries necessárias (libdvdcss, libdvdread, libdvdnav) nem sempre são incluídas pelas distribuições mas estão geralmente a poucos clicks de distância através de pacotes pre-feitos para cada distribuição alojados em repositórios não oficiais.

Kaffeine - player multimedia baseado na libxine

A batalha pelo direito à reprodução DVD em Linux foi vista como mais uma batalha pela liberdade do consumidor e um exemplo de como a força bruta centralizada dificilmente derrota a inteligência distribuída. Foi uma batalha ganha, em tempos mais difíceis do que os de hoje, mas que importa recordar pois deverá dar o exemplo para as próximas. A garra e persistência de quem trabalhou dias e noites para juntar todas as peças deste puzzle é uma incomparável fonte de inspiração.

Sem comentários: