Thứ Ba, tháng 7 31, 2007

Hát đủ loại file

Cách để máy bạn hát được đủ dạng file nhạc, hình ảnh
Để làm việc này :
- Bạn đến http://www.free-codecs.com, download K-lite codec pack, Quicktime AlternativeReal Alternative.
- Khi :
-- cài K-lite codec pack, ở bước “Select component” , bạn chú ý chọn tất cả các mục ở khu vực: DirectShow video filters, DirectShow Audio filtersDirectShow source filters. Mũi tên trên hình đang chỉ vào khu vực “DirectShow video filters”. Bạn hãy kéo thanh cuộn xuống phía dưới thì sẽ thấy các khu vực còn lại.
-- Còn với QuickTime Real Alternative, bạn chỉ cần nhấn Next là được

Nói thêm:
-
Hầu hết các phần mềm nghe nhạc hiện nay như WMP, MPC, JetAudio đều sử dụng các filter DirectShow để hát các file nhạc. Mỗi dạng file cần các filter phù hợp cho nó. Muốn xem nhiều loại file nhạc khác nhau thì mình cần phải cài đủ các filter cần thiết.
-Direct Show ra đời vì muốn đơn giản hóa việc xử lý âm thanh, hình ảnh trên máy tính cũng như tăng độ tương thích. Mỗi lần xử lý(nghe nhạc,xem phim) thì ta đang tạo 1 đồ thị GraphDirectShow. Mỗi phần tử nhỏ nhất là 1 filter. Chữ này nghĩa gốc là bộ lọc. Bạn có thể nghĩ tới bộ lọc tăng màu sáng, v.vv như trong photoshop. Nếu nghĩ vậy là đúng! Nhưng 0 hẳn bộ lọc phải : co dãn, làm sắc nét, làm mịn da,...
Để xem phim trên direct show thì cần ít nhất là 4 filter
- Source filter và Splitter : Source filter đọc file. Mọi người thấy là khi xem phim thì ta chỉ có 1 file nhưng lại có âm thanh, hình ảnh, phụ đề. Splitter filter sẽ tách các thứ này ra. Có 1 số filter bao gồm 2 filter này luôn
- Decoder filter: dĩ nhiên phải có audio decoder filter, video decoder filter, subtitle filter. Các filter này nhận dữ liệu từ Split filter
- Render filter: cái này là màn hình, soundcard.
Ta thấy mỗi dạng file có cách lưu trữ hình ảnh, âm thanh riêng. Có cái thì để âm thanh ở đằng trước, có cái thì để đằng sau. Mở 1 file ra và biết là âm thanh nằm đằng trước nhưng byte đầu tiên của file chưa chắc mang thông tin âm thanh. Tức là nằm đằng trước nhưng chính xác làm nằm ở đâu cũng là vấn đề. Bởi vậy, với mỗi dạng file(wmv, mkv, mp4, mov,,.,) cần có các Source filter riêng. Rõ ràng làm cách này thì Decoder chả cần biết là dạng file gì, chả cần biết âm thanh nằm chỗ nào. Nó chỉ biết việc duy nhất là giải mã. Đưa thì nó coi có đúng là loại mình có thể giải mã thì làm, nếu 0 thì thôi!
Tương tự, render làm cho việc xài màn hình, soundcard gì 0 quan trọng nữa! Directshow có cơ chế như tui đã nói ở trên: coi có giải mã được hôn, có đọc được hôn? Nếu được thì làm nhiệm vụ của mình, 0 thì thôi! Cái này cũng đơn giản ! Ai có học lập trình hướng đối tượng thì có thể hiểu! Mấy cái đó đơn giản là thuộc tính của đối tượng
Khi cài K-lite, ở bước chọn các thành phần thì ta thấy có 1 số có nhiều tùy chọn. Ví dụ: mp4 splitterGabestHaali. Để biết cái này, xin hãy đọc lại bài trước. Nói vậy chứ cứ xài thử, chiêm nghiệm thì biết ! Mấy cái đó thì thường được sửa chữa, cập nhật bởi vậy hôm nay dở nhưng ngày mai thì ai biết được

Chúc vui vẻ!

Bài 3: Tìm hiểu về MPEG-4

MPEG-4 là 1 tiêu chuẩn nén âm thanh/ hình ảnh được thiết lập bởi tổ chức Moving Picture Experts Group gọi tắt là MPEG. Chuẩn này gồm nhiều tiêu chuẩn nhỏ, gọi là các phần của MPEG-4. Các phần đáng chú ý là:

  • Phần 2: codec cho dữ liệu trực quan(hình ảnh, ảnh động,…) Có tên thường gọi là MPEG-4 ASP. Cài đặt là DivX, Xvid, NeroASP..

  • Phần 3: codec âm thanh AAC. Cài đặt: Nero AAC, CT AAC(winamp xài cái này), Real AAC,..

  • Phần 10: 1 codec hình khác. Tên thường dùng là MPEG-4 AVC. Mục tiêu của chuẩn này là với bitrate 1 nửa những cho chất lượng tương đương với MPEG-4 ASP Cài đặt: Nero Avc, MainConcept, Elecard, x264(miễn phí, mạnh nhất)

  • Phần 12: container để chứa hình/tiếng, .mp4. Mp4box là chương trình miễn phí để mux/demux file mp4. GUI cho nó là YAMB

MP4 ở Việt Nam

Ở VN mình thì mp3 là dạng file âm thanh nhỏ hơn CD 10 lần mà chất lượng vẫn hay. Còn mp4 là dạng file video nhỏ hơn VCD 10 lần mà chất lượng vẫn tuyệt vời. Không tin thì bạn có thể vô tiệm bán đĩa, phim mp4 thì thấy các loại file có thể là :wmv, avi, rm,......

Nếu bạn có 1 file mpeg-4 chuẩn ISO thì container phải là mp4, âm thanh là AAC, hình thì mpeg-4 ASP hoặc là mpeg-4 AVC. Hiện nay, có rất nhiều phần mềm có thể chuyển đổi các định dạng khác sang mp4. Thực sự, các phần mềm này thường xuất ra file AVI, video thì xài DivX, âm thanh thì thường là mp3. AVI 0 phải là container chính thức của chuẩn MPEG-4.

AVI :

- 0 hỗ trợ VFR (variable frame rate, tốc độ hình thay đổi),

- và 0 thể chứa âm thanh AAC( nhất nhì thời nay).

- Nó cũng 0 hỗ trợ MP3 VBR. Có 1 số phần mềm đã hack và có thể nhét được: VirtualDubMod, Mencoder. Nhưng đáng tiếc là 0 có nhiều phần mềm nghe nhạc hỗ trợ dạng AVI như vậy

Vậy sao vẫn dùng? Vì nó “thâm niên”. Mp4 mới ra đời nên chưa được phổ biến và AVI là "con" của Microsoft mà !

Có ai ngon hơn mp4 0 ? Có! Đó là MKV. Tuy nhiên, không có nhiều máy nghe nhạc cầm tay hỗ trợ container này. Nói chung, để trao đổi file trên mạng, lưu trên máy thì MKV là tốt nhất. Nói tới đây, chắc cú là bạn cũng chưa 100% mê MKV hay MP4. Vì phần mềm nào hỗ trợ ? Làm sao để hát nếu có file này ? Quá dễ! Mời bạn xem lại bài nàybài này

Các bản AAC:

Nero AAC: miễn phí, hỗ trợ ABR, VBR,... âm thanh 5.1

CT AAC: Coding Technology AAC, hỗ trợ 5.1 nhưng 0 có VBR. Được dùng trong winamp, tức cũng miễn phí

Real AAC: cũng miễn phí nhưng hình như chưa hỗ trợ VBR và chỉ có 2 kênh

.......

Các bản MPEG4- AVC: ngon nhất là x264 mà lại miễn phí

Vorbis: cũng miễn phí

GUI để encode âm thanh:

Belight: GUI của Besweet

BeHappy: mở file bằng DirectShow, Avisynth--> encode tất cả các dạng file

MediaCoder: encode tùm lum, chuyện gì làm cũng được.

GUI để encode video:

Xvid, x264: Megui(chuyên MPEG-4), MediaCoder

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?



Bài 6: Hướng dẫn sử dụng BeHappy

Yêu cầu hệ thống
Cài đặt
  • Download và extract bản BeHappy mới nhất từ from BeHappy Workspace
  • Download và extract NicAudio.dll mới nhất từ BeHappy Workspace, đặt NicAudio.dll ở thư mục plugins của AviSynth
  • Nếu bạn muốn dùng chức năng chuyển Stereo sang 5.1 UpMix, download và extract SoxFilter mới nhất ở đây, đặt ở thư mục plugins của AviSynth
  • Tương tụ, để dùng AudX MP3 5.1 surround encoding , download rồi extract enc_AudX_CLI mới nhất ở BeHappy Workspace, để enc_AudX_CLI.exeaudxlib.dll vô thư muc BeHappy
  • Nếu muốn dùng MP3, download rồi extract Lame encoder ở rarewares (bản khuyên dùng là 3.97b2). Đặt lame.exe vô thư mục BeHappy
  • Nếu muốn dùng OggVorbis, download rồi extract OggEnc2 ở rarewares, đặt oggenc2.exe vô thư mục BeHappy. Cái này thì tui thích cái OggEnc mod hơn
  • Nếu muốn dùng FLAC, download and extract FLAC coder, để flac.exe vào thư mục BeHappy
  • Nếu muốn dùng WavPack, download rồi extract WavPack encoder, để wavpack.exe vô thư mục BeHappy
  • Nếu muốn dùng Coding Technologies AAC encoder
    • Download rồi extract enc_aacPlus mới nhất ở BeHappy Workspace, để enc_aacPlus.exe vô thư mục BeHappy
    • Download rồi extract GPAC's MP4Box mới nhất , để mp4box.exe vô thư mục BeHappy
    • Download rồi install WinAmp player (Bản Full là đủ)
    • Chép enc_aacplus.dllnscrt.dll từ Winamp\Plugins vô thư mục BeHappy
    • Nếu 0 muốn dùng WinAmp, bạn có thể "vô tư" mà uninstall nó
  • Nếu muốn dùng Nero AAC, download rồi extract FREE NeroDigital AAC, đặt neroAacEnc.exeneroAacEnc_SSE2.exe vô thư mục BeHappy
Đây là bản BeHappy do tui dịch, bản mới nhất đó. Hiện, Behappy được 1 số người cải tiến nhưng 0 upload lên GotDotNet
Chú ý: khi mở hộp thoại File, bạn chọn source là DirectShow thì sẽ mở được tất cả các file. Muốn máy mình hát đủ loại file thì đọc bài "Hát đủ loại file"