Cài đặt phanh tay để chuyển đổi MKV sang MP4 trong khi vẫn giữ được chất lượng ban đầu


44

Tôi có rất nhiều tệp MKV tôi cần để chuyển đổi sang MP4 và phần mềm tôi chọn là Handbrake.

Tôi bị kẹt với cài đặt nào là tốt nhất cho việc chuyển đổi. Tôi muốn giữ lại chất lượng đầy đủ. Tôi chỉ chuyển đổi với các cài đặt gốc và không thay đổi bất cứ điều gì hoặc có điều gì cụ thể tôi cần thay đổi không?


Dưới đây là hướng dẫn khá chi tiết về cài đặt của Handbrake mattgadient.com/2013/06/12/ trên
janot

Tôi đang gặp lỗi trên một số tệp (đối với mkv sang mp4 và mp4 sang mkv): Tệp đầu ra # 0 không chứa bất kỳ luồng nào. Bất cứ ai có bất kỳ ý tưởng này có nghĩa là gì?
PrimitiveNom

Câu trả lời:


85

Có vấn đề gì với Handbrake?

Khi bạn đang sử dụng Handbrake để chuyển đổi từ định dạng chứa này sang định dạng khác (ví dụ MKV sang MP4 trong trường hợp của bạn), Handbrake sẽ mã hóa lại video. Xem thêm yêu cầu tính năng tương ứng có thể kích hoạt thông qua video:

Xin lỗi, việc thêm video thông qua không được lên kế hoạch. HandBrake được thiết kế để trở thành một bộ chuyển mã video. Nó không được thiết kế để cho phép vượt qua.

Vì vậy, bất cứ khi nào bạn thay đổi container bằng Handbrake, video của bạn sẽ được mã hóa lại, điều đó có nghĩa là a) mất thời gian và b) có thể làm giảm chất lượng.

Tôi có phải mã hóa lại không? Tôi không thể trao đổi container?

Vì không thể thông qua, hãy tự hỏi: Tôi có cần mã hóa lại không? Nếu bạn chỉ muốn thay đổi vùng chứa từ MKV sang MP4, bạn thường không cần mã hóa bất cứ thứ gì , bạn chỉ cần thay đổi "gói" xung quanh video. Điều này không làm giảm chất lượng và nó sẽ là một quá trình nhanh hơn nhiều.

Bạn có thể trao đổi các thùng chứa dễ dàng với FFmpeg - bạn chỉ cần yêu cầu nó sao chép các luồng video và âm thanh:

ffmpeg -i input.mkv -c copy -map 0 output.mp4

Ngoài ra còn có các công cụ như MP4Box cũng có thể tạo các thùng chứa MP4 - tương tự tồn tại cho MKV với MKVtoolnix .

Tuy nhiên, có một cảnh báo lớn: điều này chỉ hoạt động nếu codec âm thanh và video được hỗ trợ trong bộ chứa đích (MP4), ví dụ như trường hợp cho H.264 / H.265 và AAC, nhưng không phải cho nhiều người khác. Ngoài ra, hỗ trợ định dạng phụ đề cho MP4 khác với MKV và thực sự khá hạn chế, vì vậy lệnh này có thể thất bại.

Nếu lệnh này không hoạt động và nếu đầu vào của bạn sử dụng sai codec cho vùng chứa đầu ra, có thể bạn sẽ phải mã hóa lại . Trong trường hợp này, các codec sẽ được điều chỉnh cho thùng chứa đầu ra.

Để hiểu lý do tại sao điều này là cần thiết, điều quan trọng là tìm hiểu sự khác biệt giữa codec video và container . Điều này sẽ giúp bạn hiểu lý do tại sao việc thay đổi container hoạt động và tại sao các container MP4 và MKV thực sự ít liên quan đến codec video.

Tại sao lại mã hóa xấu, dù sao?

Bạn có thể (thường) không giữ được chất lượng đầy đủ khi mã hóa video đã được mã hóa. Điều này là do bản gốc đã bị nén bằng cách vứt bỏ thông tin và bằng cách thực hiện lại, bạn đang giới thiệu mất thế hệ .

Thông thường, bạn muốn mã hóa lại video khi kích thước của nó thay đổi hoặc bạn cần một tốc độ bit cụ thể để nén luồng video của mình hoặc video gốc của bạn sử dụng codec mà bạn không thể phát vì bất kỳ lý do gì.

Vì vậy, nếu bạn tải video MKV của mình vào Handbrake và mã hóa lại nó bằng x264, Handbrake của bộ mã hóa H.264 sử dụng, lưu trữ nó trong một thùng chứa MP4, bạn sẽ mất chất lượng, trừ khi bạn đặt bitrate hoặc yếu tố chất lượng cao đến mức bạn sẽ không (thực sự) thấy sự khác biệt. Nhưng sau đó, kích thước tập tin cũng sẽ lớn hơn.

Trong trường hợp lý tưởng, bạn sẽ chuyển đổi video thành video không nén, điều này sẽ không làm bạn mất chất lượng, nhưng cung cấp cho bạn các tệp có kích thước hàng chục Gigabyte, thậm chí trong vài phút cho tài liệu video.

Được rồi, nhưng tôi thực sự phải mã hóa lại!

Nếu bạn thực sự phải mã hóa lại, hãy đảm bảo không đặt tốc độ bit trung bình, nhưng chọn Hệ số tỷ lệ không đổi , giống như "chất lượng không đổi". Giống như "tốc độ bit thay đổi" cho MP3: Nó sẽ đảm bảo dành các bit cho các phần video cần chúng và làm cho chất lượng tổng thể tốt hơn - ở cùng kích thước tệp.

Giá trị CRF của Sane là từ 19 đến 24, trong đó thấp hơn có nghĩa là "tốt hơn". Vì vậy, bạn có thể thử với Hệ số tỷ lệ 19. Ngoài ra, hãy đảm bảo đặt cấu hình "Cao", cho phép bộ mã hóa sử dụng tất cả chuông và còi và tối ưu hóa chất lượng cho tốc độ bit nhất định.


Cảm ơn bạn! Có vẻ như bạn là người duy nhất quan tâm đến câu hỏi này và giúp tôi, tôi đã làm theo lời khuyên của bạn và có vẻ như chất lượng giống như bản gốc! :)
màu cam

Đối với một số tệp mkv, điều này sẽ thất bại với (Không thể ghi tiêu đề cho tệp đầu ra ... codec không chính xác). Sử dụng ffprobe -i file.mkv để xem định dạng a / v đang ở định dạng nào, bạn có thể sẽ cần phải mã hóa lại với video x264 và âm thanh aac / ac3
Ski_squaw

Bạn chắc chắn 100% rằng các tập tin sắp xếp lại không gây giảm chất lượng ??
PrimitiveNom

1
@BallpointBen Không thể, không: github.com/HandBrake/HandBrake/issues/
gợi

1
@Hashim Mình đã cố gắng làm rõ bài theo yêu cầu. Và liên quan đến câu hỏi của bạn, vì Handbrake không cho phép vượt qua, chuyển đổi từ MP4 sang MKV sẽ làm giảm chất lượng. Và nó sẽ mất rất nhiều thời gian. Chỉ cần làm ffmpeg -i input.mp4 -c copy output.mkvvà bạn sẽ ổn thôi.
slhck

4

Điều này làm việc rất tốt cho tôi. Dưới đây là mã để chuyển đổi tất cả các tệp .mkv sang .mp4 trong windows.

  • Bạn có thể cần thêm ffmpeg vào đường dẫn của mình. bạn chỉ có thể đặt đường dẫn đầy đủ để thực thi ffmpeg, D: \ apps \ ffmpeg \ bin \ ffmpeg.exe
  • Tải xuống ffmpeg cho windows tại đây.
  • Cách sử dụng: Thả tập tin .mkv vào nó. Nó sẽ làm toàn bộ thư mục.

Lưu trong một tệp gọi là convert.bat.

for %%a in ("*.mkv") do ffmpeg.exe -i "%%a" -vcodec copy -acodec copy "%%~na .mp4"
pause

Hoạt động như một lá bùa.
Kit Johnson

Tôi đặt cái này trong thư mục với ffmpeg.exe và sau đó đổi nó thànhfor %%a in ("*.mkv") do %~dp0ffmpeg.exe -i "%%a" -vcodec copy -acodec copy "%%~na .mp4"
davidtbernal 30/03/2017
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.