Manuais/Tovid

Da Hacklaviva

Índice

Instalação

Para além do tovid, também dá jeito instalar o gxine, que vai servir para fazermos a pré-visualização do DVD antes de o queimar.

 sudo aptitude install tovid gxine

Como criar um DVD vídeo

Converter os vídeos

Para começar, temos uma série de vídeos que queremos converter para um formato que sirva para a criação do DVD vídeo (MPEG/VOB).

Com o tovid

O tovid dá-nos uma forma simples e directa para converter qualquer vídeo:

 tovid -pal -noask -in video.m4v -out video

A opção -pal é fundamental, já que por omissão o tovid cria vídeos em formato NTSC (o standard dos EUA), e nós queremos PAL (standard europeu). A opção -noask elimina um aviso estúpido que ele faz no final da conversão sobre se queremos gravar os logs da conversão.

Importa ter algum cuidado com os nomes dos ficheiros, porque isso nos vai facilitar a vida nos passos seguintes.

Com o FFmpeg

Encontrámos alguns problemas com vídeos convertidos através do Tovid (especialmente aqueles com frames estáticas, p.ex. créditos). Outra forma de converter vídeos para o formato adequado é o FFmpeg, que tratou lindamente do assunto:

 ffmpeg -i video.avi -target pal-dvd video.mpg

Letterboxing: Converter vídeos 16:9 para 4:3

Tínhamos alguns vídeos em formato 16:9 que precisávamos de passar para 4:3, com recurso às famosas barras horizontais (letterboxing). Depois de alguma tentativa e erro, chegámos a um comando do ffmpeg que mantém a qualidade do original no processo:

 ffmpeg -i video.mov -s 720x406 -padtop 84 -padbottom 86 -aspect 4:3 -sameq video_letterbox.mpg


Criar o menu

O passo seguinte será criarmos o menu. Para isso, temos o makemenu, que faz parte das ferramentas do tovid. A wiki do tovid tem uma secção muito completa sobre as possibilidades deste comando.

Juntar tudo para fazer a estrutura do DVD

Agora, é só correr o makedvd. Por alguma razão, o comando makedvd não é encontrado na shell, por isso temos de usar o caminho absoluto para o comando. Como argumento, usamos o ficheiro XML criado pelo makemenu.

 /usr/share/tovid/makedvd -author dvdvideo.xml

Por causa das limitações dos filesystems FAT, o makedvd só aceita correr dentro de um filesystem ext3 (o normal em sistemas GNU/Linux).

Fazer um .iso do DVD final

Dá jeito criarmos um .iso para podermos confirmar que o DVD funciona como deve ser.

Depois de termos seguido os passos anteriores e termos um directório dvd com as respectivas pastas AUDIO_TS e VIDEO_TS lá dentro, só precisamos de um comando para fazer o .iso:

 mkisofs -dvd-video -udf -R  -o dvd.iso dvd/

Depois podemos 'montar' o .iso para nos aparecer como se fosse um DVD que colocámos no drive:

 sudo mount -o loop -t iso9660 dvd.iso /media/dvd/

Assim, o DVD vai aparecer-nos tal como apareceria caso tivéssemos o DVD físico, e podemos abri-lo com o Totem Movie Player para ver se está tudo em ordem.

Queimar o DVD

Queimar o DVD a partir do .iso é o passo mais simples de todos:

 wodim dvd.iso

Alguns problemas e soluções

Mudar o formato de um vídeo

O tovid é capaz de transformar a maioria dos vídeos em ficheiros .vob prontos para gravar em DVD. No entanto, às vezes há problemas de leitura que ele não denuncia, como foi o caso de um vídeo de 2 minutos que ele só conseguia ler os primeiros 50 segundos. O VLC consegue fazer conversão mas, por alguma bruxaria, aparecia com imensos artefactos. Conseguimos pôr tudo direito usando o mencoder para transformar o vídeo num .mp4 que o tovid conseguiu digerir. O comando para isto foi:

 mencoder -of lavf -lavfopts format=mp4 -oac lavc -ovc lavc -lavcopts \
 aglobal=1:vglobal=1:acodec=libfaac:abitrate=128:vcodec=mpeg4:keyint=25 \
 -ofps 25 -af lavcresample=44100 -vf harddup -mc 0 -noskip \
 video.m2v -o video.mp4

O comando foi sacado daqui, e retirámos o parâmetro 'scale' que redimensionava o vídeo. Parfait!

Usar o Openshot para juntar áudio e vídeo

O OpenShot é um editor de vídeo linear que dá conta da maioria das necessidades de edição corta-e-cola. Neste caso tínhamos um vídeo que vinha com o áudio em separado, e era preciso juntá-los num só ficheiro. Bastou abrir o Openshot, importar os dois ficheiros, juntá-los na timeline e exportar.

Houve dois pequenos obstáculos que lá conseguimos resolver.

Entrelaçado vs. Progressivo

Por defeito, o perfil do Openshot para vídeos DV-PAL cria vídeos entrelaçados ('interlaced'). O vídeo que tínhamos não era entrelaçado, mas ao exportar ele presumiu que era e a coisa não saiu lá muito bem.

(basta ver esta imagem para perceber a diferença entre um vídeo entrelaçado e um não entrelaçado, também conhecido como 'progressivo')

A solução foi simples: nas preferências do Openshot, abrimos os 'Profiles' e fizemos uma cópia do perfil 'DV-PAL' chamada 'DV-PAL (progressive)', assinalando a caixinha 'Progressive' e gravando o nosso novo perfil. Criámos um novo projecto no Openshot com o novo perfil e repetimos os passos acima. E saiu-nos o vídeo como queríamos, num ficheiro .vob pronto para queimar -- ou não, como mais tarde viemos a perceber.

O output do OpenShot precisa de ser re-convertido

O vídeo exportado em formato DVD cumpre, supostamente, as normas dos vídeos para DVD. Quando pedimos ao tovid para converter um vídeo, normalmente avisa-nos caso ele já esteja conforme as regras para DVD vídeo, e não se queixou com o que fizemos com o Openshot.

No entanto, quando chegou a altura de fazer o DVD final (com o comando makedvd, que chama o dvdauthor), ele fartou-se de cuspir avisos:

 WARN: System header found, but PCI/DSI information is not where expected (make sure your system header is 18 bytes!)
 WARN: Skipping sector, waiting for first VOBU...
 WARN: Skipping sector, waiting for first VOBU...

E depois crashava com a temida "segmentation fault", que significa que houve um erro sério e que vai ser bem difícil perceber onde falhou.

Depois de algumas tentativas, percebemos onde estava o erro: o vídeo exportado do Openshot estava bem de acordo com o Tovid, mas na verdade era ele que estava a bloquear tudo. A solução foi convertê-lo com o tovid usando a opção -force, já que se não a usarmos ele não vai fazer qualquer conversão.

Leituras adicionais

  • Tovid Wiki - Toda a informação que é necessária para começar a usar o Tovid, para além de pormenores e demos úteis.
Hackmeeting