Chất lượng chuyển đổi VOB trong FFmpeg


16

Tôi đang cố gắng chuyển đổi tệp VOB thành mpeg như thế này:

./ffmpeg.exe -i VTS_01_2.VOB -r 24  out1.mpeg

Tuy nhiên, chất lượng rất kém.

Tôi đã thử ./ffmpeg.exe -i VTS_01_2.VOB -vcodec copy out1.mpeg

Nhưng kích thước tệp quá lớn (90% so với bản gốc - 300 MB cho video 4 phút) và Windows Movie Maker bị treo khi cố gắng nhập nó.

Làm cách nào tôi có thể có được một MPEG chất lượng tốt từ VOB của tôi?


Câu trả lời:


28
ffmpeg -i input.vob -c:v copy -c:a copy output.mpg  

Lệnh này không làm giảm kích thước hoặc thay đổi chất lượng. Điều này chỉ đơn thuần là giải mã VOB và đóng gói lại dưới dạng MPEG. Bạn nên để lại với chất lượng chính xác như nhau. Kích thước thay đổi tối thiểu do mất chi phí hoạt động của container VOB.

Nếu bạn muốn duy trì chất lượng và giảm kích thước, bạn sẽ phải chuyển đổi nó với một bộ mã hóa khác như x264 hoặc XviD sang bộ chứa MKV hoặc MP4, ví dụ:

ffmpeg -i input.vob -c:v libx264 -c:a aac -strict experimental output.mp4

Điều này sẽ cung cấp cho bạn video H.264 và âm thanh AAC. Đặt -crf 23cho chất lượng video, trong đó ít có nghĩa là chất lượng tốt hơn (giá trị lành mạnh là từ 18 Tắt28). Chất lượng âm thanh có thể được thay đổi bằng -b:a 192kbitrate cố định hoặc nếu bạn muốn sử dụng một bộ mã hóa khác, chẳng hạn như -c:a libfaac, bạn có thể chọn VBR với -q:a 100(chất lượng mặc định 100%).


Tôi thấy, đây là thông tin tốt để biết. Vẫn đang tìm kiếm một số cách hợp lý để nén và duy trì chất lượng (4 phút với chất lượng tốt nên có thể trong 10-20 MB để đảm bảo ... thậm chí có thể 50 MB là ổn).

1
Điều gì xảy ra nếu có VOB khác là một phần của bộ phim. Có ffmpeg biết bao gồm những người?
CN

1
bạn có thểcat *.VOB > output.vob
dmgl

Đối với Windows, trước tiên bạn cần hợp nhất nhiều VOB : copy /b "1.vob" + "2.vob" + "3.vob" "temp.vob". Xem thêm stackoverflow.com/a/29729610
Basj

4

Gần đây tôi đã thực hiện một số mã hóa VOB sau khi trích xuất một vài đĩa DVD không thể thay thế. Sử dụng ffmpeg version 1.2.4Homebrew trên OSX:

ffmpeg -probesize 2G -analyzeduration 2G \
    -i VTS_04.VOB \
    -map 0:0 -map 0:1 -map 0:2 -map 0:9 \
    -metadata:s:a:0 language=eng -metadata:s:a:0 title="English Stereo" \
    -metadata:s:a:1 language=jap -metadata:s:a:1 title="Japanese Stereo" \
    -metadata:s:s:0 language=eng -metadata:s:s:0 title="English"
    -c:v libx264 -filter:v yadif -crf 18 -level 3.1 -tune film \
    -c:a copy \
    -c:s copy \
    OutputMovie.mkv

Tôi đã phải thiết lập -probesize-analyzedurationvì tệp VOB 5,4 GB có các luồng bắt đầu sau trong tệp không tìm thấy mà không có các tùy chọn này.

Tiếp theo, -maptham số cho phép tôi chọn luồng nào truyền đến đầu ra - luồng video, hai luồng âm thanh đầu tiên và luồng thứ 9, là phụ đề. Sử dụng ffprobe(với -probesize& -analyzedurationđể xem danh sách các luồng).

Thêm một số -metadatavào luồng âm thanh và phụ đề trong đầu ra.

Tùy chọn mã hóa video sau khi -c:vbạn có thể đọc về nơi khác .

Cuối cùng, sao chép luồng âm thanh và phụ đề vào tệp đầu ra. Đầu ra phải được MKVnhúng phụ đề và tất cả siêu dữ liệu một cách chính xác.

Trên Macbook Air 2011 của tôi, mã hóa này mất khoảng 6 giờ và tạo ra một tệp MKV 2,4 GB hoàn hảo.


-1

Cú pháp trong câu trả lời trước không hoạt động trên Mac OS của tôi. Cái này có vẻ hoạt động tốt, với các tùy chọn hơi khác nhau ( -sameqđể khớp với bộ lượng tử hóa đầu vào, -sscho thời gian bù bắt đầu và -tcho thời lượng):

ffmpeg -i VTS_01_1.VOB -sameq -strict experimental -ss 1612 -t 28 test.mpg

3
Câu trả lời được sắp xếp theo phiếu bầu, không theo thời gian. Bạn nên chỉnh sửa câu trả lời của mình để làm rõ câu trả lời trước đó.
Isaac Rabinovitch

1
Bạn phải sử dụng một phiên bản cũ, vì -sameqtùy chọn này đã lỗi thời. Trong các phiên bản cũ sử dụng -vcodec/ -acodecthay vì -c:v/ -c:a.
mark4o
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.