Tôi đang cố gắng chuyển đổi tệp VOB được sao chép từ DVD sang avi trong Ubuntu 13.10. Tôi đã thử dvdrip
, không thành công do lỗi đếm khung hình hoặc một cái gì đó. Tôi cũng đã thử dùng acidrip, nhưng nó luôn chọn một đoạn âm thanh mà tôi không muốn sử dụng. Tôi muốn có một giải pháp dòng lệnh để tạo một avi với các tính năng sau:
- có thể sử dụng với mplayer (tức là sử dụng các chức năng bước)
- với phụ đề theo yêu cầu (hoặc không có ai cả)
- với bản nhạc chính xác
- với video và âm thanh đồng bộ
Tôi đã thử một số ffmpeg
và avconv
các lệnh và quản lý để tạo ra một avi, nhưng đoạn video và âm thanh đã hoàn toàn mất đồng bộ. Vậy tôi nên sử dụng tùy chọn nào để chuyển đổi tệp VOB thành tệp avi?
Tôi sẽ đánh giá cao một số giải thích về các lựa chọn được đề xuất!
Thông tin thêm:
Các
ffmpeg
lệnh cho đầu ra sau đây cho các tập tin đầu vàoInput #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
Lệnh sau
ffmpeg -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -ss 589 -t 274 -sameq -acodec copy -ab 320k output.avi
ví dụ dẫn đến sự cố của phiên Ubuntu của tôi.
Lệnh sau
avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy output.avi
ví dụ dẫn đến lỗi sau:
Application provided invalid, non monotonically increasing dts to muxer in stream 1: 374 >= 374 av_interleaved_write_frame(): Invalid argument
Lệnh sau
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
ví dụ dẫn đến lỗi sau:
Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height
Lệnh sau
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
ví dụ dường như làm việc cho một số khung. Nhưng rất nhanh tôi đã gặp nhiều lỗi về hình thức
[ac3 @ 0x120d480] frame sync error Error while decoding stream #0:1 frame CRC mismatch
Lệnh sau
mencoder Videos/Test/VIDEO_TS/VTS_01_1.VOB -oac copy -ovc x264 -x264encopts bitrate=2500 -o output.avi
đã thực hiện một số chuyển đổi, nhưng (i) sử dụng phụ đề mặc dù tôi không muốn sử dụng chúng (ii) đã sai âm thanh (âm thanh và video bị thất lạc khủng khiếp) và (iii) dường như chậm hơn so với phim thực sự (có thể mất 2 giờ cho một bộ phim 90 phút).
Tôi đã cố gắng ra lệnh ở đây (bài thứ ba từ Xeratul), nhưng nó đã dừng với lỗi
FATAL: Cannot initialize video driver.
Tôi đã thử đề xuất dưới đây để xem trang mencoder . Trang này gợi ý sử dụng hai lượt:
lần đầu tiên đọc thông tin về bộ phim, lần thứ hai sử dụng thông tin đó để mã hóa.
nhưng không giải thích được thông tin nào cần trích xuất cũng như cách sử dụng chúng trong lần chuyển thứ hai. Vì vậy, tôi đã sử dụng lệnh sau:
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
đã chuyển đổi video, nhưng với một phụ đề không mong muốn. Không rõ ràng về cách tôi có thể tránh sử dụng phụ đề.
avconv
sau đó để chuyển đổi tập tin VOB sang avi. Lệnh avconv -i Videos/Test/VIDEO_TS/VTS_01_1.VOB -acodec copy -vcodec copy test.avi
đã báo lỗi Application 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
hãy thử điều này
Error 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
sau đó mencoder 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
- lấy phần đó từ Arch doc @ dg99 được liên kết.
ffmpeg
không được dùng nữa từ lâu, bạn phải sử dụng người kế vị của nó :avconv
.