Mar 6, 2010

Nén DVD thành tập tin MKV chất lượng cao

Nén DVD thành tập tin MKVĐịnh dạng MKV hay Matroska Video - theo tên con búp bê Nga matroska có
thể chứa nhiều con búp bê khác bên trong nó - bao gồm cả video, âm
thanh, phụ đề, menu... trong cùng một file. Đặc biệt là với dung lượng
chỉ bằng 1 CD, chất lượng video của MKV lại tương đương với DVD, có thể
phát dễ dàng bằng những chương trình như VLC Media Player...



Hiện
nay, hầu hết các bộ phim mới đều được upload lên mạng với chất lượng
cao. Không tính đến những bản DVD nguyên bộ, chắc hẳn bạn đã từng thấy
những bộ phim với dung lượng chỉ 1 CD (700 MB) mà chất lượng vẫn không
kém DVD là mấy trên RapidShare, MegaUpload hay mạng Torrent. Vậy họ làm
điều đó như thế nào?


 Chọn lựa codec:


Trước
hết, chúng ta phải xác định dùng codec nào để nén cho chất lượng tốt
nhất. Có 4 codec ở tốp đầu cho bạn lựa chọn: XviD, x264, TrueMotion
VP7, DivX. Codec XviD cho chất lượng video ở mức khá nhưng chưa tích
hợp H264 optimization, dung lượng còn lớn. Codec DivX được sử dụng phổ
thông hơn trong việc lưu trữ trên máy tính và cho chất lượng tương
đương XviD, tuy nhiên lại thu thu phí và ít tùy biến. Về phần
TrueMotion VP7, được On2 tạo ra, chuyên dùng để nén video với chất
lượng cao nhất và giảm tối đa dung lượng, nhưng nó lại không tuân theo
chuẩn MPEG-4.


Chỉ
có x264 khắc phục tất cả các nhược điểm trên. Với x264, bạn có được một
định dạng tuân theo chuẩn MPEG-4 với chất lượng rất cao (tương đương
VP7), tích hợp H264, luôn được cập nhật mới, xuất ra video có dung
lượng chỉ bằng 2/3 XviD hay DivX với cùng chất lượng, và codec này cũng
miễn phí. Khuyết điểm duy nhất là thời gian nén hơi lâu (khoảng gấp
rưỡi XviD).


Về
phần âm thanh, bạn chỉ cần lưu ý hai định dạng MP3 và OGG Vorbis. MP3
là định dạng nhạc số thông dụng có tính ổn định và tương thích cao,
được người dùng ưa chuộng, nhưng nếu bạn cần âm thanh chất lượng cao
thì hãy sử dụng OGG Vorbis. Đây là một định dạng khá lạ nhưng cho âm
thanh tốt hơn MP3 và dung lượng cũng tăng hơn MP3 một chút.


Cuối
cùng là định dạng cho video, AVI là định dạng cổ điển nên sẽ có tỉ lệ
nén không cao. Cùng với việc sử dụng x264 làm codec nén, bạn nên đóng
gói video dưới dạng MKV (Matroska) để đạt chất lượng tốt nhất.


 Các công cụ cần chuẩn bị:


- AviSynth mới nhất (http://avisynth.sourceforge.net).


- MKV toolnix (http://www.bunkus.org/videotools/mkvtoolnix/).


- DVDShrink (http://tinyurl.com/dvdshrinkth).


- DGIndex (http://tinyurl.com/dgmpgdecth).


- VirtualDub (http://www.virtualdub. org/).


- VobSub (http://vobsub.edensrising. com).


- BeSweet BeLight (http://belight. corecodec.org).


 Các bước thực hiện:


1. Trích xuất file VOB từ DVD


Bạn mở DVDShrink lên, bấm vào Re-author, chuyển qua thẻ DVD Browser, chương trình sẽ hiển thị các title có trong DVD, bạn kéo-thả title muốn rip vào khung Re-authored DVD, sau đó chuyển lại thẻ Compression Settings, trong khung Video chọn No Compression nhằm giữ nguyên chất lượng gốc, với Audio thì bạn đánh dấu tất cả các audio track hiện hữu để tích hợp cả thuyết minh vào phim. Cuối cùng bấm Backup, chọn nơi lưu file xuất ra là Hard Disk Folder, bấm OK
đợi chương trình làm việc trong vài phút. Sở dĩ chọn DVDShrink là vì nó
có giao diện trực quan, có thể chia chính xác các title mà không bị
lỗi. Một chương trình khác cũng hay được sử dụng là VobBlanker (tải tại
http://jsoto.posunplugged.com/vobblanker.htm).


2. Tách riêng hình ảnh và âm thanh bằng DGIndex


Bạn mở DGIndex, vào File > Open hoặc bấm F2 để mở những file VOB vừa trích xuất. Tiếp theo, đặt lại các thiết lập bằng cách vào Video > Field Operation, chọn Honor Pulldown Tag Audio > Output Method > Demux All Tracks.


Bấm F5 để play file và quan sát bảng Information phía phải. Bạn chú ý 2 thông số Video Type, Frame Type.
Kiểm tra tiếp lỗi interlace bằng cách kéo thanh trượt qua lại và nhìn
bằng mắt thường xem có frame nào bị nhòe và hiện rõ một số đường kẻ
ngang hay không. Cuối cùng xử lý từng trường hợp theo bảng sau:



Sau khi đã hoàn thành, bạn vào File > Save Project để lưu lại thành file *.d2v (hình ảnh) và *.ac3 (file âm thanh).


3. Tạo mã AVISynth


Bước
này rất quan trọng vì nó tiết kiệm cho bạn rất nhiều thời gian mã hóa
nhờ sử dụng bộ lệnh xử lý cực mạnh của AVISynth (lưu trong file *.avs).
VirtualDub sẽ dựa trên những script này để mã hóa video hoàn chỉnh.
Thường thì các “ripper” đã bỏ vài giờ viết sẵn những mã lệnh này dựa
trên các tài liệu trên mạng, sau đó chỉ việc dùng chúng làm kịch bản,
còn với người dùng bình thường, học mã AVISynth dường như là điều không
thể vì quá mất thời gian. Trừ phi bạn có quỹ thời gian dồi dào, bằng
không chúng ta nên sử dụng đến công cụ D2V to AVS Script Generator
(DASG) của tác giả Lê Minh Hoàng nằm trong Start > Programs > DMPGDec.


Với DASG, bạn có thể tùy chỉnh những thông số quan trọng sau:


- Post-Processing (khử lỗi nén MPEG-2): trên
DVD thường xuất hiện những lỗi nhiễu, hay đúng hơn là vỡ hạt do quá
trình nén MPEG-2 không đủ sinh các pixel lấp đầy những chuyển động
nhanh hoặc chi tiết nhỏ. Thao tác Post-Processing sẽ giúp bạn xử lý
chúng. AVISynth có thể khử nhiễu trên thành phần sáng (Y-Luma) hoặc màu
(UV-Chroma).


- Noise Removal (khử nhiễu): khi
quay phim, máy quay sẽ để lại một vài nhiễu đốm và làm cho codec phải
huy động nhiều dữ liệu nén những nhiễu này, trong khi đó thì các chi
tiết khác lại thiếu dữ liệu, làm cho video thành phẩm xấu đi trông thấy.


- Cropping: cắt xén bớt vài pixel ở rìa khung hình.


- Deinterlacing:
như đã nói, thông số này là để khử đi lỗi interlace trong video do máy
quay tạo ra. Tất nhiên không nói đến trường hợp phim nhựa được làm “giả
interlace” cho giống DVD, nâng từ 23,976 fps lên 29,970 fps bằng kỹ
thuật Telecine vì đã khử được ở bước 2. Trước hết phải hiểu rằng camera
quay video với tốc độ gấp đôi video chuẩn (khoảng 50 fps cho TV 25 fps,
dạng interlace), trong 2 thời điểm liền nhau ghi các pixel chẵn và
pixel lẻ riêng, sau đó ghép lại để hình ảnh mịn và mượt hơn, đồng thời
có thể thực hiện được các pha quay chậm. Vì vậy thiết bị phát hình phải
thực hiện deinterlace (khử interlace). File video trên máy tính không
đảm nhiệm được chức năng đó nên bạn phải khử bằng tay để có được kết
quả. Bạn có thể lên mạng tham khảo thêm tài liệu để có lựa chọn tốt
nhất.


- Resizing: tùy
chọn này giúp thay đổi kích thước khung hình: 16:9 hoặc 4:3. Thường thì
khi phóng to, người ta hay sử dụng Bicubic và thu nhỏ là Bilinear. Và
nếu nén phim màn ảnh rộng, bạn cần ước lượng số pixel trống (màu đen)
trên và dưới để thu nhỏ frame size, tránh tình trạng tăng dung lượng
file không đáng có bởi phải encode cả các pixel trống.


Cuối cùng, bấm Save để ghi lại file *.avs.


4. Nén video bằng VirtualDub


Bạn mở VirtualDub lên và kéo-thả file *.avs khi nãy vào và chọn Video > Fast Recompress để mã hóa video nhanh hơn do không cần chuyển hệ màu YVY2/YV12 của DVD sang RGB.



đây chúng ta nén video cân bằng giữa dung lượng và chất lượng nên chọn
nén theo kiểu VBR (Variable Bit Rate) nhằm phân bố dữ liệu biến thiên
theo chuyển động đơn giản hay phức tạp của khung hình. Đối với x264 thì
chúng ta có thể nén dạng Nth-pass encoding để cho chất lượng tốt nhất.


Bạn vào menu Video > Compression hoặc bấm Ctrl+P để mở cửa sổ Select Video Compression, tiếp theo, chọn x264fw – H264/MPEG-4 AVC codec và bấm vào Configure.


Nén lần 1 (The 1st pass):


Bạn chọn Multipass - 1st pass và đặt Target bitrate cho video. Thông thường bạn có thể thay đổi giá trị này từ 800 - 1500 kbit/s. Nếu có thời gian, bạn có thể tham khảo thêm tài liệu từ http://www.doom9.org để có thể tinh chỉnh các thông số trong những thẻ còn lại.


Sau đó, chọn File > Save as (F7), chọn đường dẫn lưu file *.avi xuất ra và bấm Save, nhớ bấm chọn Don’t run this job now; add it to job control so I can run in batch mode.


Nén lần 2 (The 2nd pass):


Thực hiện tương tự lần 1 nhưng thay vì Multipass - 1st pass thì chọn Multipass - Nth pass, sau đó nếu cần thì tăng bitrate lên khoảng 100 - 200 kbit/s rồi lưu lại như lần 1.


Cuối cùng bạn bấm F4 mở Job Control và bấm Start để
bắt đầu công việc. Lúc này VirtualDub sẽ dựa vào kịch bản từ file *.avs
và thiết lập Video Compression của bạn để mã hóa video. Quá trình này
nhanh hay chậm tùy thuộc vào tốc độ máy của bạn, nhưng theo kinh nghiệm
là không dưới 2 giờ. Tốt nhất bạn nên làm vào ban đêm và chọn thêm Options > Shutdown when finished, tránh phải chờ đợi lâu.


Nếu muốn bitrate được phân bố đều hơn nữa, bạn có thể encode 3 lần, 4 lần bằng cách tương tự.


5. Nén âm thanh bằng BeLight


Tương
tự video, phần âm thanh cũng sẽ được nén theo VBR để cân bằng giữa chất
lượng và dung lượng. Bạn tiến hành thêm file *.ac3 vào danh sách chờ
của BeLight, nếu có 2 kênh giống nhau thì chỉ cần 1 file để tiết kiệm
dung lượng. Trong thẻ MP3, bạn chọn Target Quality, Variable Bitrate Mode Standard và kéo thanh trượt lên khoảng 60 - 70. Nếu bạn chọn nén audio theo OGG Vorbis thì thao tác tương tự, kéo thanh trượt lên khoảng xấp xỉ 4. Cuối cùng bấm Start Processing.


6. Làm phụ đề cho video


Hiện
nay có một số người thường tích hợp luôn phụ đề vào phim. Điều này dễ
gây khó chịu cho người xem do thỉnh thoảng phụ đề che mất một số chi
tiết, và xem kiểu này cũng chỉ được một loại ngôn ngữ. Giải pháp phụ đề
rời được xem là hoàn hảo với loại phim lưu trữ trên máy tính mà chúng
ta đang thực hiện.


Bạn vào menu Start > Programs > VobSub > VobSub Configure. Trong cửa sổ VobSub, bấm Open, chọn File Type IFO and VOBs, for creating idx/sub (*.ifo), sau đó chọn đúng file
*.ifo tương ứng với video đang thực hiện nén. Tiếp theo bạn chỉ ra
đường dẫn cho file xuất, chọn ngôn ngữ phụ đề trong bảng, cuối cùng bấm
OK.


7. Đóng gói lại thành file MKV


Bạn
mở chương trình mkvmerge GUI có trong bộ MKVtoolnix, lần lượt thêm vào
danh sách chờ file *.avi tạo bởi VirtualDub, file *.idx từ VobSub và
file *.mp3 (*.ogg) từ BeLight. Cuối cùng bấm Start muxing. Chỉ sau
khoảng nửa phút, bạn đã có một file MKV với đầy đủ âm thanh stereo, phụ
đề và nhất là hình ảnh rất mịn đẹp.


Ngoài ra, nếu các bước trên quá phức tạp, bạn cũng có thể dùng các gói chương trình All-in-one sau:


- AutoMKV (http://forum.doom9.org/showthread.php?t=113811).


- RipBot264 (http://forum.doom9.org/showthread.php?t=127611).


- JMEncode 0.64 (http://tinyurl.com/jmencode064, cần có Java Runtime Environment).


- LMX264GUI (http://tinyurl.com/lmx264gui).


- H264sto (http://tinyurl.com/h264sto, vận hành trên nền DOS).


- Ani x264 (http://tinyurl.com/anix26413103).


- MeGUI (http://www.sourceforge.net/projects/megui).


Nguồn: khoahocphothong.comvn

THANH TUẤN - TRẦN HẰNG


megasharesvndotcom@gmail.com