SRT và VTT: khác biệt, nền tảng hỗ trợ và cách chuyển đổi

Phụ đề SRT và VTT khác nhau thế nào: cú pháp mốc thời gian, dòng WEBVTT, định dạng và vị trí chữ, nền tảng nào nhận định dạng nào, cách chuyển SRT sang VTT.

Hai tệp phụ đề đặt cạnh nhau, một tệp SRT có mốc thời gian dùng dấu phẩy và một tệp VTT bắt đầu bằng dòng WEBVTT, nối với nhau bằng mũi tên chuyển đổi.

Cũng có bằng: English, Русский, Українська, Dansk, Deutsch, Español, Français, Italiano, Magyar, Nederlands, Norsk bokmål, Polski, Português (Brasil), Suomi, Svenska, Türkçe, Ελληνικά, עברית, العربية, 한국어, 日本語, 中文(中国), 中文(台灣), Indonesia

SRT và VTT đều là định dạng phụ đề dạng văn bản thuần, lưu từng đoạn phụ đề với thời điểm bắt đầu, thời điểm kết thúc và dòng chữ cần hiển thị; với phụ đề đơn giản, hai loại gần như thay thế được cho nhau. Khác biệt tuy nhỏ nhưng rất chặt: tệp VTT (WebVTT) phải bắt đầu bằng dòng WEBVTT và dùng dấu chấm trước phần mili giây, còn SRT không có dòng tiêu đề và dùng dấu phẩy; VTT còn có thêm vị trí chữ, định dạng và chú thích. Nói ngắn gọn: dùng VTT cho video HTML5 trên website của bạn, SRT cho Facebook và LinkedIn, còn YouTube và Vimeo thì loại nào cũng được.

Bài này trình bày cả hai định dạng kèm ví dụ, liệt kê nền tảng nào nhận loại nào, và hướng dẫn chuyển SRT sang VTT cũng như chiều ngược lại mà không làm lệch thời gian.

So sánh nhanh SRT và VTT

SRT (SubRip)VTT (WebVTT)
Đuôi tệp.srt.vtt
Dòng tiêu đềKhông cóBắt buộc: dòng đầu là WEBVTT
Định dạng thời gian00:01:02,500 (dấu phẩy)00:01:02.500 (dấu chấm); giờ có thể bỏ
Số thứ tự đoạnBắt buộc, liên tiếpMã định danh tùy chọn (số hoặc tên)
Vị trí chữKhông định nghĩaThiết lập: line, position, size, align, vertical
Định dạng chữKhông chính thức: <i>, <b>, <u>, đôi khi <font><b>, <i>, <u>, lớp, thẻ giọng nói, khối STYLE với CSS
Chú thíchKhôngKhối NOTE
Đặc tả chính thứcKhông (chuẩn trên thực tế)Có, đặc tả của W3C
Ứng dụng điển hìnhMạng xã hội, phần mềm dựng video, trình phát trên máy tínhVideo HTML5, trình phát web, streaming

File SRT là gì?

File SRT là tệp phụ đề SubRip: một danh sách các đoạn phụ đề được đánh số, viết bằng văn bản thuần. Mỗi đoạn gồm ba phần: số thứ tự, dòng thời gian và một hay nhiều dòng chữ, sau đó là một dòng trống trước đoạn tiếp theo.

1
00:00:01,000 --> 00:00:04,200
Welcome to the quarterly update.

2
00:00:04,600 --> 00:00:08,000
<i>Today we cover sales,
hiring and the product roadmap.</i>

Định dạng thời gian là giờ:phút:giây,mili giây, luôn có hai chữ số cho giờ và dùng dấu phẩy. SRT chưa từng được chuẩn hóa chính thức nên mức hỗ trợ thẻ định dạng mỗi nơi một khác. Nhiều trình phát trên máy tính hiển thị được <i> và <b>, nhưng trang trợ giúp của YouTube cho biết họ chỉ hỗ trợ tệp SRT cơ bản, không có định dạng kiểu chữ, lưu ở dạng UTF-8 thuần. Nhờ đơn giản như vậy, phụ đề SRT là định dạng mà gần như mọi phần mềm dựng video và mạng xã hội đều đọc được, và bạn có thể sửa nó bằng bất kỳ trình soạn thảo văn bản nào.

File VTT (WebVTT) là gì?

WebVTT (Web Video Text Tracks) là định dạng phụ đề được tạo ra cho web. Tài liệu WebVTT của MDN tóm tắt các quy tắc: tệp phải bắt đầu bằng WEBVTT, phải là UTF-8, và mốc thời gian dùng dấu chấm trước phần mili giây. Phần giờ có thể bỏ, nên 01:02.500 vẫn hợp lệ.

WEBVTT

NOTE Quarterly update, English captions

intro
00:01.000 --> 00:04.200
Welcome to the quarterly update.

00:04.600 --> 00:08.000 line:85% align:center
<v Maria>Today we cover sales,
hiring and the product roadmap.</v>

Có ba thứ ở đây không tồn tại trong SRT:

  • Thiết lập đoạn (cue settings) nằm sau dòng thời gian, quyết định chữ hiện ở đâu: line (vị trí dọc), position và size (vị trí ngang và độ rộng), align (start, center, end) và vertical (cho chữ viết dọc).
  • Thẻ giọng nói và thẻ lớp như <v Maria> hay <c.highlight> cho biết ai đang nói hoặc áp một kiểu định dạng.
  • Khối NOTE là chú thích mà người xem không bao giờ thấy. Mã định danh đoạn (như intro ở trên) là tùy chọn.

Bạn cũng có thể nhúng CSS trong khối STYLE đặt trước đoạn đầu tiên:

WEBVTT

STYLE
::cue {
  color: #ffffff;
  background-color: rgba(0, 0, 0, 0.7);
}
::cue(v[voice="Maria"]) {
  color: #ffd166;
}

Ngoài trình duyệt, mức hỗ trợ định dạng không đồng đều. Ví dụ YouTube nhận thiết lập vị trí của WebVTT nhưng chỉ cho phép đậm, nghiêng và gạch chân. Hãy coi định dạng là phần thêm, không phải thứ trình phát nào cũng tôn trọng.

Nền tảng nào nhận SRT hay VTT?

Người xem hiếm khi thấy định dạng tệp, nhưng biểu mẫu tải lên thì khá kén. Dưới đây là những gì chúng tôi tìm thấy trên trang trợ giúp của từng nền tảng và trong các hướng dẫn gần đây (kiểm tra tháng 10/2026; giao diện có thể thay đổi, hãy xác nhận lại trong trung tâm trợ giúp hiện tại).

Nền tảngSRTVTTGhi chú
YouTubeCóCóSRT thuộc nhóm cơ bản (không có định dạng kiểu chữ); WebVTT thuộc nhóm nâng cao (vị trí, định dạng hạn chế). UTF-8 thuần.
VimeoCóCóTrung tâm trợ giúp của Vimeo khuyên dùng WebVTT khi có thể; tệp phải là UTF-8.
FacebookCóKhông thấy tài liệuCác hướng dẫn đều chỉ nói đến SRT, đặt tên kèm hậu tố ngôn ngữ như video.en_US.srt.
LinkedInCóKhông thấy tài liệuTrang trợ giúp của LinkedIn mô tả việc đính kèm tệp SRT trên máy tính trước khi đăng.
TikTokKhông thấy cách tải trực tiếpKhông thấy cách tải trực tiếpChúng tôi không tìm thấy cách chính thức để đính kèm tệp phụ đề; hãy dùng phụ đề tích hợp của TikTok hoặc ghi cứng phụ đề vào video.
HTML5 <video>Không hỗ trợ sẵnCóThẻ <track> được thiết kế cho WebVTT.

YouTube dùng SRT hay VTT?

Cả hai. Trang tệp phụ đề được hỗ trợ của YouTube liệt kê SubRip (.srt) trong nhóm định dạng cơ bản và WebVTT (.vtt) trong nhóm nâng cao. Nếu bạn chỉ cần chữ và thời gian, SRT là lựa chọn ít gây rắc rối nhất. Nếu cần đặt phụ đề tránh chỗ có chữ trên hình, hãy dùng VTT.

Video HTML5 trên website của bạn

Với trình phát tự lưu trữ, VTT là lựa chọn thực tế duy nhất:

<video controls src="update.mp4">
  <track kind="subtitles" src="update.en.vtt" srclang="en" label="English" default>
</video>

Với phụ đề tiếng Việt, bạn chỉ cần đặt srclang="vi" và label="Tiếng Việt". Nếu bạn đang có tệp SRT, hãy chuyển đổi trước. Về phụ đề ghi cứng và các nền tảng video ngắn, xem hướng dẫn cách thêm phụ đề vào video.

Cách chuyển SRT sang VTT (và VTT sang SRT)

Vì hai định dạng rất giống nhau, việc chuyển đổi chủ yếu là thao tác máy móc. Tệp ngắn có thể sửa tay, tệp dài hơn thì nên dùng công cụ.

Chuyển SRT sang VTT bằng tay

  1. Thêm WEBVTT làm dòng đầu tiên, sau đó là một dòng trống.
  2. Chỉ trong các dòng thời gian, đổi dấu phẩy trước phần mili giây thành dấu chấm: 00:00:04,600 thành 00:00:04.600.
  3. Giữ nguyên số thứ tự đoạn; WebVTT chấp nhận chúng làm mã định danh.
  4. Lưu ở dạng UTF-8 với đuôi .vtt.

Cẩn thận với tính năng tìm và thay thế: thay mọi dấu phẩy sẽ làm đổi cả dấu phẩy trong lời thoại.

Chuyển VTT sang SRT bằng tay

  1. Xóa dòng WEBVTT và mọi khối STYLE, NOTE, REGION.
  2. Bỏ các thiết lập đoạn ở cuối dòng thời gian.
  3. Thêm phần giờ nếu thiếu (01:02.500 thành 00:01:02.500) và đổi dấu chấm thành dấu phẩy.
  4. Đánh số các đoạn 1, 2, 3 theo thứ tự và bỏ các thẻ chỉ có trong VTT như <v Maria>.

Chuyển đổi ngay trong trình duyệt

Công cụ chuyển SRT sang VTT và công cụ chuyển VTT sang SRT miễn phí của Audiotexta làm các bước này giúp bạn. Bạn dán phụ đề hoặc chọn tệp, việc chuyển đổi diễn ra trong trình duyệt nên không có gì bị tải lên. Thời gian được giữ đến từng mili giây, và tiền tố tên người nói kiểu "Tên:" ở đầu dòng được giữ lại. Một lưu ý thẳng thắn: công cụ loại bỏ thẻ HTML và thẻ định dạng VTT khỏi chữ, nên nếu bạn cần chữ nghiêng hay kiểu riêng, hãy thêm lại sau đó hoặc sửa tệp bằng tay.

Lỗi thường gặp với SRT, VTT và cách sửa

  • Thiếu dòng WEBVTT. Trình duyệt bỏ qua tệp VTT không có dòng này. Hãy thêm nó vào đúng dòng đầu tiên.
  • Dấu phẩy trong mốc thời gian VTT hoặc dấu chấm trong SRT. Đây là hậu quả phổ biến nhất của việc đổi tên tệp thay vì chuyển đổi. Chỉ sửa các dòng thời gian.
  • Sai bảng mã. Chữ có dấu biến thành ký hiệu lạ, như "Xin chào" hiện thành chuỗi ký tự vô nghĩa, thường là do tệp không phải UTF-8. Lưu lại tệp ở dạng UTF-8 trong trình soạn thảo. Với tiếng Việt, lỗi này đặc biệt hay gặp.
  • Lưu thành .srt.txt. Một số trình soạn thảo âm thầm thêm .txt. Bật hiển thị đuôi tệp và đổi tên lại.
  • Thiếu dòng trống. Mỗi đoạn phải cách nhau một dòng trống; nếu không, các đoạn bị gộp hoặc tệp không đọc được nữa.
  • Thời điểm kết thúc trước thời điểm bắt đầu, hoặc các đoạn chồng lên nhau. Trình phát có thể bỏ qua đoạn đó. Kiểm tra thời gian của những đoạn đã sửa.
  • Phụ đề Facebook không hiện. Các hướng dẫn chỉ ra nguyên nhân ở tên tệp: tên nên kết thúc bằng mã ngôn ngữ như .en_US.srt.
  • VTT chạy trên máy nhưng không chạy trên máy chủ. Phục vụ tệp với kiểu nội dung text/vtt. Nếu tệp nằm ở tên miền khác, thẻ video cần thuộc tính crossorigin và máy chủ phải gửi header CORS.
  • Phụ đề tắt theo mặc định. Thêm thuộc tính default vào thẻ <track> nếu muốn phụ đề tự hiện.

Nên xuất định dạng nào?

Nếu bạn tạo phụ đề từ đầu, hiếm khi cần chọn trước. Công cụ tạo phụ đề của Audiotexta chép lời âm thanh và xuất cả SRT lẫn VTT, kể cả ở gói miễn phí, và bạn có thể sửa bản chép lời trước khi xuất để thời gian và câu chữ đều chính xác. Bài hướng dẫn tạo phụ đề SRT và VTT trình bày toàn bộ quy trình, từ chép lời đến độ dài dòng và tốc độ đọc.

Quy tắc chung: xuất SRT khi đích đến là mạng xã hội hoặc phần mềm dựng video, xuất VTT cho website và trình phát web, và giữ cả hai nếu bạn đăng ở nhiều nơi. Chữ và thời gian giống hệt nhau; chỉ có lớp vỏ là khác.

Cách chuyển SRT sang VTT

  1. Mở công cụ chuyển SRT sang VTT. Mở công cụ chuyển SRT sang VTT của Audiotexta trong trình duyệt. Công cụ chạy ngay trên máy bạn nên tệp phụ đề không bị tải lên.
  2. Dán phụ đề hoặc chọn tệp. Dán nội dung tệp .srt vào ô hoặc chọn tệp từ máy tính, rồi kiểm tra xem số đoạn phụ đề được nhận diện có hợp lý không.
  3. Tải tệp VTT về. Tải kết quả về. Công cụ thêm dòng WEBVTT ở đầu và đổi dấu phẩy trước phần mili giây thành dấu chấm, giữ nguyên mọi mốc thời gian.
  4. Kiểm tra trên trình phát. Gắn tệp .vtt vào video, chẳng hạn bằng thẻ track của HTML5 hoặc mục tải phụ đề của nền tảng, rồi phát thử vài đoạn để chắc rằng thời gian và ký tự có dấu hiển thị đúng.

Câu hỏi thường gặp

Khác biệt chính giữa SRT và VTT là gì?

Cả hai đều lưu các đoạn phụ đề có thời gian dưới dạng văn bản thuần. Tệp VTT phải bắt đầu bằng dòng WEBVTT và dùng dấu chấm trước phần mili giây, còn SRT không có dòng tiêu đề và dùng dấu phẩy. VTT còn hỗ trợ vị trí chữ, định dạng CSS và chú thích, những thứ SRT không định nghĩa chính thức.

YouTube dùng SRT hay VTT?

YouTube nhận cả hai. Trang trợ giúp của YouTube xếp SubRip (.srt) vào nhóm định dạng cơ bản không có định dạng kiểu chữ, và WebVTT (.vtt) vào nhóm nâng cao hỗ trợ vị trí, với định dạng chỉ gồm đậm, nghiêng và gạch chân. Tệp nên là UTF-8 thuần.

Có thể chỉ đổi đuôi tệp .srt thành .vtt không?

Không. Đổi tên không thêm được dòng WEBVTT bắt buộc và không đổi dấu phẩy trong mốc thời gian thành dấu chấm, nên các trình phát khắt khe như trình duyệt sẽ từ chối tệp hoặc không hiện gì. Hãy dùng công cụ chuyển đổi hoặc tự sửa dòng tiêu đề và các dòng thời gian.

Chuyển VTT sang SRT có bị mất gì không?

Thường chỉ mất những phần riêng của VTT: thiết lập vị trí và căn lề, khối STYLE, chú thích NOTE và thẻ giọng nói hay thẻ lớp. Chữ và thời gian giữ nguyên, mà đó cũng là thứ hầu hết nền tảng sử dụng.

Nên dùng định dạng nào cho video HTML5 trên website?

Hãy dùng VTT. Thẻ track của HTML được thiết kế cho tệp WebVTT, và trình duyệt cần dòng WEBVTT cùng mili giây ngăn cách bằng dấu chấm. Phục vụ tệp với kiểu nội dung text/vtt.

Dùng thử Audiotexta miễn phí

Tải tệp lên hoặc dán link và nhận bản chép lời trong vài phút.

Bắt đầu chép lời

Bài viết liên quan