• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

vbmaster

DivX para DVD em GNU/Linux | LinTeam

7 mensagens neste tópico

DivX para DVD em GNU/Linux

Antes de mais aproveito desde já para referir que este tutorial não é genuíno, e que é apenas uma tradução modificada de algo postado pelo utilizador shiznix dos Gentoo Foruns. Como tal, qualquer dúvida técnica relativamente ao processo exemplificado deve ser colocada no thread oficial do tut.

Este tutorial visa dar a conhecer algo que eu pessoalmente à muito ansiava: o poder converter DivX para DVD em GNU/Linux, sem ser necessário recorrer a software proprietário existente em Windows.

Todas as tools são opensource e o processo é bastante simples. O tutorial inicial é mais complexo e deixa até a hipótese de passarem o vosso DivX para DVD, com a possibilidade de criação de menus até, mas eu resumir-me-ei à simples conversão visto ser o que o utilizador normal mais executa e necessita.

Começaremos então por verificar as ferramentas que serão necessárias para este tut, todos os passos são executados em command line sem qualquer recurso ao ambiente gráfico, mas referirei alternativas gráficas em casos particulares. Vejamos então o necessário (a instalar da maneira mais rápida que a vossa distribuição suportar):

  • Mjpegtools
  • ffmpeg
  • transcode
  • dvd+rw-tools (ou K3b, o conhecido software para gravação de cd's/dvd's do pacote KDE)
  • Mplayer
  • Dvdauthor
  • Xine (opcional)
  • submux-dvd (opcional - para legendas em formato .sub)
  • slocate ou find

Primeiramente vamos supôr que temos o filme matrix.avi e o respectivo ficheiro de legendas matrix.srt.

O príncipio

O primeiro passo será converter o ficheiro .avi em dois ficheiros distintos, um com o audio em .ac3 e outro com o video em .m2v. Para isso, e já presupondo o formato PAL que é o usado nas televisões europeias correremos primeiramente a seguinte linha:

transcode -i matrix.avi -y ffmpeg --export_prof dvd-pal --export_asr 3 -o matrix -D0 -b224 -N 0x2000 -s2 -m matrix.ac3 -J modfps=clonetype=3 --export_fps 25

Obviamente que o nome do vídeo deverá ser substítuido pelo o nome do vosso .avi.

NOTA: Se por acaso preferirem que o vosso DVD final venha em formato 4:3 e não no 16:9 que é o que aquela linha de bash shell codifica, deverão substituir o comando --export_asr 3 por --export_asr 2

O processo demorará um pouco mais do que softwares proprietários para o Microsoft Windows leva, tendo registado mais ou menos 3 horas (tenham calma, é a coisa mais lenta do tut... :P ).

Continuando, e já após o proceso anterior concluído, se têm o vosso DVD de sala ligado um sistema de som 5.1 e querem tirar partido disso no DVD que estão prestes a criar, deverão verificar se o .avi do filme possui essa posibilidade, correndo o comando:

mplayer -vo dummy -identify matrix.avi 2> /dev/null | grep "5.1 ("

Se o resultado for algo como isto:

AC3: 5.1 (3f+2r+lfe) 48000 Hz 384.0 kbit/s

Então poderam tirar partido disso, e activar esse sistema de som, fazendo:

tcextract -d2 -i matrix.avi -a0 -x ac3 | tcextract -d2 -x ac3 -t raw > matrix.ac3

Estando o comando tcextract incluído no pacote transcode.

Continuando...

Nesta altura teremos de combinar o ficheiro de vídeo e o ficheiro de aúdio gerados num único ficheiro .mpg.

O comando não deverá demorar muito tempo a executar esta tarefa, sendo ele:

mplex -f 8 -o matrix_dvd.mpg matrix.m2v matrix.ac3

NOTA: o mplex vem com o Mplayer.

Neste momento muito pouco falta para termos finalmente um DVD gerado, mas não se esqueçam, como portugueses que somos teremos de adicionar as legendas... ora isso não é díficil, é apenas um pouco tricky.

Em português nos entendemos (legendas)...

Para isso vamos supôr que temos o nosso ficheiro de vídeo gerado .mpg e o ficheiro de legendas que deverá estar no formato .srt (em .sub também é possível, mas nesse caso terão de usar a package submux-dvd para anexar o .mpg às legendas, leiam o man do comando submux-dvd).

Vamos então criar uma pasta chamada .spumux na nossa home (~/).

NOTA: O nome tem da pasta tem de ser rigorosamente este.

cd ~/

mkdir .spumux

Vamos seguidamente mover os nossos ficheiros para a pasta criada (aconselha-se o uso de command line para evitar desgraças):

mv matrix.mpg ~/.spumux

mv matrix.srt ~/.spumux

Posteriamente entramos na pasta .spumux e criaremos um ficheiro subtitle.xml que dirá ao comando que utilizaremos o que fazer e como fazer na indexação das legendas ao ficheiro de vídeo .mpg.

cd ~/.spumux

nano subtitle.xml

O editor de texto é irrelevante, portanto substituam o "nano" por "gedit", "kedit", o que quiserem.

O texto desse ficheiro deverá ser:

<subpictures>

  <stream>

    <textsub filename="matrix.srt" characterset="ISO8859-1"

        fontsize="18.0" font="Vera.ttf" horizontal-alignment="center"

        vertical-alignment="bottom" left-margin="60" right-margin="60"

        top-margin="20" bottom-margin="30" subtitle-fps="25"

        movie-fps="25" movie-width="720" movie-height="574"/>

  </stream>

</subpictures>

NOTA: A  minha experiência com este procedimento revelou que o tamanho de letra 18 se tornou insuficiente, pelo que será aconselhável aumentá-lo, mas também pode depender dos televisores...

Em seguida mover-se-à a fonte Vera.ttf para a respectiva pasta, para que o anexador utilizado a possa usar.

Iremos utilizar a fonte Vera.ttf com o comando locate (disponível pelo pacote slocate) :

locate Vera.ttf

Como output ser-nos-ão dado alguns endereços, do qual poderemos usar o que quisermos desde que aponte para o ficheiro que queremos, portanto faremos algo como:

cp /xxxx/zzzz/yyyy/aaaa/Vera.ttf ~/.spumux/

Para confirmar deveremos ter neste momento na pasta .spumux os seguintes ficheiros:

  • matrix.avi
  • matrix.srt
  • subtitle.xml
  • Vera.ttf

Anexaremos por fim as legendas com o .mpg correndo o seguinte (dentro da .spumux):

spumux -s0 subtitle.xml < matrix.mpg > matrix.mpg.temp

E por fim:

mv matrix.mpg.temp matrix.mpg

Devendo responder 'yes' caso vos seja perguntado se querem escrever por cima do actual ficheiro.

Criado os ficheiros próprio de um filme DVD

Ainda na .spumux, para não complicar, criem um directório chamado "DVD":

mkdir DVD

E criem na .spumux (não na DVD), o ficheiro dvdauthor.xml:

nano dvdauthor.xml

Introduzindo-lhe o seguinte conteúdo:

<dvdauthor dest="DVD">

  <vmgm />

  <titleset>

    <titles>

      <video widescreen="nopanscan" />

      <pgc>

        <vob file="matrix.mpg" chapters="0,0:30,1:00,1:30,2:30,3:00,3:30,4:00"/>

      </pgc>

    </titles>

  </titleset>

</dvdauthor>

Para ficar terminado, basta porteriormente fazer:

dvdauthor -x dvdauthor.xml

Poderão neste momento testar o vosso DVD, já com legendas e pronto a gravar, por exemplo com o xine (também possível com o Mplayer, mas possívelmente com diferente comando), fazendo:

xine dvd:/full/path/to/DVD/VIDEO_TS/

Gravação.... ufa... estava a ver que não...

Bem, nesta altura, poderá usar o seu software de gravação preferido como o K3b, mas se quiser continuar em command line bastará fazer (ainda dentro da .spumux):

growisofs -Z /dev/dvd -dvd-video DVD

NOTA: o dvd em /dev/dvd poderá não funcionar no vosso sistema, no meu bastou subtituir por cdrom1, visto possuir duas drives ópticas, e só a segunda delas gravar dvd's. Na maior parte das distros o cdromx deverá funcionar.

O processo demorará alguns minutos ( o tempo normal da gravação de um dvd) e ao fim de alguns minutos teremos o DVD para testar no nosso DVD de sala.

NOTA FINAL:: Todo o processo requererá espaço em disco, sendo no mínimo necessário 8/9GB's.

Agradeço feedback da vossa possível execução do tutorial. A mim funcionou e apenas notei que deveria ter aumentado o tamanho das legendas...

Espero que a conversão de filmes para o formato DVD a partir de um DivX não seja mais um dos factores que vos fazem reinciar o computador para ir ao Windows da Microsoft.

Qualquer questão técnica poderá ser aqui postada, e até agradeço, mas para mais informação e poder observar um tutorial mais completo, mas na língua inglesa, deverão se deslocar aos link já referenciado para o thread oficial do tut nos gentoo foruns.

Espero sinceramente que vos seja muito útil...

vbmaster

LinTeam

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas. Estive a ler e precisava de uma ajuda.

O que eu pretendo é só agarrar no avi e metelo pró dvd, sem legendas, sem menus, é mesmo só meter aquilo lá pra dentro.

Pelo que precebi tenho de fazer isto:

transcode -i matrix.avi -y ffmpeg --export_prof dvd-pal --export_asr 3 -o matrix -D0 -b224 -N 0x2000 -s2 -m matrix.ac3 -J modfps=clonetype=3 --export_fps 25

e que mais? não há prai muitos passos que posso saltar? Quais em concreto?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O passo das legendas, quanto ao do menu não te aconselho...

(não poderás usar o |> )

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já me orientei! ;)

Para gravar sem legendas nem nada até que nem foi nada complicado. Com alguma atenção o tuturial deu para seguir com relativa facilidade.

Entretanto tirei umas notas pessoais se alguém quiser dar uma olhadela pode dar jeito... É um resumo resumido de como gravar sem legendas.

Grácias vbmaster! Tá muito bom isso! :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem,.... :S :):( :'( Já estou arrependido de ter falado.

Só consegui á primeira agora ,.. népias!

O Pc bloqueia e só lá vai com reset.

Tenho tudo prontinho para gravar e tal... testo com o xine e aparentemente está prefeito....

Ao gravar faz isto:

Executing 'genisoimage -dvd-video DVD | builtin_dd of=/dev/dvd obs=32k seek=0'

I: -input-charset not specified, using utf-8 (detected in locale settings)

Unknown file type (unallocated) DVD/.. - ignoring and continuing.

  0.64% done, estimate finish Thu Sep 20 21:09:07 2007

/dev/dvd: "Current Write Speed" is 2.0x1352KBps.

E pronto,... ao fim de 2 ou 3 minutos já não consigo fazer nada no computador......

a questão é: WTF? :wallbash: :P:D :D :mad: :rant_01: :hmm: :bye2:

edit:

No fim de reeiniciar o pc volto 'a dar' o mesmo comando para gravar e:

Executing 'genisoimage -dvd-video DVD | builtin_dd of=/dev/dvd obs=32k seek=0'

I: -input-charset not specified, using utf-8 (detected in locale settings)

Unknown file type (unallocated) DVD/.. - ignoring and continuing.

/dev/dvd: "Current Write Speed" is 2.0x1352KBps.

:-? resuming track#1 from LBA#16

  0.64% done, estimate finish Thu Sep 20 22:55:36 2007

  1.28% done, estimate finish Thu Sep 20 22:32:18 2007

.

.

.

.

.

Vai até aos 100% e mas depois o dvd não lê.

(estou neste momento a voltar a tentar em principio vai-se passar o mesmo que das outras vezes, caso contrario ja aviso)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Possa!!!!!! Devem de me achar maluco.

Desta vez,... e no fim de estragar 3 dvd's da "mesmissima" forma  como fiz o post antes de terminar 'o gajo' só pra me moer ficou bom.

De qualquer das formas há alguma razão aparente para o pc ter marado?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora