Chuyển đến nội dung chính

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

Đị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 và BeLight (http://belight. corecodec.org).

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

1. Trích xuất file VOB từ DVD
Hình ảnh
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 và đợ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
Hình ảnh
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 và 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:
Hình ảnh
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
Hình ảnh
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
Hình ảnh
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.
Hình ảnh
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 là Quality, Variable Bitrate Mode là 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 là 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).

THANH TUẤN - TRẦN HẰNG

megasharesvndotcom@gmail.com

Bài đăng phổ biến từ blog này

Linux IP Commands

Display Current Config for all NIC's: ifconfig Display Current Config for eth0: ifconfig eth0 Assign IP: ifconfig eth0 192.168.1.2 Ping: ping -c 3 192.168.1.1

Thực tế ảo

(Theo naldzgraphics.net)

DOS / Windows IP Commands

Display Connection Configuration: ipconfig /all Display DNS Cache Info: ipconfig /displaydns Clear DNS Cache: ipconfig /flushdns Release All IP Address Connections: ipconfig /release