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.