Cách chuyển đổi MKV sang AVI với tổn thất tối thiểu


23

Để chuyển đổi MKV sang AVI, tôi làm hai việc. Điều đầu tiên tôi làm là đây:

ffmpeg -i filename.mkv -vcodec copy -acodec copy output.avi

hoặc này:

ffmpeg -i filename.mkv -sameq -acodec copy output.avi

Một trong hai điều này sẽ chuyển đổi MKV thành AVI, nhưng vấn đề là video không phát được trơn tru vì một số lý do. Mặc dù vậy cũng tốt, bởi vì nếu tôi làm thêm một điều nữa thì nó sẽ được sửa:

ffmpeg -i output.avi -vcodec mpeg4 -b 4000k -acodec mp2 -ab 320k converted.avi

Sau khi tôi làm điều này thì các tập tin chơi mà không có vấn đề. Tôi đã thành công khi thực hiện theo cách này cho một tệp, nhưng sau đó tôi đã thử nó trên một tệp khác và có một sự mất mát nhỏ nhưng đáng chú ý về chất lượng video. Đây là đầu ra tôi nhận được khi thực hiện bước thứ hai:

FFmpeg version 0.6.1, Copyright (c) 2000-2010 the FFmpeg developers
  built on Dec 29 2010 18:02:10 with gcc 4.2.1 (Apple Inc. build 5664)
  configuration: 
  libavutil     50.15. 1 / 50.15. 1
  libavcodec    52.72. 2 / 52.72. 2
  libavformat   52.64. 2 / 52.64. 2
  libavdevice   52. 2. 0 / 52. 2. 0
  libswscale     0.11. 0 /  0.11. 0

Seems stream 0 codec frame rate differs from container frame rate: 359.00 (359/1) -> 29.92 (359/12)
Input #0, avi, from 'output.avi':
  Metadata:
    ISFT            : Lavf52.64.2
  Duration: 00:04:17.21, start: 0.000000, bitrate: 3074 kb/s
    Stream #0.0: Video: mpeg4, yuv420p, 704x480 [PAR 229:189 DAR 5038:2835], 29.92 fps, 29.92 tbr, 29.92 tbn, 359 tbc
    Stream #0.1: Audio: vorbis, 48000 Hz, stereo, s16
Output #0, avi, to 'converted.avi':
  Metadata:
    ISFT            : Lavf52.64.2
    Stream #0.0: Video: mpeg4, yuv420p, 704x480 [PAR 229:189 DAR 5038:2835], q=2-31, 4000 kb/s, 29.92 tbn, 29.92 tbc
    Stream #0.1: Audio: mp2, 48000 Hz, stereo, s16, 320 kb/s
Stream mapping:
  Stream #0.0 -> #0.0
  Stream #0.1 -> #0.1

Tôi chỉ sử dụng các cài đặt lớn tùy ý ở bước thứ hai và nó hoạt động tốt trước đó nhưng không phải trong trường hợp này. Tôi nên sử dụng cài đặt nào?


Đây là những gì ffmpeg đã cho tôi với sameq: Tùy chọn 'sameq' đã bị xóa. Nếu bạn đang tìm kiếm một tùy chọn để duy trì chất lượng (không phải là -sameq dành cho), hãy sử dụng -qscale 0 hoặc tùy chọn yếu tố chất lượng tương đương.
DavidG

Câu trả lời:


25

Để chỉ sao chép dòng bit video và âm thanh, do đó không giảm chất lượng:

ffmpeg -i filename.mkv -c:v copy -c:a copy output.avi

Nếu bạn muốn FFmpeg tự động chuyển đổi video và âm thanh:

ffmpeg -i filename.mkv output.avi

7
Cài đặt mặc định của FFmpeg có xu hướng khủng khiếp. Dưới đây là một hướng dẫn chung để mã hóa với các codec khác nhau; wiki FFmpeg có các hướng dẫn chuyên sâu hơn.
evilsoup

mã đầu tiên được tạo tập tin bị hỏng không phát trong VLC.
codemirror

18
 ffmpeg -i "input.mkv" -f avi -c:v mpeg4 -b:v 4000k -c:a libmp3lame -b:a 320k "converted.avi"

Đề nghị của tôi: sử dụng mpeg4 + mp3 trong avi container.


1

Hãy thử sử dụng ffmulticonverter. Rất hữu ích cho tôi: nó là một loại GUI cho ffmpeg và bạn có thể dễ dàng thiết lập tất cả các tham số. Ngoài ra, bạn có thể tìm thấy một danh sách tất cả các định dạng video có thể.

LP


-3

Tôi có thể giới thiệu một phím tắt tôi sử dụng thường xuyên không?

ffmpeg -i filename.mkv -sameq output.avi

4
sameq không có nghĩa là cùng chất lượng và không nên được sử dụng. Trong thực tế, nó đã bị xóa khỏi ffmpeg hoàn toàn. Thay vì đặt chất lượng bằng cách sử dụng bất cứ thứ gì mà codec mục tiêu cung cấp.
slhck
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.