Próbuję przekonwertować plik VOB skopiowany z DVD na avi w Ubuntu 13.10. Próbowałem dvdrip
, co nie powiodło się z powodu błędu liczby klatek lub coś takiego. Próbowałem też acidrip, ale zawsze wybrałem ścieżkę audio, której nie chciałem używać. Wolę mieć rozwiązanie wiersza polecenia, aby utworzyć avi z następującymi funkcjami:
- do użytku z mplayerem (tj. przy użyciu funkcji krokowych)
- z podtytułem zgodnie z wymaganiami (lub w ogóle nikim)
- z prawidłową ścieżką audio
- z synchronizacją wideo i audio
Próbowałem trochę ffmpeg
i avconv
poleceń i udało się stworzyć avi, ale obraz i dźwięk były całkowicie zsynchronizowane. Więc jakich opcji powinienem użyć, aby przekonwertować plik VOB na plik avi?
Byłbym wdzięczny za wyjaśnienia dotyczące sugerowanych opcji!
Dodatkowe informacje:
ffmpeg
Komenda daje następujące dane wyjściowe do pliku wejściowegoInput #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
Następujące polecenie
ffmpeg -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -ss 589 -t 274 -sameq -acodec copy -ab 320k output.avi
na przykład spowodowało awarię mojej sesji Ubuntu.
Następujące polecenie
avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy output.avi
na przykład spowodował następujący błąd:
Application provided invalid, non monotonically increasing dts to muxer in stream 1: 374 >= 374 av_interleaved_write_frame(): Invalid argument
Następujące polecenie
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
na przykład spowodował następujący błąd:
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
Następujące polecenie
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
na przykład wydawało się działać dla niektórych ramek. Ale bardzo szybko napotkałem wiele błędów formularza
[ac3 @ 0x120d480] frame sync error Error while decoding stream #0:1 frame CRC mismatch
Następujące polecenie
mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -oac copy -ovc x264 -x264encopts bitrate=2500 -o output.avi
dokonałem konwersji, ale (i) korzystam z napisów, chociaż nie chciałem ich używać (ii) pomyliłem dźwięk (audio i wideo są strasznie źle umieszczone) i (iii) wydaje się być wolniejszy niż film, który faktycznie idzie (może zająć 2 godziny na 90-minutowy film).
Próbowałem wydać polecenie tutaj (trzeci post od Xeratul), ale zatrzymało się to z błędem
FATAL: Cannot initialize video driver.
Wypróbowałem podaną poniżej sugestię, aby spojrzeć na stronę mencodera . Ta strona sugeruje użycie dwóch przejść:
pierwszy czyta informacje o filmie, drugi wykorzystuje te informacje do kodowania.
ale ani nie wyjaśniono, które informacje wyodrębnić ani jak ich użyć w drugim przebiegu. Więc użyłem następującego polecenia:
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
które przekonwertowało wideo, ale z niechcianymi napisami. W ogóle nie jest jasne, jak mogę uniknąć używania napisów.
źródło
ffmpeg
jest przestarzała, ponieważ dawno temu, mają używać własnego następcę:avconv
.avconv
następnie użyć do konwersji plików VOB do AVI. Polecenieavconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy test.avi
dało błądApplication 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
spróbuj tegoError 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
wtedymencoder 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
- przyjęła, że w części z doc Arch @ dg99 powiązane.Odpowiedzi:
Aby pozbyć się napisów, uważam, że możesz dodać
-nosub
przełącznik, zaraz po nazwie pliku .VOB.Przykład
Detale
Te zaklęcia są często bardzo gęste, więc trochę je rozbijamy
Videos/Test/VIDEO_TS/VTS_01_1.VOB
-o video.avi
-nosub
-nosound
-ovc x264
lista innych kodeków
x264encopts
direct=auto
pass=2
bitrate=900
frameref=5
bframes=1
estymacja ruchu fullpixel alg .:
me=umh
UWAGA: hmm - nierównomierne wyszukiwanie wielu heksagonów (wolne)
włącz wszystkie typy makrobloków:
partitions=all
optymalna kwantyzacja prędkości zniekształcenia:
trellis=1
UWAGA: 2 - włączone podczas wszystkich decyzji trybu (powolne, wymaga subq> = 6)
wartość przyrostu / zmniejszenia kwantyzatora:
qp_step=4
UWAGA: maksymalna wartość, o jaką kwantyzator może być zwiększany / zmniejszany między ramkami (domyślnie: 4)
kompresja kwantyzatora (domyślnie: 0,6):
qcomp=0.7
direct_pred=auto
maksymalny odstęp między klatkami kluczowymi w ramkach:
keyint=300
dostępne opcje to filtry wideo:
-vf
UWAGA: W przypadku przełączników filtrów wideo ważne jest, aby użyć ich
harddup
jako ostatniego filtra: zmusi to MEncodera do zapisania każdej klatki (nawet duplikatów) na wyjściu. Ponadto, jest to niezbędne do korzystaniascale=$WIDTH,-10
z$WIDTH
jak-1
zachować oryginalną szerokość lub nowy, zwykle mniejszy, szerokość: jest to konieczne, ponieważ kodek H.264 wykorzystuje zamiast kwadratowych pikseli i DVD korzysta z prostokątnych pikseli.scale=-1
-10
harddup
źródło
-noaudio
i z-oac copy
, otrzymam dźwięk, który nie jest zsynchronizowany z wideo. Jest albo przemieszczany, z inną prędkością, albo z obydwoma. Wszelkie sugestie, w jaki sposób mogę uzyskać poprawny dźwięk? A co z wieloma plikami VOB? Jak spakować zawartość do jednego.avi
pliku (lub innego formatu)?-oac copy
z 2- krokowym , ponieważ ponownie kodujesz wideo, musisz ponownie kodować dźwięk wraz z nim. Co do „pakowania” je, pliki VOB powinny zostać połączone lubiłem to:cat *.vob all.vob
. Następnie użyjall.vob
w mencoder cmd. Są też inne sposoby, aby to zrobić.Jeśli zamierzasz używać
mplayer
, powinieneś spróbowaćmencoder
( http://www.mplayerhq.hu ). Jedną z jego najlepszych cech jest to, że opcje odtwarzania, które znasz,mplayer
zachowują się prawie tak samo podczas kodowania. Ponadto istnieje wiele wątków dotyczących dokumentacji i wiadomości e-mail dotyczących dokładnie tego, o co pytasz:źródło
mencoder
stron. Istnieje kilka grup pirackich, które używają tylkomencoder
do całej swojej pracy; tak to może być proste, wydajne i automatyczne.Wiem, że to stary post, ale podczas wyszukiwania tego problemu w Internecie pojawia się powyższe pytanie, a niektóre inne wpisy są jeszcze starsze.
Próbowałem różnych narzędzi, ale ostatecznie jestem najbardziej zadowolony z tego polecenia:
To niewielka modyfikacja tej, którą tu znalazłem .
Właśnie wymieniłem kodek audio (
libflac
nie było go w moim systemie, więc zastąpiłem golibmp3lame
( źródłem ) i-crf
wartością zwiększającą jakość. Można również użyć innych formatów, takich jakmp4
.W moim teście (z dość przeciętnym procesorem) plik vob o pojemności 2,6 GB (już połączony z trzech innych plików) został przekonwertowany na wideo avi o wielkości 960 MB o porównywalnej jakości w około 50 minut.
20 to średnia akceptowalna jakość (w artykułach pomocy dotyczących hamulca ręcznego, które widziałem). Większe liczby zmniejszają rozmiar kosztem jakości. Powyżej 20 utrata jakości jest oczywista.
Lepiej jest użyć tego polecenia w terminalu, aby zobaczyć postęp, łatwiej go zabić itp.
To, co podoba mi się w tym poleceniu, to to, że zapewnia dobrą równowagę między jakością, czasem i rozmiarem, i że można go łatwo używać z menu kontekstowego menedżera plików.
Jak to zrobić, zależy od menedżera plików. Polecenie można łatwo dodać do Thunara i Nautilusa jako „akcję niestandardową”. Dodałem go do Dolphin z
~/.kde/share/kde4/services/ServiceMenus/convert_vob_to_avi.desktop
plikiem takim jak ten:źródło