Trang chủ › Bài viết › Chỉnh lệch giờ phụ đề SRT & WebVTT
Âm thanh & Đa phương tiện

Cách chỉnh lệch giờ phụ đề SRT và chuyển sang WebVTT: Thuật toán tịnh tiến thời gian +500ms

Ngày xuất bản: 16 tháng 10, 2026 • Cập nhật: 17 tháng 10, 2026 • Tác giả: Đội ngũ Kỹ thuật GoToolstack • Xác thực: Công cụ Phụ đề GoToolstack
Đồng bộ và chuyển đổi phụ đề trực tuyến an toàn: Tịnh tiến mốc thời gian phụ đề theo mili-giây (+500 ms, -1000 ms), chuyển đổi mượt mà giữa SRT và WebVTT dành cho trình phát video HTML5 hoàn toàn cục bộ.
Mở công cụ Phụ đề
Mục lục nội dung
  1. Hiện tượng lệch pha âm thanh – hình ảnh trong phụ đề video
  2. Giải phẫu cấu trúc: SubRip (.SRT) vs WebVTT (.VTT)
  3. Thuật toán tịnh tiến mốc thời gian (+500 ms Benchmark)
  4. Minh họa chuyển đổi thực tế

1. Hiện tượng lệch pha âm thanh – hình ảnh trong phụ đề video

Khi xem phim hoặc video bài giảng, không có gì gây khó chịu hơn việc giọng nói của nhân vật phát ra trước nhưng dòng phụ đề chữ lại xuất hiện sau 1–2 giây, hoặc ngược lại. Sự lệch pha này thường xảy ra khi tệp video và tệp phụ đề được xuất từ hai nguồn có tốc độ khung hình (frame rate) khác nhau (ví dụ: 23.976 fps so với 25.000 fps) hoặc do phần mở đầu video (intro) bị cắt xén.

Sơ đồ điều chỉnh tịnh tiến trục thời gian phụ đề
Hình 1: Minh họa cơ chế tịnh tiến toàn bộ mốc thời gian phụ đề (Time-Shifting) trên trục tuyến tính.

Lưu ý kỹ thuật quan trọng: Công cụ điều chỉnh phụ đề này thực hiện việc tịnh tiến mốc thời gian toán học (Mathematical Timestamp Shifting) dựa trên tệp văn bản có sẵn; đây hoàn toàn không phải là nhận dạng giọng nói AI tự động (ASR – Automated Speech Recognition) hay công cụ phiên âm từ âm thanh thô.

2. Giải phẫu cấu trúc: SubRip (.SRT) vs WebVTT (.VTT)

So sánh cấu trúc cú pháp giữa định dạng SRT và WebVTT
Hình 2: Phân tích sự khác biệt về cú pháp tiêu đề và dấu phân cách mili-giây giữa SubRip và WebVTT.
Đặc điểm cấu trúc Định dạng SubRip (.SRT) Định dạng WebVTT (.VTT)
Dòng tiêu đề mở đầu Không có tiêu đề, mở đầu trực tiếp bằng số thứ tự 1. Bắt buộc phải mở đầu bằng dòng văn bản WEBVTT ở dòng đầu tiên.
Dấu phân cách mili-giây Bắt buộc dùng dấu phẩy (,) (ví dụ: 00:00:01,000). Bắt buộc dùng dấu chấm (.) (ví dụ: 00:00:01.000).
Khả năng tương thích Phổ biến trên VLC, Media Player Classic và các ứng dụng máy tính. Chuẩn của W3C dành cho thẻ HTML5 <track> trên mọi trình duyệt web.

3. Thuật toán tịnh tiến mốc thời gian (+500 ms Benchmark)

Để điều chỉnh tệp phụ đề hiển thị chậm hơn đúng nửa giây (+500 ms), thuật toán xử lý chuỗi thực hiện các bước toán học tuần tự:

  1. Phân tích chuỗi mốc thời gian: Tách chuỗi HH:MM:SS,mmm thành các thành phần giờ, phút, giây và mili-giây.
  2. Quy đổi thành tổng số mili-giây (Total Milliseconds):
    t_ms = (HH * 3600 + MM * 60 + SS) * 1000 + mmm.
  3. Cộng độ lệch thời gian:
    t_ms_new = t_ms + delta_ms (ví dụ: $+500\text{ ms}$).
  4. Quy tắc kẹp giá trị không âm (Clamping): Nếu mốc thời gian bị lùi lại một khoảng quá lớn khiến t_ms_new < 0, giá trị bắt buộc phải được kẹp về giá trị tối thiểu là $0\text{ ms}$ (00:00:00,000). Mốc thời gian âm hoàn toàn không hợp lệ trong cả chuẩn SRT lẫn WebVTT.
  5. Định dạng lại chuỗi chuẩn: Chia lấy dư để chuyển tổng mili-giây trở lại định dạng chuỗi 2 chữ số có số 0 ở đầu (Zero-Padded String).
Giao diện đồng bộ phụ đề GoToolstack
Hình 3: Giao diện trực tiếp cho phép nhập số mili-giây cần tịnh tiến và xem trước nội dung phụ đề.

4. Minh họa chuyển đổi thực tế

Trước khi chỉnh (SRT gốc)
1
00:00:01,000 --> 00:00:04,000
Chào mừng bạn đến với GoToolstack Subtitle Studio.
Sau khi tịnh tiến +500 ms và xuất sang WebVTT
WEBVTT

1
00:00:01.500 --> 00:00:04.500
Chào mừng bạn đến với GoToolstack Subtitle Studio.