Tôi nên xem thông số nào để giảm kích thước tệp .MOV?


12

Canon 60D của tôi tạo các tệp .MOV khi quay video và tôi phát hiện ra rằng thùng chứa .MOV có luồng video H264 và luồng âm thanh PCM.

Tôi đã sử dụng ffmpeg và GSpot để xem một số video của mình và tôi thấy những gì dường như là bitrate khá cao (22.000kbps cho 640x480, 45.000 cho 1920x1080).

Tôi muốn giảm kích thước của các tệp, nhưng giữ chất lượng khá cao. Tôi đã chơi xung quanh với điều đơn giản nhất tôi có thể nghĩ đến, giảm tốc độ bit và đó là điều tôi mong đợi: cắt bitrate xuống một nửa và kích thước tệp chỉ bằng một nửa. Nhưng tôi tự hỏi liệu có cách nào để xác định bitrate mục tiêu "tốt" hay không, nếu có bất kỳ điểm nào trong việc cố gắng thực hiện bitrate biến.

Câu trả lời:


21

Nhưng tôi tự hỏi liệu có cách nào để xác định bitrate mục tiêu "tốt"

Tốc độ bit mục tiêu tốt là tốc độ bit:

  • được hỗ trợ bởi mạng bạn đang truyền phát tài liệu từ (ví dụ: mạng 3G, WiFi gia đình, v.v.), khá dễ tính
  • có vẻ tốt với bạn , đó là một biện pháp rất chủ quan

22 Mbit / s hoặc 45 Mbit / s thực sự khá cao đối với người dùng trung bình và đặc biệt đối với video đã được nén như h.264. Bạn chắc chắn có thể đi trước và giảm tốc độ bit xuống giá trị "lành mạnh", luôn luôn liên quan đến dung lượng lưu trữ bạn có thể đủ khả năng và chất lượng bạn muốn mất bao nhiêu.

Bạn cũng có thể thay đổi kích thước video 1080p thành 720p nếu bạn không thực sự cần kích thước hoặc không có khả năng xử lý để chỉnh sửa video.

Nếu hoặc có bất kỳ điểm nào trong việc cố gắng làm bitrate biến

Điểm của tốc độ bit không đổi là thích ứng với kịch bản truyền phát trực tuyến trong đó có một nút cổ chai giới hạn tốc độ bit tối đa của video được truyền. Trong thế giới đa phương tiện ngày nay, điều này không nhất thiết phải có ý nghĩa nữa.

Khi bạn ép video thành một lượng bit không đổi mỗi giây, về cơ bản, bạn nói với một bộ mã hóa luôn sử dụng cùng một lượng bit để mã hóa cùng một khung thời gian. Đó có phải là cách tiếp cận tốt nhất? Như bạn có thể đoán bây giờ, không phải vậy. Trích dẫn Hướng dẫn CRF từ Phanh tay (Tôi sẽ quay lại vấn đề này sau):

Mắt nhận biết nhiều chi tiết hơn trong các vật thể tĩnh so với khi chúng chuyển động. Do đó, máy nén video có thể áp dụng nén nhiều hơn (giảm chi tiết hơn) khi mọi thứ đang di chuyển và áp dụng nén ít hơn (giữ lại nhiều chi tiết hơn) khi mọi thứ vẫn còn. Theo chủ quan, video dường như sẽ có chất lượng cao hơn.

Vì vậy, nó ý nghĩa để sử dụng tốc độ bit thay đổi bất cứ khi nào bạn có thể. Nó sẽ làm cho video trông đẹp hơn, thậm chí ở cùng kích thước tệp của video tốc độ bit không đổi.

Thậm chí nhiều hơn, hầu hết các bộ mã hóa - cái nổi tiếng nhất là x264 - thường hoạt động rất tệ khi bạn bảo họ sử dụng tốc độ bit không đổi. Tốt hơn là cho họ thêm "tự do" theo nghĩa là họ muốn chi bao nhiêu bit cho một khung. Rốt cuộc, đó là công việc của bộ mã hóa, chứ không phải bạn. Và đó gọi là "chất lượng không đổi".


Đủ điều đó - điều đó có nghĩa gì trong thực tế? Nếu bạn sử dụng FFmpeg để mã hóa video, thì bạn đã sử dụng một công cụ đủ tốt. Nếu bây giờ bạn cũng đã cài đặt x264 và sử dụng phiên bản mới nhất của cả hai, thì bạn đang sử dụng một trong những bộ mã hóa tốt nhất hiện có sẵn miễn phí. Thay vì mã hóa với tốc độ bit cố định, hãy để x264 chọn số tiền nó muốn chi tiêu. Làm điều này bằng cách sử dụng tùy chọn Yếu tố tỷ lệ không đổi .

Trong một trường hợp rất đơn giản, điều này có nghĩa là đặt giá trị trong khoảng từ 17 đến 23. Tôi chọn MP4 làm thùng chứa đầu ra thay vì MOV vì có các công cụ tốt hơn để điều chỉnh lại có sẵn:

ffmpeg -i input.mov -c:v libx264 -crf 22 output.mp4

Giá trị càng thấp, chất lượng càng tốt và sản lượng càng lớn. Ngược lại, càng cao, chất lượng càng thấp. Đồng thời, tất nhiên bạn sẽ giảm tốc độ bit trung bình cần thiết. Kiểm tra hướng dẫn mã hóa x264 để biết thêm thông tin về ffmpeg.

Nhiệm vụ của bạn bây giờ là tìm giá trị CRF:

  • giảm tốc độ bit tổng thể đến điểm bạn có thể đủ khả năng
  • không làm giảm chất lượng quá nhiều, để video vẫn đẹp

Đúng, điều này liên quan đến rất nhiều mã hóa và thử và sai, nhưng đây là công việc hàng ngày khi bạn điều chỉnh và mã hóa video.

Ồ, và nếu bạn không thích dòng lệnh, Handbrake là một công cụ đa nền tảng miễn phí, hoạt động giống hệt như vậy. Nó thậm chí có một thanh trượt CRF:

nhập mô tả hình ảnh ở đây


Về chi tiết đối tượng chuyển động, không phải nó thường xuyên bị quá tải trong quá trình nén video hay tôi chỉ đơn giản là nhớ các ví dụ xấu? Giống như sự gia tăng đáng chú ý về chi tiết một khi máy ảnh ngừng quay, v.v.
Daniel Beck

Điều này thực sự khá phổ biến, được gọi là vấn đề "ổn định". Ví dụ, khi bạn thấy sự tắc nghẽn biến mất. Đây là điển hình cho kịch bản bitrate thấp trong đó sự thay đổi của chênh lệch chuyển động quá nhanh để điều khiển tốc độ thích ứng. Tôi sẽ giả định rằng mã hóa hai lần có thể giúp ở đây, nhưng có lẽ không nhiều. Tôi không biết liệu có thể loại bỏ hoàn toàn các loại cổ vật này hay không.
slhck

Trước đây tôi đã sử dụng Handbrake, chuyển đổi DV avis từ videocam sang DivX và mp4, nhưng tôi thấy việc làm việc với một dòng lệnh dễ dàng hơn khi cố gắng tìm ra các tùy chọn của mình để chuyển từ .mov sang h264 mp4. Có tương đương với -crf khi bạn tạo DivX không? (hoặc đó có nên là một câu hỏi khác không?)
Ward - Tái lập lại

@ Bạn có thể sử dụng -qscale. Đối với mpeg * tỷ lệ là tuyến tính trong khoảng từ 1-31 (31 là chất lượng kém nhất) và nhân đôi giá trị sẽ dẫn đến khoảng một nửa tốc độ bit. Giá trị 2 có thể được coi là gần như không mất mát. 3-5 thường là một sự cân bằng tốt, nhưng tất nhiên chất lượng là chủ quan và bạn sẽ chỉ cần thử nó.
khẩu hiệu

Đẹp! Vài câu hỏi. (1) một số theo sau "p" có nghĩa là gì trong "video 1080p đến 720p"? (2) x264 sử dụng bitrate biến, nhưng tại sao tùy chọn trong ffmpeg được gọi là Hệ số tỷ lệ không đổi? Cảm ơn!
Tim

2

Hãy thử HandBrake CLI

Tôi muốn thu nhỏ một số tệp MOV và không quan tâm tìm hiểu tất cả các chi tiết về các tùy chọn video. HandBrake CLI là những gì tôi đã sử dụng. Các cài đặt trước là tốt đẹp:

HandBrake cung cấp các cài đặt trước được mã hóa cứng, hoàn toàn giống với các cài đặt sẵn trong MacGui.

Trong trường hợp của tôi, điều này làm việc độc đáo:

HandBrakeCLI -i input.MOV -o output.mp4 --preset="Normal"

Không có cài đặt trước, đầu ra rất nhỏ nhưng chất lượng không tốt. Giá trị đặt trước "Bình thường" có vẻ tốt đối với tôi, nhưng bạn có thể thấy những cái khác có sẵn với HandBrakeCLI --preset-list, hoặc tự điều chỉnh tất cả các tùy chọn nếu bạn thích.

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.