Tôi thấy rằng nhiều người, đặc biệt là người mới làm quen hoặc người thiếu kinh nghiệm trong lĩnh vực video encoding thường sử dụng DirectShowSource (DSS). Một phần vì nghĩ rằng nó "tiện", một phần khác cũng không thể trách là do có nhiều guide, tutorial toàn sử dụng nó. Trong khi đó hiện nay, nó chỉ nên là lựa chọn cuối cùng và ngay cả thế, người sử dụng nó nên có đủ kinh nghiệm để phần nào làm chủ được những rắc rối mà nó có thể mang đến.
Đối với source filter khác như FFMS, DGMPGDec, DGDecNV... đều cần phải qua thao tác tạo lại index cho source, riêng DSS (nói đúng hơn là DirectShow splitter/decoder mà DSS sử dụng) sẽ đọc trực tiếp index lưu trong tập tin media vì thế nó thường không frame accurate (phụ thuộc vào DS splitter và decoder; một vài trường hợp ngoại lệ là các DS filter của DV, MJPEG... lại frame accurate). Nếu dùng nhiều thao tác cắt nối hoặc các thao tác cấp độ frame như FreezeFrame, DeleteFrame, DuplicateFrame, ApplyRange và các function tương tự... trong Avisynth script thì nhiều khả năng kết quả sẽ lệch so với ý định. Ngoài ra, việc frame rate bị thay đổi cho dù source là CFR hoặc mất đi/dôi thêm vài frame cũng là chuyện thường gặp.
Nguyên tắc hoạt động của DSS là sử dụng các DirectShow filter trên máy phục vụ cho việc demux và decode. DirectShowSource sẽ dựa trên merit của các DS filter trên máy và chọn ra splitter và decoder nào có độ ưu tiên cao nhất để sử dụng, và trong nhiều trường hợp đó không phải là những filter bạn muốn dùng (chẳng hạn bạn cài đặt Nokia/Ovi Suite, nó sẽ đặt merit của splitter và decoder của nó lên rất cao, hay Windows 7 mặc định sử dụng MS DTV-DVD Video Decoder trừ khi bạn thiết lập lại). Nhiều khi do đụng độ/xung đột giữa các filter này (filter-chain không được cấu hình đúng cách, decoder không ưa splitter hoặc stream mà splitter truyền cho decoder có thành phần kích hoạt bug của decoder chẳng hạn) dẫn đến crash hoặc lỗi không render được khi mở một script dùng DSS (hoặc đôi khi crash giữa chừng). DirectShow được thiết kế dành cho playback nên có một số "tính năng" không phù hợp làm source filter. Tiếp theo, phần lớn decoder mặc định cho phép drop frame khi cần thiết và nếu không thiết lập lại, sẽ dẫn đến những kết quả không mong muốn như đã nêu bên trên.
Một số decoder như ffdshow có kèm theo các post-proccesor. Các post-processor này phù hợp khi phát, nhưng không hiệu quả như các filter hay plugin dành cho Avisynth, chẳng hạn deband không có mask nên thêm rất nhiều noise thừa thải... Người encode có thể vô tình hoặc cố ý bật những post-proccessor này (để cải thiện chất lượng khi phát, chẳng hạn) và dẫn đến chúng được áp dụng lên video dù họ không có ý định đó.
Để giải quyết các vấn đề trên, có thể dùng GraphStudio(Next) để chọn lựa filter-chain và các settings phù hợp rồi lưu lại thành file .grf và mở nó bằng DSS. Tuy nhiên, điều này vẫn không giải quyết triệt để vấn đề, như frame accurate, frame rate không chính xác (có thể dùng AssumeFPS để sửa nếu source là CFR; hoặc remux timecodes sau khi encode đối với VFR, tuy nhiên vì DSS có thể drop/dup frame dẫn đến timecodes bị sai), lệch field nếu source là interlaced... Điều quan trọng là trong đa số trường hợp nó gây tốn công nhiều hơn là sử dụng source filter phù hợp khác, và trừ những trường hợp buộc phải dùng (do không còn lựa chọn), nó chẳng thể hiện ưu thế gì nổi bật.
Vì vậy, DirectShowSource chỉ nên dùng khi không thể tránh và đối với những ai có kinh nghiệm, hoặc nếu bạn biết mình đang làm gì. Còn số đông người dùng, hãy sử dụng Source Filter khác khi có thể (và không phải là DSS2, nó chẳng khác DSS cho mấy ngoại trừ việc không hỗ trợ graph và được cho rằng frame accurate nhưng trên thực tế thì không, mặc dù vẫn chính xác hơn DSS).
(Đọc bài viết sau để biết cách xử lý nguồn RAW VFR với FFMS2).
Tuy nhiên, quyết định có sử dụng hay không nằm ở người encode, tôi chỉ nêu ra những nhược điểm để người đọc làm căn cứ chọn lựa, bản thân tôi không thể bắt ép ai thực hiện theo được. Thậm chí những nhược điểm nêu trên có thể không quan trọng với nhiều người, trừ những quality freak như tôi thôi.
(Một ví dụ về trường hợp bất khả kháng: Source container là MPEG-TS nhưng không có điều kiện sử dụng DGDecNV. Nếu video format là MPEG-2, DGMPGDec có thể xử lý tốt trong đa số trường hợp. Nếu video format là progressive H.264 thì có thể remux sang MKV và dùng với FFMS2 [có thể cần thêm vài thủ thuật; đôi khi interlaced H.264 cũng có thể dùng cách này]; trường hợp source là từ Blu-ray thì dùng LWLibavVideoSource. Các trường hợp khác [interlaced H.264 hoặc bất cứ dạng VC-1 nào] thì thử bằng LWLibavVideoSource trước, nếu không được chỉ còn cách dùng DSS [khuyến khích sử dụng LAV Splitter + LAV Video]).
(Ghi chú cho bản thân: Có thể xem xét sửa đổi câu chữ cho dễ hiểu và mang tính thuyết phục hơn, bổ sung dẫn chứng nếu có thể).