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. Tentei o acidrip também, mas ele sempre escolhe uma faixa de áudio que 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 mplayer (ou seja, usando as funções de etapa)
- com a legenda, conforme necessário (ou ninguém)
- com a faixa de áudio correta
- com vídeo e áudio sincronizados
Eu tentei alguns ffmpeg
e avconv
comandos e conseguiu criar um avi, mas o vídeo eo áudio foram completamente fora de sincronia. Então, quais opções devo usar para converter o arquivo VOB em um arquivo avi?
Gostaria de receber algumas explicações sobre as opções sugeridas!
Informação adicional:
O
ffmpeg
comando fornece a seguinte saída para o arquivo de entradaInput #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
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.
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
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
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 muito em breve encontrei muitos erros do formulário
[ac3 @ 0x120d480] frame sync error Error while decoding stream #0:1 frame CRC mismatch
O seguinte comando
mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -oac copy -ovc x264 -x264encopts bitrate=2500 -o output.avi
fiz algumas conversões, mas é (i) usar legendas, embora eu não quisesse usá-las (ii) entendi errado o áudio (áudio e vídeo são terrivelmente extraviados) e (iii) parece ser mais lento do que o filme realmente é (pode levar 2 horas para um filme de 90 minutos).
Eu tentei comandar dado aqui (terceiro post do Xeratul), mas parou com o erro
FATAL: Cannot initialize video driver.
Tentei a sugestão feita abaixo para ver a página do mencoder . Esta página sugere o uso de duas passagens:
o primeiro lê informações sobre o filme, o segundo usa essas informações para codificar.
mas nem são explicadas quais informações extrair nem como usá-las na segunda passagem. Então, eu 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 uma legenda indesejada. Não está claro como posso evitar o uso de legendas.
fonte
ffmpeg
está obsoleto desde há muito tempo, você deve usar o seu próprio sucessor:avconv
.avconv
então para converter arquivos VOB para avi. O comandoavconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy test.avi
deu um erroApplication provided invalid, non monotonically increasing dts to muxer in stream 1: 374 >= 374 av_interleaved_write_frame(): Invalid argument
...avconv -i snatch_1.vob -f avi -c:v mpeg4 -b:v 800k -g 300 -bf 2 -c:a libmp3lame -b:a 128k snatch.avi
tente issoError while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
mencoder yourvob -oac copy -ovc x264 -x264encopts pass=1:preset=veryslow:fast_pskip=0:tune=film:frameref=15:bitrate=3000:threads=auto -nosub -o /dev/null
entãomencoder yourvob -oac copy -ovc x264 -x264encopts pass=2:preset=veryslow:fast_pskip=0:tune=film:frameref=15:bitrate=3000:threads=auto -nosub -o video.avi
- tirei isso em parte do Arch doc @ dg99 vinculado.Respostas:
Para se livrar das legendas, acredito que você pode adicionar a
-nosub
opção logo após o nome do arquivo .VOB.Exemplo
Detalhes
Esses encantamentos costumam ser muito densos, de modo a dividir um pouco
Videos/Test/VIDEO_TS/VTS_01_1.VOB
-o video.avi
-nosub
-nosound
-ovc x264
lista de outros codecs
x264encopts
direct=auto
pass=2
bitrate=900
frameref=5
bframes=1
estimativa de movimento fullpixel alg .:
me=umh
NOTA: umh - pesquisa desigual de vários hexágonos (lenta)
ative todos os tipos de macroblocos:
partitions=all
quantização ideal de distorção de taxa:
trellis=1
NOTA: 2 - ativado durante todas as decisões de modo (lento, requer subq> = 6)
valor do incremento / decaimento do quantizador:
qp_step=4
NOTA: valor máximo pelo qual o quantizador pode ser incrementado / diminuído entre os quadros (padrão: 4)
compactação do quantizador (padrão: 0.6):
qcomp=0.7
direct_pred=auto
intervalo máximo entre quadros-chave em quadros:
keyint=300
As opções a seguir são filtros de vídeo:
-vf
NOTA: Para as opções de filtro de vídeo, é importante que você use
harddup
como o último filtro: forçará o MEncoder a gravar todos os quadros (mesmo os duplicados) na saída. Além disso, é necessário usarscale=$WIDTH,-10
com$WIDTH
como-1
para manter a largura original ou um novo, geralmente menores, largura: é necessário uma vez que o codec H.264 usa pixels quadrados e DVDs em vez usar pixels retangulares.scale=-1
-10
harddup
fonte
-noaudio
e com-oac copy
, recebo o áudio, que não está sincronizado com o vídeo. Ou é deslocado, em uma velocidade diferente ou em ambos. Alguma sugestão de como posso obter também o áudio correto? E quanto a vários arquivos VOB? Como compactar o conteúdo em um único.avi
arquivo (ou outro formato)?-oac copy
com uma passagem 2, já que você está re-codificando o vídeo, terá que recodificar o áudio junto com ele. Como a "embalagem" eles, os arquivos VOB deveriam ser fundidas gostou disso:cat *.vob all.vob
. Então useall.vob
no mencoder cmd. Existem outras maneiras de fazer isso também.Se você pretende usar
mplayer
, tentemencoder
( http://www.mplayerhq.hu ). Uma de suas melhores características é que as opções de reprodução que você conhecemplayer
se comportam da mesma maneira durante a codificação. Além disso, há muita documentação e tópicos de email cobrindo exatamente o que você está perguntando:fonte
mencoder
páginas. Existem vários grupos de piratas que usam apenasmencoder
para todo o seu trabalho; é assim que pode ser simples, poderoso e automatizado.Eu sei que essa postagem é antiga, mas, ao pesquisar esse problema na internet, a pergunta acima aparece e algumas outras entradas são ainda mais antigas.
Eu tentei ferramentas diferentes, mas no final estou mais satisfeito com este comando:
É uma ligeira modificação da que encontrei aqui .
Acabei de substituir o codec de áudio (
libflac
estava ausente no meu sistema, substituí-o porlibmp3lame
( fonte ) e o-crf
valor para aumentar a qualidade. Outros formatos também podem ser usados, comomp4
.No meu teste (com um processador bastante medíocre), um arquivo vob de 2,6 GB (já concatenado em 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 aceitável média (nos artigos de ajuda do Handbrake que eu já vi). Números maiores reduzem o tamanho em detrimento da qualidade. A perda de qualidade acima de 20 é clara.
É melhor usar esse comando em um terminal para ver o progresso, eliminá-lo mais facilmente, etc.
O que eu gosto neste comando é que ele fornece um bom equilíbrio entre qualidade, tempo e tamanho e 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 Nautilus como uma 'ação personalizada'. Eu o adicionei ao Dolphin com um
~/.kde/share/kde4/services/ServiceMenus/convert_vob_to_avi.desktop
arquivo como este:fonte