Thứ Bảy, tháng 7 21, 2007

Bài 5: Megui-chương trình chuyển các định dạng sang MP4 và MKV

Yêu cầu:

- Cài AviSynth trước tiên! Nếu chưa biết về Avisynth thì nên đọc bài giới thiệu về nó.

- Cài đặt các filter để AVISynth mở được tất cả các loại file

- Bạn đến http://x264.nl để download Megui và x264.exe bản mới nhất.

- .NET FrameWork để chạy chương trình Megui. Xài .NET nhưng bạn đừng sợ chậm vì chức năng của Megui chỉ là giao tiếp với người sử dụng còn các thành phần thực sự chuyển dạng file được viết bằng VC++. Các thành phần khác đều là phần mềm mã nguồn mở, đều hoàn toàn miễn phí.

Trên là các thành phần cần để dùng các chức năng cơ bản. Megui có thể sẽ báo thiếu file. Khi đó, bạn có thể vào google gõ tên file thiếu là có ngay.

Thiết đặt đường dẫn cho Megui: bạn chọn menu Tools/Settings/Program paths. Bạn chỉ cần chọn đường dẫn cho x264.exe và DGIndex(thường là c:\program files\AviSynth 2.5\plugins)

Quy trình làm việc: Tạo file AVS--> cấu hình codec,...--> nhấn enqueue--> chạy job

Giao diện 0 có gì khó hiểu! Có 3 thẻ(tab)Input, Queue và Log.( queue nghĩa là hàng đợi)

Thẻ input cho phép bạn tạo 1 job. Bạn chọn file AVS, tên file đích, cấu hình codec,... Làm xong thì nhấn nút Enqueue, click qua thẻ Queue thì sẽ thấy 1 mục được thêm vào

Tạo file AVS

Nếu là file MPEG, MPG,DAT, VOB: click menu Tools/ D2V creator. Demux nghĩa là giải đa hợp, tức là split, tách ra. Đối với file .DAT thì bạn gõ vài kí tự đầu của tên file ở hộp thoại Open là mở được. Chạy job idx nhe! Nó sẽ tạo file .d2v

Để tạo file avs : menu Tools/ AviSynth Script creator

Crop nghĩa là cắt. Bạn hãy cắt bớt các vùng đen để file đích có kích thước nhỏ. Vùng đen lãng phí lắm!

Resize: co dãn

Mpeg options: nếu codec của file nguồn là MPEG và hình có “ô vuông” (block) thì chọn Mpeg2Deblocking, deblocking nghĩa là “chống ô vuông”

Thẻ Edit là nội dung của file Avs sẽ được tạo ra. Bạn vào xem hướng dẫn của Avisynth để biết thêm các hàm khác( ở thư mục của Avisynth á!)

Mẹo: bạn thêm vào file .AVS lệnh này để encode 1000 frame.u tiên Coi thử coi có được 0? Nếu được rồi thì mình encode hết

trim(0,1000)

Đây là 1 lệnh của AviSynth. Xem hướng dẫn để biết thêm các lệnh khác

Ở thẻ Input, nhấn nút Config để xác định thông số cho codec

Ở đây, tui chỉ hướng dẫn xác định thông số cho x264. Tui có chụp hình nè http://www.box.net/shared/d8a5hm4cm2 http://www.box.net/shared/cateh3zxh6


Mode:

xài constant quality là tốt nhất nhưng kích thước file là 0 biết trước.

Còn ABR là bitrate trung bình. Nhân với thời gian là biết được kích thước file. Ở chế độ này, codec sẽ tiên đoán khung hình kế tiếp sẽ như thế nào. Do “bói toán” nên hơi dở.

Còn 1pass, 2pass, 3pass ? Đó cũng là ABR. Đầu tiên, chạy 1pass, rồi chạy 2pass, hoặc chạy thêm 3pass thì mới thu được file đích. pass 1, codec sẽ xem xét tổng quát còn ở pass 2, pass 3 thì mới thật sự encode. Pass thứ 3 chỉ được xài khi video của mình có chất lượng rất thấp, hoặc là bitrate mình chọn quá thấp. Nếu ngược lại thì chất lượng cải thiện so với pass 2 là rất ít mà thời gian thì “siêu tốn”

AVC profiles, AVC level: chọn tối đa thì sẽ dùng được hết khả năng của codec--> nén nhiều nhưng máy yếu thì hát 0 được: như máy ipod, các máy nghe nhạc cầm tay,... Còn trên máy vi tính thì vô tư.

RC and ME, Quant options, Number of reference frames: chọn số frame tham khảo. Một cách để tăng hiệu suất nén là chỉ lưu những gì thay đổi. Thay vì nén hoàn toàn mỗi frame. Người ta coi frame sau khác với frame chỗ nào rồi nén phần đó thôi! Ví dụ: phát thanh viên trên truyền hình, chỉ có cái miệng là thay đổi nhiều thôi còn hình nền và logo HTV7 thì y nguyên,...

Nếu nội dung là đời thường thì chọn cỡ 3 là được. Đối với hoạt hình thì có thể tăng lên. Chọn nhiều quá thì tốn thời gian nhe!

RC and ME, Quant options,CABAC : tùy chọn này tăng độ nén nhiều. Nếu video có kích thước lớn như 1024x768 hoặc hơn nữa thì đừng chọn cái này. Khi xem sẽ tốn rất nhiều CPU. Máy yếu thì coi 0 nổi

RC and ME, Quant options, Misc, Keyframe Interval và Min GOP size: Min GOP size là framrate, ví dụ video có tốc độ hình là 29.970 thì mình chọn là 30. Còn Keyframe Interval thì gấp 10, ở ví dụ này thì ta có 300. Hai cái này cho biết khi nào thì chuyển cảnh

Advanced, B-frame, Number of B-frame, chọn 5 là được. Có 1 số video được làm từ 1 loạt các hình bmp, jpeg,... thì mình thấy rõ từng hình thay đổi---> chọn hết ga, 16 luôn! Lúc đó, tốc độ encode là rất nhanh :D Một số video hướng dẫn học làm bằng fle avi mấy GB mà nén file rar chỉ còn vài MB thì bạn cũng làm theo cách này. File nén hay không nén bằng winrar vẫn chỉ có vài MB.

Advanced, Quantizer Matrix: xài thêm cái này thì tốc độ nhanh, chất lượng cao, ổn định hơn.

Về cài đặt thông số, bạn có thể tham khảo thêm:

- Tài liệu của DeadTheSheep cho x264 VFW

- http://www.digital-digest.com/articles/x264_options_page1.html

- http://forum.digital-digest.com/showthread.php?t=67180

-Hướng dẫn MeGUI ở Wiki

- Forum doom9 http://forum.doom9.org , forum con MPEG-4 AVC. Đây là chỗ thảo luận của những người viết x264. Người rõ các thông số thì còn ai vào đây nữa?



6 nhận xét:

Nặc danh nói...

Khó quá, đọc bài của cậu mình chịu không thể RIP cái DVD của mình được.
Ở bước tạo file avs, đoạn chọn Tools/Avisynth script creator nó báo lỗi sau :
Avisynth script creator error:
Required Avisynth 2.5
Mình đã tải Avisynth_257.exe cài rồi nhưng chạy vẫn không được.

thuongshoo nói...

aha! thì ra có comment trên đây! Vậy là cuối cùng đã xong rồi nhe!
Sẵn đây, mình sẽ viết lại bài này. Nói chung, bài này hơi dài vì xài Megui+chọn thông số cho x264.

Bây giờ, mình làm ở cty, internet sướng hơn. Hồi viết blog này toàn là xài tiệm 0 hà! Ở tiệm thì xem hình chậm lắm! Vì vậy, mình ít post hình. Chắc là tới đây sẽ post hình. Ngay như hiện nay, mình ra tiệm xem blog của mình thì thấy 1 số hình 0 hiện được. Mà lạ lắm nhe! Hình như có 1 chỗ số thì rất khó vô blog của mình. Hình như DNS nó 0 biết blogspot sao á!

Nặc danh nói...

Nghe có vẻ là chương trình này chỉ dành để rip file , ví dụ mình muốn chuyển từ file MKV sang file AVI(XDIV, DIVX) bằng cái này thì có được ko ?

thuongshoo nói...

Rip CD/DVD thực chất là encode thôi!
Đầu tiên đọc dữ liệu từ CD/DVD rồi encode thay vì từ 1 file có sẵn trên đĩa cứng chẳng hạn. Việc bạn hỏi đều làm được.

MKV chỉ là 1 container mà thôi! MKV không phải là codec.

Ngoài lý do là 1 số đầu DVD chỉ đọc được AVI thì không nên chuyển sang AVI làm gì. VÌ KMV còn tuyệt vời hơn cả .MP4

Bạn có thể đọc lại các bài viết khác mình để rõ hơn về codec, container...

YukiHana nói...

nhưng mà tớ dùng để chuyển định dạng từ file .ass wa avi đó, làm sub cho nó ko bị giảm chất lượng file =-= nhưng mà đọc xong rùi tớ vẫn chưa hỉu lắm, cho tớ xin yahoo cậu đc ko, nick tớ là linh.hana

thuongshoo nói...

chào bạn Linh!

Mình xin lỗi bạn vì bài về Megui của mình hơi cũ. Megui là phần mềm mã nguồn mở và đang trong quá trình phát triển. Do đó từ lúc mình viết hướng dẫn tới nay có lẽ đã khác rất nhiều.

Và bài hướng dẫn này mình không dùng hình nên hơi khó hiểu.

Còn về mong muốn của bạn mình đoán chắc là không khó lắm!

Bạn có 1 file ca nhạc. Rõ ràng, bạn chỉ có 1 file nhưng vừa có hình vừa có tiếng. Bây giờ, nếu bạn convert file đó sang dạng khác thì người ta convert âm thanh và convert hình ảnh riêng rẽ nhau.

Vấn đề tương tự cho file phụ đề. Nếu bạn có file phụ đề riêng thì bạn cứ convert âm thanh và hình ảnh. Làm xong thì có thể dùng lại file phụ đề đó.

Còn bạn nói là để không giảm chất lượng phụ đề đó là do...

Có 2 loại phụ đề lận. Loại phụ đề thứ nhất là soft subtitle, hay phụ đề mềm. Loại này thông tin được trong file text bình thường thôi! Đây có lẽ là loại bạn đang có. Khi hát file nhạc, phần mềm đọc file nhạc để xuất hình ảnh và âm thanh, và đồng thời đọc luôn file phụ đề để hiển thị chữ ra. Do đó chất lượng hoàn toàn tuyệt vời, 0 bao giờ giảm.

Loại thứ 2 là hardsubtitle, tức là phụ đề "cứng", hay phụ đề "chết". Với loại này thì phụ đề là 1 phần của video rồi! Do đó khi convert video thì bạn cũng convert luôn phần "phụ đề". Vấn đề, là mỗi khi convetrt là mỗi lần giảm chất lượng, cộng với các codec hiện nay rất dở với loại hình ảnh "phẳng". Kết quả là sau mỗi lần convert thì phụ đề càng trở nên mờ.

Như mình nói ở đầu post này, chỉ có 1 file nhưng vừa có audio và video. Khi convert thì vẫn có thể convert riêng rẽ.
Nếu mình không lầm thì nếu dùng .mkv thì có thể bạn có 3 luôn! Tức là vừa audio, video và phụ đề. Dĩ nhiên, khiconvert chỉ cần convert audio và video mà thôi! Phụ đề vẫn có thể hoàn toàn tách riêng ra.

Hiện nay phần mềm convert có rất nhiều. Bạn có thể vào http://forum.doom9.org/forumdisplay.php?s=18d93656608243c5b3000c7ea7b2db12&f=78 để kiếm 1 phần mềm mà dùng. Hoàn toàn mã nguồn mở và miễn phí. Dĩ nhiên trong đó có cả Megui.