Thứ Tư, tháng 4 04, 2012

Hướng dẫn sync phụ đề một cách đơn giản và tự động

Chào các bạn,

Thời gian gần đây mình thấy có khá nhiều người gặp khó khăn trong việc sync lại sub Việt nên mình xin phép được hướng dẫn một cách đơn giản và tự động để làm việc này. Tuy nói như vậy nhưng bài viết này còn áp dụng cho tất cả các file phụ đề khác, chứ k0 riêng gì sub Việt (VD: một số film cũ nhiều khi k0 thể tìm được file phụ đề nào khớp, kể cả là bản T.Anh). Sau bài viết này, mình hy vọng các bạn sẽ k0 bao giờ còn phải lo lắng vệ việc sync phụ đề nữa

Tác giả coi như các bạn đã có:

- File sub cần phải được sync lại cho khớp, gọi là file sub gốc. File này bắt buộc phải có dạng subrip (.srt) và tốt nhất là chưa bị chỉnh sửa gì cả.

- Một bản rip của bộ phim đang cần sync, gọi tắt là bản rip

- (K0 bắt buộc) Một file sub đã khớp với bản rip, gọi là file sub đối chiếu.

Mục tiêu: Biến đổi file sub gốc thành một file sub mới khớp với bản rip, được gọi là file sub đích.

Bước 1: Chuẩn bị

Down tool Easy SubResync

Cập nhật ngày 5/12/08: Version mới 1.1, cung cấp thêm một cách sync nữa.

Code:

http://www.mediafire.com/?4hyt2dmjzjj

Chạy thử nó trước, nếu k0 được thì bạn down thêm .NET 2.0, cài nó rồi chạy lại tool.

Code:

http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362-4B0D-8EDD-AAB15C5E04F5&displaylang=en

Bước 2: Sync



Như hình trên chúng ta thấy tool đưa ra 3 cách để sync lại file sub gốc:

A. Cách 1 - Có thể áp dụng được cho tất cả các file sub

Cách này yêu cầu nhập vào 2 time k0 khớp (T1a, T2a)2 time khớp tương ứng (T1b, T2b). Từ 4 tham số trên, chương trình sẽ tự động sync lại toàn bộ file sub gốc cho bạn.

Cách lấy 4 tham số trên:

- Trường hợp 1: Bạn k0 có file sub đối chiếu

Chạy bản rip -> dừng lại ở ngay trước một câu thoại bất kỳ -> ghi lại time và điền nó vào ô T1b -> mở file sub gốc -> search câu thoại đó -> copy start time và paste vào ô T1a. Làm tương tự với T2b và T2a.

Chú ý: Cố gắng lấy giá trị của T1b, T2b càng khớp càng tốt.

- Trường hợp 2: Bạn file sub đối chiếu

Mở file sub gốc -> chọn một lời thoại bất kỳ -> copy & paste start time vào ô T1a -> mở file sub đối chiếu -> search lời thoại đó -> copy & paste start time vào ô T1b. Làm tương tự với T2a và T2b.

Chú ý: Khâu nầy rất dễ nhầm lẫn vì các bạn thường nghĩ là file sub gốc (VD: sub Việt) và file sub đối chiếu (VD: sub Anh) có cùng số dòng và hoàn toàn tương ứng với nhau. Tuy nhiên điều này nhiều khi k0 đúng. Nói cách khác: Câu thoại thứ 100 của file sub gốc có thể khác với câu thoại thứ 100 của file sub đối chiếu.

Lưu ý cho cả 2 trường hợp trên:

- 2 sample time (T1a, T2a) k0 nên gần nhau quá (vài giây) mà nên cách nhau ít nhất là một vài phút. Kinh nghiệm cho thấy, 2 cái time này càng xa nhau thì tỉ lệ thành công càng cao.

- Nếu kết quả không như ý, bạn cần kiểm tra lại xem các time nhập vào đã đúng chưa (công đoạn này rất dễ nhầm lẫn). Bạn có thể thử một vài lần nữa với 4 tham số khác. Nếu vẫn k0 được thì file sub gốc gần như chắc chắn k0 thể sync lại được nữa.

B. Cách 2 - Nhanh và dễ hơn nhưng không phải lúc nào cũng làm được

Nếu bạn thấy cách 1 hơi rắc rối (nhưng rất mạnh) thì bạn có thể thử cách 2 trước, nếu may mắn thì có thể sync lại được ngay mà không cần dùng tới cách 1.

Cách này được gọi là chuyển frame rate (FR) cho file sub gốc. Khi bạn down về, chú ý xem có thông tin FR là bao nhiêu k0. (có 3 FR thông dụng: 23.976, 25.00 và 29.97). Cái này gọi là FR gốc. Giờ bạn kiểm tra xem bản rip của bạn có FR là bao nhiêu. Cái này gọi là FR đích. Sau đó bạn nhập vào và ấn sync.

Cập nhật ngày 5/12/08

C. Cách 3 - Copy time từ file sub đối chiếu

Nếu như bạn có file sub gốc và file sub đối chiếu hoàn toàn tương ứng với nhau thì cách đơn giản nhất là copy tất cả time của file sub đối chiếu (đã khớp) sang file sub gốc. Bạn cần đảm bảo file sub gốc và file sub đối chiếu có cùng số lời thoại, và lời thoại thứ n của file này phải giống với lời thoại thứ n của file kia. Tuy nhiên 2 file này k0 nhất thiết phải có cùng số dòng.

Để làm theo cách 3, bạn chon file sub gốc và file sub đối chiếu, sau đó ấn sync.


Hết

Nói thêm với ai quan tâm tới thuật toán của cách 1: nói ngắn gọn, thuật toán này là một phép biến đổi (transform) tất cả time của file sub A thành các time tương ứng của file sub B. Áp dụng trong việc sync sub: file sub A là file sub cần được sync, file sub B là file sub đã khớp.