Encode/AV1 – FFMPEG, NVIDIA tuyên bố có bộ mã hóa AV1 tốt hơn AMD và Intel.
NVIDIA tuyên bố có bộ mã hóa AV1 tốt hơn AMD và Intel
libaom-av1 có chế độ chất lượng không đổi (CQ) (như CRF trong x264 và x265) sẽ đảm bảo rằng mọi khung đều có được số bit mà nó xứng đáng để đạt được mức chất lượng (nhận thức) nhất định, thay vì mã hóa mỗi khung hình để đáp ứng mục tiêu tỷ lệ bit. Điều này dẫn đến chất lượng tổng thể tốt hơn. Nếu bạn không cần phải đạt được kích thước tệp đích cố định, đây sẽ là phương pháp bạn chọn.
Hướng dẫn mã hóa video AV1
AV1 là một codec video nguồn mở và miễn phí bản quyền được phát triển bởi Liên minh cho truyền thông mở (AOMEDIA), một tập đoàn công nghiệp phi lợi nhuận. Tùy thuộc vào trường hợp sử dụng, AV1 có thể đạt được hiệu suất nén cao hơn khoảng 30% so với VP9 và hiệu suất cao hơn khoảng 50% so với H.264.
Hiện tại có ba bộ mã hóa AV1 được FFMPEG hỗ trợ: libaom (được gọi bằng libaom-av1 trong ffmpeg), svt-av1 (libsvtav1) và rav1e (librav1e). Hướng dẫn này hiện đang tập trung vào Libaom và SVT-AV1.
libaom
libaom (libaom-av1) là bộ mã hóa tham chiếu cho định dạng AV1. Nó cũng được sử dụng để nghiên cứu trong quá trình phát triển AV1. Libaom dựa trên libvpx và do đó chia sẻ nhiều đặc điểm của nó về các tính năng, hiệu suất và cách sử dụng.
Để cài đặt FFMPEG với sự hỗ trợ cho libaom-AV1, hãy xem các hướng dẫn biên dịch và biên dịch FFMPEG với tùy chọn –Enable-Libaom.
Libaom cung cấp các chế độ kiểm soát tỷ lệ sau đây xác định chất lượng và kích thước tệp thu được:
- Chất lượng liên tục
- Chất lượng hạn chế
- Bitrate trung bình 2-Pass
- Tốc độ bit trung bình 1-pass
Để biết danh sách các tùy chọn, hãy chạy bộ mã hóa FFMPEG -H = libaom -AV1 hoặc kiểm tra tài liệu trực tuyến của FFMPEG. Đối với các tùy chọn có thể được truyền qua -aom -params, việc kiểm tra đầu ra -giúp của ứng dụng AOMENC được khuyến nghị, vì hiện tại không có tài liệu tham khảo trực tuyến chính thức cho chúng.
Ghi chú: Người dùng libaom cũ hơn phiên bản 2.0.0 sẽ cần thêm thử nghiệm -strict (hoặc bí danh -strict -2).
Chất lượng liên tục
libaom-av1 có chế độ chất lượng không đổi (CQ) (như CRF trong x264 và x265) sẽ đảm bảo rằng mọi khung đều có được số bit mà nó xứng đáng để đạt được mức chất lượng (nhận thức) nhất định, thay vì mã hóa mỗi khung hình để đáp ứng mục tiêu tỷ lệ bit. Điều này dẫn đến chất lượng tổng thể tốt hơn. Nếu bạn không cần phải đạt được kích thước tệp đích cố định, đây sẽ là phương pháp bạn chọn.
Để kích hoạt chế độ này, chỉ cần sử dụng công tắc -CRF cùng với giá trị số mong muốn.
ffmpeg -i đầu vào.mp4 -c: v libaom -av1 -crf 30 av1_test.MKV
Giá trị CRF có thể là từ 0 trận63. Giá trị thấp hơn có nghĩa là chất lượng tốt hơn và kích thước tệp lớn hơn. 0 có nghĩa là không mất mát. Giá trị CRF là 23 mang lại mức chất lượng tương ứng với CRF 19 cho x264 (nguồn), sẽ được coi là không có tổn thất trực quan.
Lưu ý rằng trong các phiên bản FFMPEG trước 4.3, kích hoạt chế độ CRF cũng yêu cầu đặt tốc độ bit thành 0 với -b: v 0 . Nếu điều này không được thực hiện, công tắc -CRF sẽ kích hoạt chế độ chất lượng bị ràng buộc với tốc độ bit mặc định là 256kbps.
Chất lượng hạn chế
Libaom-AV1 cũng có chế độ Chất lượng (CQ) bị ràng buộc sẽ đảm bảo rằng chất lượng không đổi (nhận thức) được đạt. Phương pháp này rất hữu ích cho các video mã hóa số lượng lớn theo cách nói chung là nhất quán.
ffmpeg -i đầu vào.MP4 -C: V LIBAOM -AV1 -CRF 30 -B: V 2000K đầu ra.MKV
Chất lượng được xác định bởi -CRF và giới hạn bitrate của -b: v trong đó tốc độ bit PHẢI không khác nhau.
Bạn cũng có thể chỉ định tỷ lệ bit tối thiểu và tối đa thay vì mục tiêu chất lượng:
ffmpeg -i đầu vào.mp4 -c: v libaom -AV1 -minrate 500K -B: V 2000K -Maxrate 2500K đầu ra.MP4
Ghi chú: Khi muxing vào MP4, bạn có thể muốn thêm -movflags +fastStart vào các tham số đầu ra nếu sử dụng dự định cho tệp kết quả đang phát trực tuyến.
Hai thông số
Để tạo các mã hóa hiệu quả hơn khi đạt được tỷ lệ bit mục tiêu cụ thể, bạn nên chọn mã hóa hai thông. Mã hóa hai thông cũng có lợi cho hiệu quả mã hóa khi chất lượng không đổi được sử dụng mà không cần mục tiêu bitrate. Đối với hai lần, bạn cần chạy FFMPEG hai lần, với gần như cùng một cài đặt, ngoại trừ:
- Trong Pass 1 và 2, sử dụng các tùy chọn -Pass 1 và -pass 2, tương ứng.
- Trong Pass 1, xuất vào bộ mô tả tệp null, không phải là một tệp thực tế. (Điều này sẽ tạo ra một logfile mà ffmpeg cần cho vượt qua thứ hai.)
- Trong Pass 1, bạn có thể bỏ âm thanh bằng cách chỉ định -an .
ffmpeg -i đầu vào.mp4 -c: v libaom -av1 -b: v 2m -pass 1 -an -f null /dev /null && \ ffmpeg -i input.mp4 -c: v libaom -av1 -b: v 2m -pass 2 -c: a libopus output.MKV
Ghi chú: Người dùng Windows nên sử dụng nul thay vì /dev /null và ^ thay vì \ .
Nhịp bit trung bình (ABR)
libaom-av1 cũng cung cấp chế độ “bitrate trung bình” đơn giản. Trong chế độ này, trung bình nó sẽ cố gắng đạt được tốc độ bit được chỉ định, e.g. 2 Mbit/s.
ffmpeg -i đầu vào.mp4 -c: v libaom -av1 -b: v 2m đầu ra.MKV
Chỉ sử dụng tùy chọn này nếu kích thước tệp Và Thời gian mã hóa là những yếu tố quan trọng hơn chất lượng một mình. Mặt khác, sử dụng một trong các phương pháp kiểm soát tỷ lệ khác được mô tả ở trên.
Kiểm soát tốc độ / chất lượng
-CPU được sử dụng đặt ra mức độ hiệu quả của nén. Mặc định là 1. Giá trị thấp hơn có nghĩa là mã hóa chậm hơn với chất lượng tốt hơn và ngược lại. Các giá trị hợp lệ là từ 0 đến 8 bao gồm.
-ROW-MT 1 cho phép đa luồng dựa trên hàng để tối đa hóa việc sử dụng CPU. Để cho phép hiệu suất giải mã nhanh, cũng thêm gạch (i.e. -gạch 4×1 hoặc -tiles 2×2 cho 4 gạch). Kích hoạt hàng-MT chỉ nhanh hơn khi CPU có nhiều luồng hơn số lượng gạch được mã hóa.
-Việc sử dụng thời gian thực kích hoạt chế độ thời gian thực, có nghĩa là cho các trường hợp sử dụng mã hóa trực tiếp (phát trực tiếp, hội nghị truyền hình, v.v.). -Các giá trị được sử dụng CPU trong khoảng 7-10 chỉ có sẵn ở chế độ thời gian thực (mặc dù do lỗi trong FFMPEG, không thể sử dụng Cài đặt trước 8 lần qua FFMPEG).
Vị trí KeyFrame
Theo mặc định, khoảng thời gian khóa tối đa của Libaom là 9999 khung hình. Điều này có thể dẫn đến tìm kiếm chậm, đặc biệt là với nội dung có ít hoặc thay đổi cảnh không thường xuyên.
Tùy chọn -g có thể được sử dụng để đặt khoảng thời gian khóa tối đa. Bất cứ điều gì lên đến 10 giây đều được coi là hợp lý cho hầu hết các nội dung, vì vậy trong 30 khung hình mỗi thứ hai, người ta sẽ sử dụng -g 300, cho nội dung 60 khung hình / giây -g 600, v.v.
Để đặt khoảng thời gian KeyFrame cố định, đặt cả -g và -keyInt_min thành cùng một giá trị. Lưu ý rằng hiện tại -KeyInT_Min bị bỏ qua trừ khi nó giống như -g, do đó khoảng thời gian khóa tối thiểu không thể được đặt.
Đối với đầu ra trong nội bộ, hãy sử dụng -g 0 .
HDR và độ sâu bit cao
Khi mã hóa bằng HDR, cần phải truyền thông tin màu; -colorspace, -color_trc và -color_primaries . Ví dụ: YouTube HDR sử dụng
-Colorspace BT2020NC -Color_TRC SMPTE2084 -Color_Primaries BT2020
AV1 bao gồm hỗ trợ 10 bit trong hồ sơ chính của nó. Do đó, nội dung có thể được mã hóa trong 10 bit mà không phải lo lắng về bộ giải mã phần cứng không tương thích.
Để sử dụng 10 bit trong hồ sơ chính, hãy sử dụng -PIX_FMT YUV420P10LE . Đối với 10 bit với mẫu Submpling 4: 4: 4 (yêu cầu cấu hình cao), sử dụng -PIX_FMT YUV444P10LE . 12 bit cũng được hỗ trợ, nhưng yêu cầu hồ sơ chuyên nghiệp. Xem bộ mã hóa ffmpeg -help = libaom -av1 cho các định dạng pixel được hỗ trợ.
Mã hóa không mất
Sử dụng -CRF 0 để mã hóa không mất. Do lỗi có trong các phiên bản FFMPEG trước 4.4, Khung đầu tiên sẽ không được bảo tồn không mất mát (vấn đề đã được khắc phục vào ngày 21 tháng 3 năm 2021). Như một cách giải quyết trên Pre-4.4 phiên bản một có thể sử dụng -aom -params lossless = 1 cho đầu ra không mất.
SVT-AV1
SVT-AV1 (LIBSVTAV1) là bộ mã hóa ban đầu được phát triển bởi Intel phối hợp với Netflix. Năm 2020, SVT-AV1 đã được Aomedia áp dụng làm cơ sở cho sự phát triển trong tương lai của AV1 cũng như các nỗ lực codec trong tương lai. Bộ mã hóa hỗ trợ một loạt các đánh đổi và tỷ lệ hiệu quả tốc độ khá tốt trên nhiều lõi CPU.
Để cho phép hỗ trợ, FFMPEG cần được xây dựng với –Enable-libsvtav1 . Đối với các tùy chọn có sẵn trong bản dựng FFMPEG cụ thể của bạn, hãy xem FFMPEG -HELP Encoder = libsvtav1 . Xem thêm Tài liệu FFMPEG, Hướng dẫn sử dụng bộ mã hóa ngược dòng và danh sách tất cả các tham số.
Nhiều tùy chọn được chuyển cho bộ mã hóa với -svtav1 -params . Điều này đã được giới thiệu trong SVT-AV1 0.9.1 và đã được hỗ trợ từ FFMPEG 5.1.
CRF là phương pháp kiểm soát tỷ lệ mặc định, nhưng VBR và CBR cũng có sẵn.
CRF
Giống như CRF trong x264 và x265, phương pháp kiểm soát tốc độ này cố gắng đảm bảo rằng mọi khung đều có được số lượng bit mà nó xứng đáng để đạt được mức chất lượng (nhận thức) nhất định.
ffmpeg -i đầu vào.mp4 -c: v libsvtav1 -crf 35 svtav1_test.MP4
Lưu ý rằng tùy chọn -CRF chỉ được hỗ trợ trong các bản dựng FFMPEG GIT kể từ 2022-02-24. Trong các phiên bản trước đó, giá trị CRF được đặt bằng -qp .
Phạm vi giá trị CRF hợp lệ là 0-63, với mặc định là 50. Giá trị thấp hơn tương ứng với chất lượng cao hơn và kích thước tệp lớn hơn. Mã hóa không mất mát hiện không được hỗ trợ.
Cài đặt trước và giai điệu
Sự đánh đổi giữa tốc độ mã hóa và hiệu suất nén được quản lý với tùy chọn -preset. Kể từ SVT-AV1 0.9.0, các cài đặt trước được hỗ trợ từ 0 đến 13, với số cao hơn cung cấp tốc độ mã hóa cao hơn.
Lưu ý rằng cài đặt trước 13 chỉ có nghĩa là để gỡ lỗi và chạy mã hóa mảng lồi nhanh. Trong các phiên bản trước 0.9.0, cài đặt trước hợp lệ là 0 đến 8.
Ví dụ, lệnh này mã hóa một video bằng cách sử dụng cài đặt trước 8 và CRF là 35 trong khi sao chép âm thanh:
ffmpeg -i đầu vào.mp4 -c: một bản sao -c: v libsvtav1 -preset 8 -crf 35 svtav1_test.MP4
Kể từ SVT-AV1 0.9.1, bộ mã hóa cũng hỗ trợ điều chỉnh chất lượng trực quan (độ sắc nét). Điều này được gọi bằng giai điệu -SVTav1 -params = 0 . Giá trị mặc định là 1, điều chỉnh bộ mã hóa cho PSNR.
Cũng được hỗ trợ kể từ 0.9.1 đang điều chỉnh bộ mã hóa để tạo ra các dòng chảy nhanh hơn (ít CPU chuyên sâu hơn) để giải mã, tương tự như giai điệu FastDecode trong x264 và x265. Kể từ SVT-AV1 1.0.0, tính năng này được gọi bằng -svtav1-params decode fast decode = 1 .
Trong 0.9.1, Tùy chọn chấp nhận một số nguyên từ 1 đến 3, với số cao hơn dẫn đến video dễ tính hơn. Trong 0.9.1, điều chỉnh bộ giải mã chỉ được hỗ trợ cho các cài đặt trước từ 5 đến 10 và mức độ điều chỉnh bộ giải mã khác nhau giữa các cài đặt trước.
Vị trí KeyFrame
Theo mặc định, khoảng thời gian khung chính của SVT-AV1 là 2-3 giây, khá ngắn đối với hầu hết các trường hợp sử dụng. Cân nhắc thay đổi điều này lên đến 5 giây (hoặc cao hơn) với tùy chọn -g (hoặc khóa trong svtav1 -params); -g 120 cho nội dung 24 khung hình / giây, -g 150 cho 30 khung hình / giây, v.v.
Lưu ý rằng theo phiên bản 1.2.1, SVT-AV1 không hỗ trợ chèn các khung khóa tại thay đổi cảnh. Thay vào đó, các khung khóa được đặt trong các khoảng thời gian đã đặt. Trong SVT-AV1 0.9.1 và trước, chức năng đã có mặt nhưng được coi là ở trạng thái tối ưu và bị vô hiệu hóa theo mặc định.
Tổng hợp hạt
SVT-AV1 hỗ trợ tổng hợp ngũ cốc, một tính năng AV1 để bảo tồn giao diện của video hạt trong khi chi tiêu rất ít bitrate để làm như vậy. Hạt được loại bỏ khỏi hình ảnh bằng khoảng trống, giao diện của nó được xấp xỉ và tổng hợp, sau đó được thêm vào đầu video vào thời gian giải mã dưới dạng bộ lọc.
Tính năng tổng hợp hạt phim được gọi bằng -svtav1-params film-Grain = X, trong đó X là một số nguyên từ 1 đến 50. Số lượng cao hơn tương ứng với mức độ khử trùng cao hơn cho quá trình tổng hợp hạt và do đó một lượng hạt cao hơn.
Quá trình khử hạt cũng có thể loại bỏ chi tiết, đặc biệt là ở các giá trị cao được yêu cầu để bảo tồn vẻ ngoài của các màng rất hạt. Điều này có thể được giảm thiểu với tùy chọn Film-Grain-Denoise = 0, được truyền qua SVTAV1-Params . Mặc dù theo mặc định, các khung hình bị bỏ qua được truyền lại để được mã hóa dưới dạng hình ảnh cuối cùng (film-prain-denoise = 1), việc tắt nó sẽ dẫn đến các khung ban đầu được sử dụng thay thế.
Rav1e
Librav1e là bộ mã hóa Xiph cho AV1. Biên dịch với –Enable-librav1e . Xem các tùy chọn FFMPEG DOC và CLI ngược dòng.
RAV1E tuyên bố là bộ mã hóa phần mềm nhanh nhất AV1, nhưng điều đó thực sự phụ thuộc vào cài đặt.
AMD AMF AV1
Khung phương tiện truyền thông nâng cao (AMF) cung cấp cho các nhà phát triển quyền truy cập tối ưu vào GPU AMD để xử lý đa phương tiện. Bộ mã hóa AMD AMF AV1 là một bộ mã hóa video chuyên nghiệp cung cấp khả năng mã hóa video mạnh mẽ và một loạt các tùy chọn tùy chỉnh. Nó được thiết kế để đáp ứng nhu cầu cá nhân của người dùng khác nhau. Người dùng có thể điều chỉnh cài đặt tham số của bộ mã hóa để đáp ứng các yêu cầu mã hóa khác nhau, chẳng hạn như độ phân giải, tốc độ bit, tốc độ khung hình, chất lượng mã hóa và hơn thế nữa. Các cài đặt tham số này có thể được tùy chỉnh dựa trên nhu cầu của người dùng để đáp ứng các kịch bản mã hóa video và yêu cầu thiết bị khác nhau.
Cách sử dụng
Bộ mã hóa video cân bằng các yếu tố như tốc độ, chất lượng và độ trễ. AMD đã tích hợp một số cài đặt cài đặt kịch bản người dùng thông thường vào bộ mã hóa AMF. Người dùng có thể sử dụng các cài đặt trước này bằng cách đặt tham số sử dụng trên mạng. Tham số sử dụng hỗ trợ các kịch bản ứng dụng điển hình, bao gồm:
- Mã hóa chuyển đổi: Chuyển đổi video có độ phân giải cao hoặc bitrate cao thành các video có độ phân giải thấp hoặc ít bitrate để truyền hoặc lưu trữ trong môi trường mạng giới hạn băng thông.
- Tính thấp: Đối với các ứng dụng phát trực tiếp video, độ trễ thấp hơn và chất lượng video cao hơn được yêu cầu.
Đối với mỗi lần sử dụng, AMF đã tối ưu hóa và đặt trước các tham số của bộ mã hóa dựa trên kịch bản tương ứng. Các tối ưu hóa và cài đặt trước tham số này bao gồm phần lớn các tham số, bao gồm nhưng không giới hạn ở:
- Hồ sơ mã hóa và cấp độ
- Kích thước và cấu trúc GOP
- Chế độ và chiến lược kiểm soát tỷ lệ
- Phương pháp ước tính chuyển động và độ chính xác
- Mã hóa đa đường
- Deblocking Sức mạnh bộ lọc
- Định lượng hóa lượng và tối ưu hóa biến dạng tốc độ
- Bittrate và các ràng buộc về độ phân giải
Bằng cách sử dụng các cài đặt trước này, người dùng có thể dễ dàng chọn các cài đặt mã hóa phù hợp cho kịch bản sử dụng cụ thể của họ mà không cần kiến thức chuyên sâu về các tham số của bộ mã hóa và tác động của chúng đối với chất lượng và hiệu suất của video. Kịch bản sử dụng để chuyển mã
FFMPEG -S 1920x1080 -PIX_FMT YUV420P -I INPUT.YUV -C: V H264_AMF -USAGE OUTPLATE.MP4
Kịch bản sử dụng cho tính thấp
FFMPEG -S 1920x1080 -PIX_FMT YUV420P -I INPUT.YUV -C: V AV1_AMF -USAGE đầu ra thấp.MP4
Chất lượng
Tham số này được sử dụng để chọn giữa chất lượng video và tốc độ. Tham số này có tác động đáng kể đến tốc độ mã hóa. Nó có ba giá trị hợp lệ:
- Chất lượng: Đặt trước này được tối ưu hóa cho đầu ra video chất lượng cao, phù hợp cho các ứng dụng như sản xuất video, phát sóng và phát trực tiếp.
- Cân bằng: Việc đặt trước này cân bằng sự đánh đổi giữa chất lượng và tốc độ, làm cho nó phù hợp với nhiều ứng dụng khác nhau đòi hỏi sự cân bằng giữa hai ứng dụng, chẳng hạn như hội nghị video và chơi game trực tuyến.
- Tốc độ: Điều này đặt trước ưu tiên tốc độ hơn chất lượng, làm cho nó phù hợp cho các ứng dụng yêu cầu mã hóa video thời gian thực với độ trễ thấp, chẳng hạn như chơi game trực tuyến và các ứng dụng máy tính để bàn từ xa.
ffmpeg -i đầu vào.mp4 -c: v av1_amf -quality đầu ra cân bằng.MP4 FFMPEG -I INPUT.MP4 -C: V AV1_AMF -đầu ra chất lượng chất lượng.MP4 FFMPEG -I INPUT.MP4 -C: V AV1_AMF -QUITY ĐẦU TIN ĐẦU TIÊN.MP4
Thực thi_HRD
Bộ giải mã tham chiếu giả thuyết (HRD) giúp ngăn chặn tràn bộ đệm và dòng chảy, điều này có thể gây ra các vấn đề như nói lắp hoặc đóng băng trong quá trình phát lại video. HRD có thể hy sinh một mức chất lượng hình ảnh nhất định. Tham số “Thực thi_HRD” không phải lúc nào cũng cần thiết hoặc phù hợp với tất cả các loại kịch bản. Nó nên được sử dụng có chọn lọc và xem xét cẩn thận các đặc điểm cụ thể của nội dung video được mã hóa.
ffmpeg -i đầu vào.mp4 -c: v av1_amf -enforce_hrd đầu ra true.MP4
VBAQ
VBAQ là một kỹ thuật được sử dụng để cải thiện chất lượng trực quan của video được mã hóa. Nó đạt được điều này bằng cách điều chỉnh các tham số lượng tử hóa cho các khối dựa trên độ phức tạp thị giác của nội dung. Nó đặc biệt hiệu quả để mã hóa video với nội dung trực quan phức tạp, chẳng hạn như các cảnh chuyển động cao hoặc chi tiết cao. ffmpeg -i đầu vào.mp4 -c: v av1_amf -vbaq đầu ra true.MP4
Căn chỉnh
Thông số kỹ thuật của AV1 không chứa thông tin cắt xén cho bộ giải mã để hiển thị độ phân giải chính xác, pixel cụ thể. Dự kiến sẽ được trình bày thông tin cắt xén thích hợp trong container. Trình mã hóa AMF AV1 giới thiệu tham số Căn Align để giải quyết yêu cầu căn chỉnh phần cứng sao cho BITSTREAM được mã hóa có thể được giải mã và trình bày đúng. Các giá trị để thiết lập trên mạng Align ”:
- 64×16: Các video đầu vào có độ phân giải được căn chỉnh theo 64×16 sẽ được mã hóa; Các video đầu vào có độ phân giải không được liên kết với 64×16 sẽ không được mã hóa; Tất cả các video độ phân giải khác sẽ không được hỗ trợ.
- 1080p: Các video đầu vào có độ phân giải được căn chỉnh thành 64×16, cũng như video 1920×1080, sẽ được mã hóa; Tất cả các video độ phân giải khác sẽ không được hỗ trợ. Lưu ý rằng để giải quyết 1920×1080, video đầu ra sẽ có độ phân giải 1920×1082. Hai dòng phụ được đệm ở dưới cùng của khung, chứa đầy pixel màu đen.
- Không: Video có bất kỳ độ phân giải nào có thể được mã hóa. Tuy nhiên, đối với những video có độ phân giải không được căn chỉnh 64×16, độ phân giải đầu ra của chúng sẽ được ngoại suy thành 64×16 được căn chỉnh và được đệm với các pixel màu đen. Ngoại lệ là độ phân giải 1080p, sẽ được đệm đến 1082p, như trong trường hợp giá trị là 1080p,.
ffmpeg -i đầu vào.MP4 -C: V AV1_AMF -ALIGN 1080p đầu ra.MP4
Vị trí KeyFrame
Theo mặc định, khoảng thời gian khóa của AMF AV1 là 250 khung hình, là giá trị cân bằng cho hầu hết các trường hợp sử dụng. Tùy chọn ”-g” có thể được sử dụng để đặt khoảng thời gian keyframe. Ví dụ: trong các ứng dụng truyền hình phát sóng, thường mong muốn có thời gian chuyển kênh thoải mái cho trải nghiệm người dùng tốt. Khung Keyfrong 2 giây được sử dụng rộng rãi như một cài đặt phổ biến cho mục đích này. Vì vậy, đối với nội dung có tốc độ khung hình 30 khung hình mỗi giây, người ta sẽ sử dụng lệnh “-g 60”.
ffmpeg -i đầu vào.mp4 -c: v av1_amf -g 60 đầu ra.MP4
Tài nguyên bổ sung
- Tài liệu tham số SVT-AV1
- Hướng dẫn FFMPEG của SVT-AV1
- SVT-AV1: Các câu hỏi và chủ đề phổ biến quan tâm
- Hướng dẫn sử dụng của SVT-AV1
- Trình theo dõi vấn đề SVT-AV1
- Trình theo dõi vấn đề Libaom
- Trình theo dõi vấn đề RAV1E
NVIDIA tuyên bố có bộ mã hóa AV1 tốt hơn AMD và Intel
Nvidia nói rằng bộ mã hóa AV1 của họ tốt hơn AMD và Intel,
Hôm qua, phiên bản ổn định của OBS Studio 29.1 đã được phát hành. Giống như betas, phiên bản này hỗ trợ mã hóa AV1 cho truyền phát YouTube. NVIDIA đã nhân cơ hội này để thảo luận về tính ưu việt của nó trong mã hóa AV1 so với các đối thủ cạnh tranh.
AV1 là một codec nguồn mở từ Alliance cho Mở Media. Trong hơn hai năm, codec video này đã nổi lên như một sự thay thế thực sự cho H264 và H265/HEVC không phải là nguồn mở. Định dạng miễn phí bản quyền sẽ là một yếu tố lớn trong việc biến AV1 thành tương lai của phát trực tuyến video và tất cả các thương hiệu GPU chính hiện đang ở trên tàu và tích cực phát triển GPU với sự hỗ trợ cho định dạng video này.
Như chúng ta đã biết, mã hóa AV1 hiện được hỗ trợ bởi tất cả các kiến trúc GPU hiện đại: GeForce RTX 40 (ADA), Radeon RX 7000 (RDNA3) và Nhà giả kim ARC (XE-HPG). Tuy nhiên, các triển khai khác nhau và khả năng mã hóa có thể cho thấy sự khác biệt đáng chú ý.
Được thiết kế để hỗ trợ sự khắc nghiệt của người tạo nội dung chuyên nghiệp, NVENC bảo tồn chất lượng video với độ chính xác cao hơn so với các bộ mã hóa cạnh tranh. Người dùng GeForce RTX có thể truyền phát các hình ảnh chất lượng cao hơn ở cùng một bitrate với các sản phẩm cạnh tranh hoặc mã hóa ở tốc độ bit thấp hơn trong khi vẫn duy trì chất lượng hình ảnh tương tự.
– Nvidia
NVIDIA đã phát hành Still từ một so sánh video có AMD RX 7900 XTX, ARC A770 và GPU RTX 4080 của nó trong AV1 4K và 12 Mbps. Công ty tuyên bố rằng bộ mã hóa của họ tạo ra hình ảnh chất lượng cao hơn với cùng một bitrate:
So sánh mã hóa AV1 4K, Nguồn: NVIDIA
NVIDIA RTX 40 GPU dựa vào bộ mã hóa NVENC thế hệ thứ 8, cho phép mã hóa tối đa 8K60 (FPS) bằng cách chia các khung thành các làn ngang trên một số GPUS. Ở mức 4k, nó có thể cung cấp chất lượng video tương tự ở mức 10 Mbps so với H.264 luồng ở mức 20 Mbps, nhưng tổng thể NVIDIA tuyên bố mã hóa AV1 cung cấp hiệu quả mã hóa tốt hơn khoảng 40%.
The Obs Studio 29.1 hiện có sẵn để tải xuống từ trang web chính thức. Dự án được tài trợ bởi cả NVIDIA và AMD.
Codec AV1 là gì, thẻ đồ họa nào hỗ trợ nó và tại sao nó quan trọng
Ngành công nghiệp công nghệ đã trở nên ồn ào với trò chuyện về mã hóa AV1 gần đây. Có những tuyên bố táo bạo về cách nó sẽ cách mạng hóa video phát trực tuyến, phát trực tuyến trò chơi và internet với số lượng lớn nhưng AV1 là gì và tại sao nó lại quan trọng như vậy?
Ưu điểm của codec AV1
AV1 là một codec video mới (tương đối) được thiết kế cho các luồng video. Nó cung cấp những lợi thế đáng kể so với AVC (H.264) và HEVC (H.265) Codec phổ biến hơn hiện đang được sử dụng. Đối với người mới bắt đầu, AV1 là nguồn mở và miễn phí bản quyền, không giống như các tùy chọn khác này, vì nó xuất phát từ Liên minh cho truyền thông mở (AOMEDIA) được hình thành vào năm 2015 cho mục đích rõ ràng là tạo ra một sự thay thế mở. Aomedia có bảy thành viên sáng lập, Amazon, Cisco, Intel, Microsoft, Mozilla và Netflix đã được tham gia bởi hàng chục thành viên khác như Google và Apple trên đường đi.
Nó cần phải không chỉ là nguồn miễn phí và nguồn mở để thành công. Nó là xa nỗ lực đầu tiên trong không gian và trên thực tế được xây dựng trên vai của người tiền nhiệm nguồn mở của nó, VP9 và những người khác trước. VP9 đã đạt được sự áp dụng hợp lý bao gồm hỗ trợ mã hóa phần cứng trên nhiều nền tảng, nhưng cuối cùng được coi là thường kém hiệu quả hơn H.265 với hiệu suất tương tự. AV1 giá vé tốt hơn nhiều.
Vậy AV1 hoạt động như thế nào?
AV1 sử dụng các phép biến đổi tần số dựa trên khối “để mã hóa như nhiều định dạng khác. Trên thực tế, các phương pháp này chia một khung thành các khối nhỏ của nhóm các nhóm pixel, sau đó thực hiện một số phép toán liên quan đến biến đổi Fourier để lưu trữ dữ liệu theo cách có thể được xây dựng lại, mà không cần các dữ liệu cần thiết để mô tả từng bit của mỗi pixel. AV1 sử dụng giải pháp VP9, làm cơ sở nhưng mở rộng các tùy chọn của nó với các kỹ thuật bổ sung.
Trong trường hợp AV1, nó sử dụng cái gọi là siêu khối của 128×128 hoặc 64×64 pixel có thể được chia thành các khối nhỏ hơn nhỏ như 4×4 pixel. Khi kết hợp với các cách phân vùng mới, như hình chữ T, quá trình mã hóa có thể biểu thị tốt hơn các cạnh của các đối tượng có ít tạo tác khối hơn. Tất cả điều này dẫn đến một luồng video yêu cầu ít bitrate hơn (và do đó băng thông) cho một mục tiêu chất lượng hình ảnh nhất định hoặc hình ảnh đẹp hơn ở cùng một bitrate khi so sánh với các codec khác.
Hiệu quả tăng có nghĩa là AV1 có thể hỗ trợ nhiều tính năng hơn. AV1 làm cho phát trực tuyến video HDR 4K với các gam màu rộng khả thi hơn nhiều. Mặc dù chưa có nhiều nhu cầu về nó, nhưng codec thậm chí còn phù hợp với nội dung 8k khi thời gian đến. Nó cũng có thể được sử dụng cho video 360 độ với nhu cầu dữ liệu cao tương tự.
Mặc dù vậy, việc chuyển nội dung video sang AV1 không phải là một nhiệm vụ dễ dàng, mặc dù bản chất miễn phí và mở của nó. Mã hóa và giải mã AV1 có thể được thực hiện bằng cách buộc nó vào CPU thông qua phần mềm, nhưng nó rất chuyên sâu về mặt tính toán hơn cả H.265 Hevc. Điều này đặt nó ra khỏi tầm với của phần cứng cấp thấp hơn để xử lý, chưa kể đến tác động đến thời lượng pin đối với các thiết bị di động.
Tuy nhiên, gần đây, một số nền tảng đã bắt đầu kết hợp mã hóa và giải mã phần cứng cho AV1. Các mạch chuyên dụng này hiệu quả hơn đáng kể so với phần mềm có thể kéo ra. Giống như hầu hết các codec, việc giải mã phần cứng đã được triển khai rộng hơn trước tiên. Hỗ trợ phát triển cho việc giải mã cho phép các nền tảng lớn như YouTube tận dụng codec AV1 để giảm nhu cầu băng thông. Chúng tôi giả sử điều này sẽ mở rộng sang các nền tảng tập trung phát trực tiếp như Twitch cũng như một khi các bộ mã hóa chuyên dụng nằm trong tay của nhiều người tạo nội dung hơn.
Giải mã AV1 đã ở đây nhưng mã hóa là thủ thuật mới
Giải mã AV1 được hỗ trợ trong phần cứng trên GPU AMD RDNA 2 (ngoài Navi 24 dựa trên 6500 XT), GPU NVIDIA GEFORCE 30- và 40-SERIES, GPU Intel XE và ARC, cùng với các chip di động như Samsung Exynos 2100 và 2200, 2200, Các bộ xử lý Tensor của Mediatek Dim Mật độ và Bộ xử lý Tensor của Google. Qualcomm đáng chú ý vắng mặt trong danh sách này nhưng đã chỉ ra rằng codec sẽ được hỗ trợ trong các chip Snapdragon bắt đầu vào năm 2023. Hỗ trợ giải mã là tuyệt vời cho người tiêu dùng nội dung, nhưng không có hỗ trợ mã hóa phần cứng, nội dung AV1 rất đáng sợ.
Cuối cùng, những người chơi silicon lớn hiện cũng đang kêu gọi hỗ trợ mã hóa AV1 để hỗ trợ tạo nội dung. Intel là người đầu tiên thực sự bước ra trong không gian tiêu dùng đam mê với hỗ trợ mã hóa phần cứng AV1 trên ARC Alchemist A Series Arraphics Cards. Mặc dù những điều này rất khó để nguồn cho đến gần đây, nhưng sự bao gồm đã thu hút được những lời khen ngợi đáng kể. Theo sau bộ, GPU ADA Lovelace mới của NVIDIA, cũng mang đến cơ mã hóa AV1, mà chúng tôi mong muốn được thử nghiệm rất sớm. Chúng tôi chỉ có thể giả sử AMD, sắp được công bố GPU RDNA3 sẽ không bị loại khỏi bữa tiệc,.
Tương lai có vẻ tươi sáng cho codec Av1. Ngoài việc hỗ trợ phần cứng đang phát triển cho codec để mang lại lợi ích cho các luồng video, codec sử dụng kỹ thuật mã hóa xếp lớp có tên là mã hóa video có thể mở rộng (SVC), điều này giúp nó đặc biệt phù hợp để hội nghị truyền hình. Một vấn đề phổ biến, đặc biệt là trong các cuộc gọi hội nghị đông dân hơn, là chất lượng kết nối khác nhau từ người dùng này sang người dùng tiếp theo.
SVC cho phép các mã hóa bitrate thấp hơn được trích xuất từ nguồn bitrate cao trong khi giảm sự dư thừa của các luồng song song phát sóng có chất lượng khác nhau. Không chỉ các luồng bitrate thấp hơn có thể có dạng phân giải giảm mà còn có thể loại bỏ các khung để giảm tốc độ để giảm băng thông. Nó không phải là codec duy nhất sử dụng kỹ thuật này, nhưng nó là một sự cân nhắc rất quan trọng, dù sao.
AV1 giữ rất nhiều lời hứa, vì rất nhiều tiến bộ công nghệ. Phần tốt nhất là hầu hết người tiêu dùng không cần phải làm bất cứ điều gì đặc biệt để tận dụng nó. Tùy thuộc vào người tạo nội dung và nền tảng phân phối để tận dụng công nghệ, trong khi bất kỳ ai có thiết bị hiện đại hợp lý sẽ có thể gặt hái những lợi ích của chất lượng hình ảnh được cải thiện và sử dụng dữ liệu thấp hơn.