Como converter um arquivo VOB para avi?

10

Estou tentando converter um arquivo VOB copiado de um DVD para um avi no Ubuntu 13.10. Eu tentei dvdrip , que falhou devido a um erro de contagem de quadros ou algo assim. Eu tentei acidrip também, mas sempre escolho uma faixa de áudio que eu não queria usar. Eu preferiria ter uma solução de linha de comando para criar um avi com os seguintes recursos:

  • utilizável com o mplayer (ou seja, usando as funções de etapa)
  • com o subtítulo conforme necessário (ou nenhum outro)
  • com a faixa de áudio correta
  • com vídeo e áudio em sincronia

Eu tentei alguns comandos ffmpeg e avconv e consegui criar um avi, mas o vídeo e o áudio estavam completamente fora de sincronia. Então, quais opções devo usar para ter o arquivo VOB convertido em um arquivo avi?

Gostaria de receber algumas explicações sobre as opções sugeridas!

Informações adicionais:

  1. O comando ffmpeg fornece a seguinte saída para o arquivo de entrada

    Input #0, mpeg, from 'Videos/Test/VIDEO_TS/VTS_01_1.VOB':
      Duration: 00:04:53.32, start: 0.045500, bitrate: 29284 kb/s
        Stream #0.0[0x1e0]: Video: mpeg2video (Main), yuv420p, 720x480 [PAR 8:9 DAR 4:3], 7500 kb/s, 27.68 fps, 59.94 tbr, 90k tbn, 59.94 tbc
        Stream #0.1[0x82]: Audio: ac3, 48000 Hz, 5.1, s16, 384 kb/s
        Stream #0.2[0x80]: Audio: ac3, 48000 Hz, 5.1, s16, 448 kb/s
        Stream #0.3[0x81]: Audio: ac3, 0 channels
    [buffer @ 0x15ca6e0] w:720 h:480 pixfmt:yuv420p
    
  2. O seguinte comando

    ffmpeg -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -ss 589 -t 274 -sameq -acodec copy -ab 320k output.avi
    

    por exemplo, resultou em uma falha na minha sessão do Ubuntu.

  3. O seguinte comando

    avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy output.avi
    

    por exemplo, resultou no seguinte erro:

    Application provided invalid, non monotonically increasing dts to muxer in stream 1: 374 >= 374
    av_interleaved_write_frame(): Invalid argument
    
  4. O seguinte comando

    avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k output.avi
    

    por exemplo, resultou no seguinte erro:

    Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
    
  5. O seguinte comando

    avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a ac3 -b:a 128k output.avi
    

    por exemplo, parecia funcionar para alguns quadros. Mas logo encontrei muitos erros da forma

    [ac3 @ 0x120d480] frame sync error
    Error while decoding stream #0:1
    frame CRC mismatch
    
  6. O seguinte comando

    mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -oac copy -ovc x264 -x264encopts bitrate=2500 -o output.avi
    

    fez alguma conversão, mas está (i) usando legendas embora eu não queira usá-las (ii) tenha o áudio errado (áudio e vídeo é terrivelmente mal colocado) e (iii) pareça ser mais lento do que o filme realmente (pode levar 2 horas para um filme de 90 minutos).

  7. Eu tentei comandar dado aqui (terceiro post do Xeratul), mas parou com o erro

    FATAL: Cannot initialize video driver.
    
  8. Eu tentei a sugestão feita abaixo para ver a página do mencoder . Esta página sugere usar dois passes:

    o primeiro lê informações sobre o filme, o segundo usa esse informações para codificar.

    mas nem é explicado qual informação para extrair nem como usá-los na segunda passagem. Então usei o seguinte comando:

    mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -nosound -ovc x264 \
    -x264encopts direct=auto:pass=2:bitrate=900:frameref=5:bframes=1:\
    me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \
    -vf scale=-1:-10,harddup -o video.avi
    

    que converteu o vídeo, mas com um subtítulo indesejado. Não está claro como posso evitar o uso de um subtítulo.

por Alex 23.12.2013 / 16:19

3 respostas

6

Para eliminar as legendas, acredito que você possa adicionar a opção -nosub , logo após o nome do arquivo .VOB.

Exemplo

$ mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -nosub -nosound -ovc x264 \
-x264encopts direct=auto:pass=2:bitrate=900:frameref=5:bframes=1:\
me=umh:partitions=all:trellis=1:qp_step=4:qcomp=0.7:direct_pred=auto:keyint=300 \
-vf scale=-1:-10,harddup -o video.avi

Detalhes

Estes encantamentos são muitas vezes muito densos, de modo a quebrar este aqui um pouco

  • arquivo de entrada: Videos/Test/VIDEO_TS/VTS_01_1.VOB
  • arquivo de saída: -o video.avi
  • sem legendas: -nosub
  • não codifica o som: -nosound
  • codificar com determinado codec: -ovc x264

lista de outros codecs

$ mencoder -ovc help
MEncoder SVN-r36171-4.8.1 (C) 2000-2013 MPlayer Team

Available codecs:
   copy     - frame copy, without re-encoding. Doesn't work with filters.
   frameno  - special audio-only file for 3-pass encoding, see DOCS.
   raw      - uncompressed video. Use fourcc option to set format explicitly.
   nuv      - nuppel video
   lavc     - libavcodec codecs - best quality!
   libdv    - DV encoding with libdv v0.9.5
   xvid     - XviD encoding
   x264     - H.264 encoding
  • opções de codificação x264: x264encopts
  • definir o modo para os vetores de movimento direto : direct=auto
  • número de passes : pass=2
  • bitrate de codificação de destino: bitrate=900
  • pre. quadros usados como preditores em quadros B e P (def: 3): frameref=5
  • número concorrente de quadros B: bframes=1
  • estimativa de movimento em pixels totais alg .: me=umh

    NOTA: umh - pesquisa multi-hexágono irregular (lenta)

  • ativar todos os tipos de macroblocos: partitions=all

  • quantização ótima da taxa de distorção: trellis=1

    OBSERVAÇÃO: 2 - ativado durante todas as decisões do modo (lento, requer subq > = 6)

  • valor de incremento / redução do quantizador: qp_step=4

    NOTA: valor máximo pelo qual o quantizador pode ser incrementado / decrementado entre os quadros (padrão: 4)

  • compactação do quantizador (padrão: 0,6): qcomp=0.7

  • previsão de movimento para macroblocos em quadros B: direct_pred=auto
  • intervalo máximo entre quadros-chave nos quadros: keyint=300

  • opções depois disso são os filtros de vídeo: -vf

OBSERVAÇÃO: Para as opções de filtro de vídeo, é importante usar harddup como o último filtro: ele forçará o MEncoder a gravar cada quadro (mesmo os duplicados) na saída. Além disso, é necessário usar scale=$WIDTH,-10 com $WIDTH as -1 para manter a largura original ou uma largura nova, geralmente menor: é necessário, pois o codec H.264 usa pixels quadrados e os DVDs usam pixels retangulares .

  • scale=-1
  • -10
  • harddup
por 01.01.2014 / 17:10
3

Se você pretende usar mplayer , tente mencoder ( link ). Uma de suas melhores características é que as opções de reprodução que você conhece de mplayer se comportam da mesma maneira quando codificadas. Além disso, há muita documentação e tópicos de e-mail cobrindo exatamente o que você está perguntando:

por 26.12.2013 / 21:53
1

Eu sei que isso é uma postagem antiga, mas pesquisando esse problema na Internet, a pergunta acima é exibida e algumas outras entradas são ainda mais antigas.

Eu tentei ferramentas diferentes, mas no final estou mais satisfeito com este comando:

ffmpeg -i *.vob -c:v libx264 -crf 20 -c:a libmp3lame -ac 2 -ab 192k output.avi

É uma pequena modificação da que eu encontrei aqui .

Acabei de substituir o codec de áudio ( libflac estava ausente no meu sistema, então substituí-lo por libmp3lame ( source ) e o valor -crf para aumentar a qualidade Outros formatos também podem ser usados, como mp4 . / p>

Em meu teste (com um processador bastante medíocre), um arquivo vb de 2,6 GB (já concatenado de três outros arquivos) foi convertido em um vídeo avi de 960 MB de qualidade comparável em cerca de 50 minutos.

20 é a qualidade média aceitável (nos artigos de ajuda do Handbrake que tenho visto). Números maiores reduzem o tamanho em detrimento da qualidade. Acima de 20 a perda de qualidade é clara.

É melhor usar esse comando em um terminal para ver o progresso, matá-lo mais facilmente, etc.

O que eu gosto neste comando é que ele fornece um bom equilíbrio entre qualidade, tempo e tamanho e que pode ser facilmente usado no menu de contexto do gerenciador de arquivos.

Como fazer isso depende do gerenciador de arquivos. O comando pode ser facilmente adicionado ao Thunar e ao Nautilus como uma 'ação personalizada'. Eu adicionei-o ao Dolphin com um arquivo ~/.kde/share/kde4/services/ServiceMenus/convert_vob_to_avi.desktop como este:

[Desktop Entry]
Type=Service
ServiceTypes=KonqPopupMenu/Plugin,video/mpeg
MimeType=video/mpeg
Actions=Convert2avi
X-KDE-Submenu=Convert vob (DVD video)
Encoding=UTF8

[Desktop Action Convert2avi]
Name=to avi
Icon=video
Exec=konsole -e ffmpeg -i *.vob -c:v libx264 -crf 20 -c:a libmp3lame -ac 2 -ab 192k output.avi

    
por 10.02.2016 / 23:31