Làm cách nào để chuyển đổi video MKV thành video MP4 không mất dữ liệu tương thích với thiết bị iOS trên Windows?


10

Tôi mới sử dụng FFmpeg (Windows) và cần một số trợ giúp.

Tôi muốn chuyển đổi MKV của mình sang MP4 với chất lượng càng ít càng tốt. MKV được tạo bằng MakeMKV và chứa các nhạc nền DTS khác. Họ là những người mất mát. Lý do tôi muốn chuyển đổi, là tôi dự định truyền phát nó sang iPad và Apple TV. iPad không hỗ trợ DTS và MKV. MKV là cả DVD và Blu-Ray. MKV chứa video, nhạc phim và phụ đề.

Tôi đã thử điều này, nhưng không nhận được âm thanh do nhạc nền DTS:

ffmpeg -i input.mkv -c:v copy -c:a copy output.mp4

Ai có thể giúp tôi?

Tôi nên sử dụng codec nào? MP4 là tốt nhất cho Apple?


1
Có phiên bản iPad và Apple TV cụ thể nào bạn đang nhắm mục tiêu hay bạn muốn hỗ trợ tất cả chúng?
llogan

2
Lưu ý: MP4 không phải là codec. Nó chỉ là một định dạng tệp (một "container").
slhck

Tôi có iPod Air mới nhất. Tôi có Apple TV mới nhất. Tôi biết MP4 là một container và không phải là codec :)
Tuyệt vời

Vui lòng bao gồm một số thông tin về một trong những đầu vào điển hình của bạn. Đầu ra giao diện điều khiển hoàn chỉnh ffmpeg -i input.mkvsẽ đủ.
llogan

Tôi đã thử ffmpeg -i input.mkv -c: v copy -c: một bản sao đầu ra.mp4 Điều này đã phát nhưng không có âm thanh vì apple không chơi DTS. Cũng đã thử ffmpeg -i input.mkv -strict thử nghiệm -c: v copy -c: a aac -b: a 192k -q: a 6 output.mp4 nhưng phim (cả video và âm thanh) không phát mượt iPad Air (cả luồng và tải xuống).
Tuyệt vời

Câu trả lời:


22

MP4 thực sự là định dạng tốt nhất cho các thiết bị và phần mềm của Apple. DTS cũng thực sự không được hỗ trợ, nhiều tệp video MP4 chứa hai bản âm thanh, một DTS và một AAC.

Có nhiều bộ mã hóa có sẵn, tất cả chúng đều được ghi lại trên wiki ffmpeg . Codec nào khả dụng tùy thuộc vào cách ffmpeg được biên dịch. libfdk_aac sẽ mang lại cho bạn kết quả tốt nhất, nhưng do codec này không miễn phí nên không phải lúc nào cũng có sẵn.

Những điều bạn có thể thử (tôi đặt chúng theo thứ tự chất lượng cảm nhận của tôi, tốt nhất trước tiên)

ffmpeg -i input.mkv -c:v copy -c:a libfdk_aac -b:a 128k output.mp4
ffmpeg -i input.mkv -strict experimental -c:v copy -c:a aac -b:a 192k output.mp4
ffmpeg -i input.mkv -c:v copy -c:a libfaac -b:a 192k output.mp4

Nếu bạn cũng muốn giữ lại bản nhạc DTS, hãy sử dụng -mapcờ.

Không trực tiếp sử dụng cho OP, nhưng chương trình OS X subler làm cho quá trình này rất dễ dàng.

EDIT: Bình luận tl; dr? OP đã giải quyết vấn đề bằng lệnh sau

ffmpeg -i input.mkv -strict experimental -map 0:0 -map 0:1 -map 0:2 -map 0:3 -c:v copy -c:a aac -b:a 384 -c:s copy output.mp4

MIPO: nếu -c:s copyphụ đề không hoạt động, hãy thử -c:s mov_text.
Cứu tôi nhiều lần.


Tôi không nghĩ chế độ VBR của bộ mã hóa AAC nội bộ hoạt động như dự định. Lần trước tôi đã kiểm tra nó đã bị hỏng. Tốt hơn nên sử dụng CBR và sử dụng VBR cho các bộ mã hóa khác ( libfdklibfaac)
slhck

Tôi cũng đã đọc rằng libfdk_aac sẽ cho kết quả tốt nhất. Tôi đã tải xuống phiên bản tĩnh 32 bit cho Windows (git-9722a6a (2014-05-24)). Làm cách nào để kiểm tra xem tôi có codec libfdk không? Chỉnh sửa: Tôi nhận được bộ mã hóa không xác định 'libfdk_aac'. Tôi có thể tải xuống ở đâu, hoặc có một codec âm thanh tốt như vậy không?
Tuyệt vời

Đã thử cả ffmpeg -i input.mkv -c: v copy -c: a libfdk_aac -b: a 128k output.mp4 và ffmpeg -i input.mkv -c: v copy -c: a libfaac -b: a 192k .mp4 Không đi :(
Tuyệt vời

@Striky "Không đi :(" Tôi đã thử lệnh cuối cùng với một ffmpeg mới từ Homebrew, hoạt động với tôi. Bạn có thể cung cấp thêm chi tiết về lý do tại sao nó không hiệu quả với bạn không?
jornane

@slhck: Tôi vừa thử -c:a aac -q:a 6cài đặt và so sánh kết quả với -c:a libfaac -b:a 192k, theo tôi, codec aac cho kết quả tốt hơn libfaac , nhưng vì codec đang được phát triển, điều này có thể thay đổi. libfdk_aac có thể sẽ cho kết quả thậm chí tốt hơn, nhưng tôi không có sẵn nó ngay bây giờ.
jornane

0

Tôi biết đây là một câu hỏi cũ - và đã có câu trả lời - nhưng tôi muốn chia sẻ một số lệnh tôi đang sử dụng với FFmpeg trên macOS.

Một video x264 được mã hóa MP4 với âm thanh AAC từ MKV

Chuyển đổi cơ bản của MKV với MP4 trong đó nhưng chuyển đổi âm thanh thành AAC với giá 128k. Lưu ý ánh xạ: -map 0:0có nghĩa là rãnh thứ nhất ( 0) từ đầu vào nguồn ( 0) và -map 0:1có nghĩa là rãnh thứ hai ( 1) từ cùng một đầu vào nguồn ( 0). Tôi thích làm điều này trong trường hợp có nhiều bản âm thanh để tôi có thể làm một cái gì đó như chọn -map 0:3để có được bản nhạc thứ ba.

ffmpeg -i input.mkv \
       -c:v copy \
       -c:a aac -b:a 128k \
       -map 0:0 -map 0:1 \
       output.mp4 \
       ;

Một video HEVC / x265 được mã hóa MP4 với âm thanh AAC từ MKV

Điều này tương tự như lệnh x264 ở trên, nhưng thay vào đó sử dụng HEVC / x265 để có kích thước tệp nhỏ hơn với cùng một video - nếu không có chất lượng tốt hơn - từ MKV nguồn. Lưu ý rằng tôi thích chia tỷ lệ video iOS thành 720 khi sử dụng HEVC / x265; chất lượng để phát lại mà không có quá nhiều tiếng ồn là điều chắc chắn trên MacBook, iPad và iPhone của tôi. Chỉ cần chắc chắn rằng phần cứng và hệ điều hành của bạn hỗ trợ phát lại HEVC / x265. Và được cảnh báo trước: HEVC / x265 rất tốn CPU, vì vậy nếu máy của bạn không có nhiều năng lượng CPU, có thể mất tới một ngày hoặc lâu hơn để mã hóa 90 phút video.

ffmpeg -i input.mkv \
       -vf scale=-1:720 \
       -c:v libx265 -crf 20 \
       -c:a aac -b:a 128k \
       -threads 4 \
       -tag:v hvc1 \
       -map 0:0 -map 0:1 \
       output.mp4 \
       ;

Dưới đây là bảng phân tích của từng tham số cốt lõi khác với tệp đầu vào và đầu ra.

  • -vf scale=-1:720: Chia tỷ lệ video thành 720 chiều cao và tự động tính chiều rộng. Lưu ý rằng FFmpeg có thể bóp nghẹt một số MKV vì lý do tôi không rõ ràng 100% vì vậy bạn sẽ phải đặt rõ ràng độ rộng với thứ gì đó như thế này : -vf scale=1280:720. Thử nghiệm và xem những gì làm việc cho bạn.
  • -c:v libx265 -crf 20: Đây libx265là codec mã hóa video. Các -crf 20CRF (yếu tố tốc độ không đổi) . CRF mặc định nếu bạn không chỉ định nó là 28, nhưng - tính đến thời điểm hiện tại - hãy tìm chất lượng tương đối giống với Meh Meh. Tôi thích 20 vì nó là sự cân bằng rất tốt giữa chất lượng và kích thước tệp.
  • -threads 4: Tôi muốn chỉ định số lượng chủ đề. 4 là những gì hệ thống của tôi có thể xử lý bây giờ, nhưng đôi khi tôi giảm xuống còn 2 hoặc 3. Số cao hơn sẽ nhanh hơn nếu bạn có đủ CPU để xử lý.
  • -tag:v hvc1: Cài đặt siêu dữ liệu kỳ diệu để đặt cho các thiết bị iOS phát lại video HEVC / x265 đúng cách.

Và đó là về điều đó!

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.