3 nguyên tắc vàng khi encode HD
- Kiểm tra source trước khi encode, nếu không bạn sẽ tốn khá nhiều thời gian mà sản phẩm còn tệ hơn cả DVD!
- Luôn luôn update các phầm mềm lên phiên bản mới nhất.
- Tôn trọng chất lượng ban đầu của source, chỉ "tân trang" source nếu source có lỗi.
Hardware cần thiết
Tối thiểu
- CPU: Q6600 OC @ 3.00 Ghz
- Cooler: Air cooler (cái nào cũng được, trừ stock fan, đảm bảo temp dưới 70* khi fullload)
- RAM: 4GB 800 Mhz
- HDD: 500GB
- PSU: Acbel hoặc Cooler Master 500W
Yêu cầu
- CPU: i7 series OC @ 3.0Ghz hoặc hơn nếu có thể
- Cooler: Air cooler hoặc Water Cooler (đảm bảo temp dưới 70* khi fullload)
- RAM: 6GB 1333 Mhz (bus càng cao càng tốt)
- HDD: 1TB (càng nhiều càng tốt)
- PSU: Acbel hoặc Cooler Master 650W
Các phần mềm cần thiết và cài đặt:
Yêu cầu
- OS: Win 7 x64/ Win server 2008 RC2 x64
- Video Editor: Avisynth, AVSP
- Video encoder: x264
- Audio encoder: eac3to
- Linh tinh: meGUI, Haali Media Spliter, Mkvtoolnix, suprip, mediainfo...
Cài đặt
Tớ chỉ huớng dẫn cài đặt một vài soft mà theo tớ là khó cài thôi, còn lại các bác tự mò nhé.- Avisynth: Cài đặt bản avisynth 2.58 xong thì download plugins này: ffmpegsource2, extract và vất các file trong đó vào thư mục plugins của Avisynth. Nếu CPU đa nhân thì nên dùng bản ffms2-mt hỗ trợ multithread
- Eac3to: Extract ra một thư mục, bỏ vào chỗ nào tiện nhất. Copy file cmd.exe trong thư mục C:\Windows\System32 vào trong thư mục eac3to và tạo shortcut từ file cmd đó. Tiếp tục down bộ codec này về và cài vào máy: Eac3to Decoder Pack. Xong xuôi chạy file shortcut cmd rồi gõ
eac3to -testNếu nó report như thế này thì là ổn. 2 cái Sonic và Surcode ko quan tâm
eac3to (v3.22) is up to date Nero Audio Decoder (Nero 7) works fine ArcSoft DTS Decoder (1.1.0.7) works fine Sonic Audio Decoder (3.18.0.0) doesn't seem to be installed Haali Matroska Muxer (2010-05-20) is up to date Nero AAC Encoder (1.5.3.0) is up to date Surcode DTS Encoder doesn't seem to be installed http://www.surcode.com MkvToolnix (4.1.1.0, release version) is up to dateNếu nó report có soft nào mới thì ngay lập tức update theo link report
Xử lý source
- Source để encode hiện tại chỉ còn 2 loại: BluRay và HDTV cap. Tớ sẽ ko đi sâu vào HDTV cap nhé.
- BluRay ko phải cái nào cũng đẹp lung linh, có những source khá xấu và yêu cầu phải dùng filter để xử lý. Vấn đề này tớ cũng ko đi sâu vì hiện tại số bluray xấu chiếm khá ít, hơn nữa sử dụng filter khá thiên biến vạn hóa.
Step 1 - Tách các stream bằng eac3to
- Tách để làm gì? Là để xử lý từng stream của blu-ray: video, audio, sub. Bây giờ bạn bật CMD shortcut lên rồi gõ câu lệnh sau:
eac3to Đường-dẫn-đến-sourcevd:
eac3to D:\SOURCE\Saving.Private.Ryan.1998.BluRay.1080p.AVC.DTS-HD.MA5.1-CHDBits
- Lưu ý đường dẫn ko được phép có một ký tự trống nào cả, nếu có sẽ báo lỗi. Sau khi enter, eac3to sẽ report tất cả playlist có trong source:
C:\Users\EPiK\eac3to>eac3to D:\SOURCE\Saving.Private.Ryan.1998.BluRay.1080p.AVC. DTS-HD.MA5.1-CHDBits 1) 01015.mpls, 00052.m2ts+00050.m2ts+00051.m2ts, [COLOR="DeepSkyBlue"]2:49:29''' - Chapters, 20 chapters - h264/AVC, 1080p24 /1.001 (16:9) - DTS Master Audio, English, multi-channel, 48khz - AC3, German, multi-channel, 48khz - AC3, Spanish, multi-channel, 48khz - AC3, French, multi-channel, 48khz - AC3, Italian, multi-channel, 48khz 2) 01027.mpls, 00050.m2ts, [COLOR="DeepSkyBlue"]2:48:21''' - Chapters, 20 chapters - h264/AVC, 1080p24 /1.001 (16:9) - DTS Master Audio, English, multi-channel, 48khz - AC3, German, multi-channel, 48khz - AC3, Spanish, multi-channel, 48khz - AC3, French, multi-channel, 48khz - AC3, Italian, multi-channel, 48khz
- Lưu ý các số 1) và 2) là những số thứ tự playlist, và runtime của playlist đó. Thông thuờng có một số blu-ray có nhiều bản cut (DC, TC, EC), ta sẽ dựa vào runtime để chọn playlist thích hợp. Ở truờng hợp source này, playlist 1 có đoạn intro và outro của hãng phim còn playlist 2 không có. Ta sẽ chọn playlist 1.
- Nhấn phím lên trong cửa sổ CMD để load lại câu lệnh cũ, gõ thêm 1) vào cuối câu lệnh để đi vào playlist 1
eac3to D:\SOURCE\Saving.Private.Ryan.1998.BluRay.1080p.AVC.DTS-HD.MA5.1-CHDBits 1)eac3to sẽ report các stream có trong playlist 1
C:\Users\EPiK\eac3to>eac3to D:\SOURCE\Saving.Private.Ryan.1998.BluRay.1080p.AVC.DTS-HD.MA5.1-CHDBits 1) M2TS, 1 video track, 5 audio tracks, 15 subtitle tracks, 2:49:29, 48p /1.001 1: Chapters, 20 chapters 2: h264/AVC, 1080p24 /1.001 (16:9) 3: DTS Master Audio, English, 5.1 channels, 24 bits, 48khz (core: DTS, 5.1 channels, 24 bits, 1509kbps, 48khz) 4: AC3, German, 5.1 channels, 640kbps, 48khz, dialnorm: -27dB 5: AC3, Spanish, 5.1 channels, 640kbps, 48khz, dialnorm: -27dB 6: AC3, French, 5.1 channels, 640kbps, 48khz, dialnorm: -27dB 7: AC3, Italian, 5.1 channels, 640kbps, 48khz, dialnorm: -27dB 8: Subtitle (PGS), Danish 9: Subtitle (PGS), German 10: Subtitle (PGS), English 11: Subtitle (PGS), Spanish 12: Subtitle (PGS), French 13: Subtitle (PGS), Italian 14: Subtitle (PGS), Dutch 15: Subtitle (PGS), Norwegian 16: Subtitle (PGS), Finnish 17: Subtitle (PGS), Swedish 18: Subtitle (PGS), English 19: Subtitle (PGS), German 20: Subtitle (PGS), Spanish 21: Subtitle (PGS), French 22: Subtitle (PGS), Italian
- Để ý các số 1:, 2:, 3...., đó là số thứ tự các stream. Bây giờ bạn sẽ tách các stream ra và xử lý chúng. Format như sau:
eac3to Đuờng-dẫn-đến-source số-playlist) số-stream: đuờng-dẫn-đến-thư-mục-lưu\file.formatví dụ
C:\Users\EPiK\eac3to>eac3to D:\SOURCE\Saving.Private.Ryan.1998.BluRay.1080p.AVC.DTS-HD.MA5.1-CHDBits 1) 1: D:\SOURCE\Ryan\chapter.txt 2: D:\SOURCE\Ryan\source.mkv 3: D:\SOURCE\Ryan\audio.dts -core 8: D:\SOURCE\Ryan\dan.sup 9: D:\SOURCE\Ryan\ger.sup 10: D:\SOURCE\Ryan\eng.sup 11: D:\SOURCE\Ryan\spa.sup 12: D:\SOURCE\Ryan\fre.sup 13: D:\SOURCE\Ryan\ita.sup 14: D:\SOURCE\Ryan\dut.sup 15: D:\SOURCE\Ryan\nor.sup 16: D:\SOURCE\Ryan\fin.sup 17: D:\SOURCE\Ryan\swe.sup
- Lưu ý:
- Chapter thuờng nằm ở vị trí số 1, đuôi mở rộng là .txt
- Video thuờng nằm ở vị trí số 2, đuôi mở rộng là .mkv
- Audio nằm ở vị trí kế tiếp, bạn phải chọn ngôn ngữ gốc của phim. Đuôi mở rộng là .dts, .ac3, .aac tùy nhu cầu sử dụng. Lưu ý nếu muốn tách dts từ DTS HD MA nhớ add thêm lệnh -core
- Sub có đuôi mở rộng là .sup
Step 2 - xử lý video
- Công đoạn này tuy đơn giản nhưng góp phần hết sức quan trọng trong sản phẩm cuối. Fail hay ko fail là ở chỗ này đó
- Đầu tiên mở file source.mkv bằng AVSP. Mặc định nó sẽ dùng filter DirectShowSource để đọc file, bạn thay filter này bằng ffmpegsource2:
DirectShowSource("D:\SOURCE\Saving.Private.Ryan.1998.BluRay.1080p.AVC.DTS-HD.MA5.1-CHDBits\source2.mkv") thành ffmpegsource2("D:\SOURCE\Saving.Private.Ryan.1998.BluRay.1080p.AVC.DTS-HD.MA5.1-CHDBits\source2.mkv")
- Nhấn phím F5 một phát rồi chờ nó index file source. Việc này tốn khoảng 1-3p tùy runtime của source và tốc độ HDD của bạn. Sau khi index xong trong thư mục sẽ xuất hiện file source.mkv.ffindex, bạn ko được xóa file đó đi nhé. Tiếp tục xem qua cửa sổ của AVSP bạn sẽ thấy toàn cảnh từng frame của source.
- Chọn cảnh sáng nhất mà bạn có thể quan sát cả 4 góc của frame để tiến hành crop (nếu source có blackbar). Lệnh crop như sau:
Crop(a,b,c,d) a= trái b= trên c= phải (số âm) d= dưới (số âm)
- Ví dụ source bạn có 2px đen ở trái và phải, 132px đen ở trên và dưới thì lệnh crop sẽ như sau
Crop(2,132,-2,-132)
- Nếu ko có dải đen nào hết thì ko dùng lệnh này...Thế còn số lẻ thì sao? Mặc định lệnh crop ko cho bạn crop số lẻ nên bạn sẽ dùng function crop của filter Spline36Resize. Ví dụ bạn có 1px đen ở trái và phải, 131px đen ở trên và dưới. Tính nhẩm bạn sẽ thấy độ phân giải còn lại sẽ là 1918x818, vậy lệnh sẽ như sau:
Spline36Resize(1918,818,1,131,-1,-131)
- Lưu ý độ phân giải cuối cùng của source lúc nào cũng phải chia hết cho 2, tức ko có chuyện 1919x817 (vd thế). Gặp trừong hợp đó bạn phải crop thêm 1px bên trái/phải và trên/duới.
- Nếu muốn encode 720p thì thêm một buớc resize nữa. Cách resize là bạn tính chiều cao x của sản phẩm 720p đích thông qua qui tắc tam xuất sau:
w/h = 1280/x ---> x = 1280*h/w w= chiều rộng source sau khi crop hết blackbar h= chiều cao source sau khi crop hết blackbar nếu x ra số lẻ thì lấy số chãn gần nó nhất. VD 545.5 lấy 546, 534.5 lấy 534
- Sau khi tính ra x, bạn dùng lệnh sau để resize (nếu truớc nó đã có lệnh crop với các thông số chẵn). VD
Crop(2,132,-2,132) Spline36Resize(1280,546)
- Nếu bạn đã dùng lệnh Spline36 để crop số lẻ thì làm như sau:
Spline36Resize(1918,818,1,131,-1,-131) áp dụng qui tắc tính x sửa lại thành Spline36Resize(1280,546,1,131,-1,-131)Chọn save file AVS
Testing và Encode video
- Như vậy bây giờ trong thư mục project của bạn đã có file source.mkv, file avs, file audio.ac3(hoặc dts) và các file sup. Để encode bạn cần có thêm các file sau: avs2yuv.exe, x264.exe và file encode.bat. File encode.bat là file lưu giữ các setting bạn cần encode. Mình sẽ cho anh em một template mẫu, còn setting chính xác như thế nào thì còn phải qua công đoạn test:
avs2yuv source.avs -o - | x264.exe --stdin y4m --pass 1 --bitrate '''X''' --stats ".stats" --level 4.1 --ref '''X''' --bframes '''X''' --b-adapt 2 --direct auto --deblock -3:-3 --aq-strength '''X''' --no-mbtree --output NUL - 2> pass1.log avs2yuv source.avs -o - | start /b /low x264.exe --stdin y4m --pass 2 --bitrate '''X''' --stats ".stats" --level 4.1 --ref '''X''' --no-fast-pskip --bframes '''X''' --direct auto --deblock -3:-3 --subme 9 --trellis 2 --psy-rd '''X.X:X.X''' --me umh --aq-strength '''X''' --no-dct-decimate --no-mbtree --output "encode.mkv" - 2> pass2.log
- Lưu ý:
- Các setting mình sẽ giải thích khi làm video demo
- với bitrate bạn có thể chọn thông qua meGUI: Mở meGUI, chọn Tool/Bitrate Calculator , chọn số framerate, điền số frame của source vào (xem file source.avs trong AVSP, góc dưới bên phải), Select file audio trong thư mục project, ở ô filesize thì chọn target size mà bạn thích (DVD5, DVD9...)
- Copy đoạn setting trên bỏ vào file txt, sau đó save lại thành file encode*bat . Sau đó mở file source.avs lên, add thêm đoạn lệnh sau vào cuối file để test : SelectRangeEvery(5000,300). Giải thích câu lệnh này: Cứ mỗi 5000 frames của source sẽ lấy ra 300 frames để test. Như vậy file test sẽ có time = 1/16 time của source gốc. Save lại và chạy file encode.bat
- Sau khi có kết quả là đến bước kiểm tra thành phẩm, nghĩa là compare với source. Dùng AVSP mở file source.avs và encode.mkv lên, nhớ thay DirectShowSource bằng ffmpegsource2 ở tab encode, đồng thời add thêm câu lệnh ffinfo() ở tab encode đê xem thông tin về frametype. Nhấn F5 để review, sau đó chọn đến frame bất kỳ và chuyển qua lại giữa 2 tab để so sánh. Lưu ý là luôn so sánh B type, còn I và P ko nên so vì chúng lúc nào cũng cho chất lượng tốt.
http://wiki.hdvnbits.org/index.php?title=H%C6%B0%E1%BB%9Bng_d%E1%BA%ABn_encode_Blu-ray/HDTV_s%E1%BB%AD_d%E1%BB%A5ng_x264