2008-07-05

Passos para reduzir DVD9 para DVD5

Obs: A informação aqui postada não deve ser utilizada para fazer cópias não autorizadas de material protegido.

Para criar uma imagem ISO que caiba em 4.7GB a partir de uma imagem ISO maior, pode-se proceder da seguinte forma:

  1. Decidir quais trilhas do DVD devem ser copiadas e, para cada uma delas, quais canais de áudio e quais canais de legenda e em qual ordem (por exemplo: audio 1 em inglês, audio 2 em português; legenda 1 em português, legenda 2 em inglês). Defina também a lista de capítulos de cada trilha. Alguns programas para auxiliar na decisão:
    lsdvd -x ARQ.iso
    tcprobe -i ARQ.iso -T N -H 100
  2. Extrair as trilhas selecionadas da imagem ISO para arquivos MPEG:
    tccat -i ARQ.iso -t dvd -T N,-1 -L >tN.mpg
  3. Extrair o canal de vídeo de cada trilha:
    tcextract -i tN.mpg -x mpeg2 -t vob >tN.m2v
  4. Extrair os canais de áudio de cada trilha:
    tcextract -i tN.mpg -x ac3 -t vob -a A >tNaA.ac3
  5. Criar um arquivo de paleta para extrair as legendas. Um que geralmente funciona é:
    cat >palette.rgb <<EOF
    000000
    000000
    ffc000
    808080
    808080
    808080
    808080
    808080
    806000
    ffc000
    808080
    808080
    808080
    ffc000
    000000
    808080
    EOF
  6. Extrair as legendas (subtítulos) de cada trilha para arquivos PNG dentro de um subdiretório:
    mkdir -p tNsS
    spuunmux -o tNsS/sub -s S -p palette.rgb tN.mpg
  7. Se necessário, reduzir o bitrate β dos canais de áudio (β=192 parece adequado):
    ffmpeg -v 0 -y -i tNaA.ac3 -f ac3 -acodec ac3 -ab βk nNaA.ac3
  8. Calcular o fator de redução Φ necessário para os canais de vídeo:

    Φ = ΣVi / (4500000000 - ΣAij - ΣSijk)

    onde:

    Vi = Tamanho do arquivo do canal de vídeo (m2v) da trilha i.
    Aij = Tamanho do arquivo do canal de áudio (ac3) j da trilha i (depois de reduzir o bitrate).
    Sijk = Tamanho do arquivo (png) k das legendas j da trilha i.

  9. Se o fator de redução for maior que 1, reduzir o tamanho dos canais de vídeo:
    tcrequant -f Φ -d 0 -i tN.m2v -o nN.m2v
  10. Para cada trilha, determinar o deslocamento Δ em segundos entre o canal de vídeo e os canais de áudio, usando a informação gerada por:
    tcprobe -i tN.mpg
    O deslocamento será:

    Δ = PTSv - PTSa

    onde:

    PTSv = PTS do canal de vídeo
    PTSa = PTS dos canais de áudio (devem ser aproximadamente iguais)

  11. Combinar o canal de vídeo e os canais de áudio (0, 1, etc.) de cada título:
    mplex -f 8 -S 0 -o nN.mpg -O Δs nN.m2v nNa0.ac3 nNa1.ac3 ...
  12. Adicionar cada canal de legendas (0, 1, etc.) a cada título:
    mv nN.mpg xN.mpg
    spumux -m dvd -s 0 tNs0/sub.xml <xN.mpg >nN.mpg
    mv nN.mpg xN.mpg
    spumux -m dvd -s 1 tNs1/sub.xml <xN.mpg >nN.mpg
    ...
  13. Obter a informação necessária sobre o vídeo para o arquivo XML (formato, aspecto, widescreen, resolução) de uma das seguintes formas:
    tcprobe -i ARQ.iso -T N 2>&1 | grep video
    tcprobe -i nN.mpg 2>&1
  14. Criar um arquivo XML contendo a descrição de como deve ser gerado o DVD. O exemplo abaixo gera uma estrutura de DVD no diretório DIR. Ao iniciar, são selecionados o primeiro canal de áudio (inglês) e o primeiro canal de legenda (português), e a primeira trilha inicia automaticamente. O vídeo está em formato NTSC 16:9 (quando visto em 4:3, coloca barras horizontais) e resolução 720x480. Há dois canais de áudio (inglês e português) e dois canais de legenda (português e inglês). Há três trilhas, armazenadas nos arquivos n1.mpg, n2.mpg e n3.mpg, com capítulos a cada meia hora (na primeira trilha) ou a cada 10 minutos (nas demais). Ao terminar uma trilha, a próxima inicia automaticamente, voltando ao início no final.
    <dvdauthor dest="DIR">
    <vmgm>
    <fpc>{ audio=0; subtitle=64; jump title 1; }</fpc>
    </vmgm>
    <titleset>
    <titles>
    <video format="ntsc" aspect="16:9" widescreen="nopanscan" resolution="720x480" />
    <audio lang="en" />
    <audio lang="pt" />
    <subpicture lang="pt" />
    <subpicture lang="en" />
    <pgc>
    <vob file="n1.mpg" chapters="00:00:00.000,00:30:00.000,01:00:00.000,01:30:00.000" />
    <post>jump title 2;</post>
    </pgc>
    <pgc>
    <vob file="n2.mpg" chapters="00:00:00.000,00:10:00.000,00:20:00.000" />
    <post>jump title 3;</post>
    </pgc>
    <pgc>
    <vob file="n3.mpg" chapters="00:00:00.000,00:10:00.000,00:20:00.000,00:30:00.000" />
    <post>jump title 1;</post>
    </pgc></titles>
    </titleset>
    </dvdauthor>
  15. Criar a estrutura de DVD usando o arquivo XML acima:
    dvdauthor -x dvd.xml
  16. Criar a nova imagem ISO do DVD (usar o título de lsdvd ou definir um novo):
    genisoimage -dvd-video -V "TITULO" -o ARQNOVO.iso DIR/

Nenhum comentário: