Chuyển đổi MKV với âm thanh DTS sang video MP4 với âm thanh AAC hoặc AC3


13

Tôi đã có một bộ phim 4,3 GB 720p và muốn chuyển đổi MKV này với âm thanh DTS sang video MP4 với âm thanh AAC hoặc AC3.

Đôi khi tôi nhận được:

ffmpeg: unrecognized option '-c:v'

Càng và:

aac unrecognized

¬và những thứ tương tự khác.

Tôi muốn bộ phim này có kích thước nhỏ như những gì được tìm thấy trên các trang web torrent.


Bạn có thể giúp chúng tôi xin vui lòng và cung cấp cho chúng tôi lệnh chính xác mà bạn đang sử dụng và đầu ra hoàn chỉnh, không bị cắt mà FFmpeg tạo ra không? Bạn đang dùng hệ điều hành nào? Và cuối cùng: Bạn phải sử dụng FFmpeg không? Vui lòng chỉnh sửa câu hỏi của bạn.
slhck

Câu trả lời:


19

Hãy chắc chắn rằng bạn chạy phiên bản mới nhất của FFmpeg . Đối với Windows và Linux, các bản dựng tĩnh có sẵn từ trang chủ. Đối với macOS, bạn có thể cài đặt FFmpeg thông qua Homebrew .

Sau đó, trong trường hợp đơn giản nhất chạy:

ffmpeg -i input.mkv -c:v libx264 -c:a aac out.mp4

Đặt chất lượng video

Đối với việc kiểm soát chất lượng video, thiết lập các crfthông số , mặc định là 23. giảm đồng nghĩa với chất lượng tốt hơn, nhưng kích thước tập tin cao hơn. Hãy thử các giá trị từ 19 đến 26 để xem cái gì phù hợp nhất. Bạn cũng có thể đặt tốc độ bit nhất định, tùy thuộc vào kích thước tệp bạn muốn. Ở đây, ví dụ, 500 kBit / s:

ffmpeg -i input.mkv -c:v libx264 -crf 23 …
ffmpeg -i input.mkv -c:v libx264 -b:v 500k …

Đối với âm thanh, bạn cũng có thể đặt tốc độ bit -b:a.

Nhiều kênh âm thanh

Nếu luồng âm thanh của bạn đang sử dụng nhiều kênh (ví dụ: âm thanh 5.1), bạn cần sử dụng một bộ mã hóa AAC ( libfdk_aac) khác. Bộ mã hóa này không có sẵn trong các bản dựng tĩnh, nhưng có thể được lấy bằng các phiên bản đóng gói sẵn / Homebrew của ffmpeg.

ffmpeg -i input.mkv -c:v libx264 -crf 23 -c:a libfdk_aac -b:a 384k out.mp4

Sao chép tất cả các luồng

Trong trường hợp tệp đầu vào của bạn có nhiều luồng video, âm thanh và phụ đề, ffmpeg theo mặc định không chuyển đổi tất cả chúng.

Sử dụng -map 0để hướng dẫn ffmpeg lấy tất cả các luồng từ tệp đầu vào (xem Wiki FFmpeg để biết thêm thông tin). Điều này hữu ích để giữ lại các ngôn ngữ và phụ đề khác nhau có thể có trong bản gốc.

ffmpeg -i input.mkv -c:v libx264 -c:a aac -map 0 out.mp4

2

MKV chỉ là một container. Bạn có thể có một video MPEG-4 bên trong một .mkvcontainer.

Đề nghị của tôi là thế này:

Đẩy tập tin vào một .mkvthùng chứa:

mkvmerge -o newfile.mkv inputfile.m4v

Lấy mkvdts2ac3.shkịch bản có sẵn ở đây và chạy lệnh này:

mkvdts2ac3.sh newfile.mkv

Làm xong!

TV của tôi hỗ trợ AC3, nhưng không phải DTS, vì vậy thiết lập này thật tuyệt vời đối với tôi.

Xin lưu ý rằng mkvdts2ac3.shcó một số yêu cầu phụ thuộc rất cơ bản. Bạn sẽ thấy chúng khi bạn chạy tập lệnh.


root @ Frenzen: ~ / Tải xuống / 2.Days.In.New.York.2012.720p.BluRay.X264- 7SinS # mkvmerge -o 7s-2days-in-ny-720p.mkv inputfile.m4v mkvmerge v3.0 Treo lên Hang-Up của bạn ') được xây dựng vào ngày 29 tháng 12 năm 2009 00:24:14 Lỗi: Không thể mở tệp nguồn' inputfile.m4v 'hoặc truy xuất kích thước của nó bằng cách tìm đến cuối không hoạt động. root @ Frenzen: ~ / Tải xuống / 2.Days.In.New.York.2012.720p.BluRay.X264-7SinS #
dale

Âm thanh như một tập tin đầu vào bị hỏng.
UtahJarhead

@dale Bạn có thể vui lòng bao gồm đầu ra tôi đã hỏi bạn trong nhận xét về câu hỏi ban đầu của bạn không? Điều đó sẽ giúp chúng tôi khắc phục sự cố của bạn.
slhck

Ngoài ra, UtahJarhead, OP dường như muốn có tệp kết quả MP4 từ tệp đầu vào MKV. Anh ta không có một m4vtập tin, đó là lý do tại sao lệnh của bạn không hoạt động. Ngoài ra, dale đã sử dụng cú pháp sai, chỉ định tệp hiện có của mình là đầu ra và đưa ra inputfile.m4vlàm đầu vào, rõ ràng là không tồn tại.
slhck

mp4 là một codec, không phải là một container. mkv là một container, không phải là codec. Điều đó giống như nói rằng họ muốn làm một nhà để xe từ một chiếc Cadillac. Codec nào là tệp .mkv đầu vào vì điều đó có thể tạo ra sự khác biệt.
UtahJarhead

1

Bạn có thể làm điều này:

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

Hoặc nếu không có niềm vui, hãy thử sửa dòng bit bên trong

Chuyển đổi sang âm thanh nổi và asc:

ffmpeg -i input.mkv -c:v copy -c:a libfaac    \
-bsf:a aac_adtstoasc -ac 2 -ar 48000 -ab 256k \
out.mkv

Nếu là 5.1, âm thanh vòm và giọng nói khó nghe là do hộp thoại nằm trên kênh trung tâm và bạn chỉ nghe thấy âm thanh phát ra từ các kênh R & L nhưng hiệu ứng âm nhạc và âm thanh đang bùng nổ.

Bạn có thể bù cho điều này bằng bộ lọc dolby-II để cắt kênh xung quanh và kênh trung tâm tách thành âm thanh nổi, và kết hợp tất cả chúng thành các kênh âm thanh nổi phải và trái.

ffmpeg -i input.mkv -c:v copy -c:a libfaac -bsf:a aac_adtstoasc   \
  -af aresample=matrix_encoding=dplii -ac 2 -ar 48000 -ab 256k    \
  out.mkv

0

Như @UtahJarhead đã nói , MKV là container. Về cơ bản, những gì bạn muốn là chuyển đổi âm thanh DTS sang AC3 hoặc AAC.

Cách tốt nhất để làm điều này là sử dụng FFmpeg cho âm thanh và MKVToolNix để hợp nhất âm thanh và video.

Nếu bạn thích GUI thay vì lệnh, tôi đã mô tả cách thực hiện việc này tại đây: Chuyển đổi âm thanh không được hỗ trợ từ video .


1
Bạn nên mô tả quá trình ở đây, sau đó và chỉ sau đó, cung cấp liên kết tải xuống. Cho ứng dụng.
Ramhound

@Ramhound Tôi vừa chỉnh sửa câu trả lời
IvanRF
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.