Điểm chính cần nhớ
Tệp SRT (SubRip Subtitle, phần mở rộng
.srt) là một tệp văn bản thuần chứa phụ đề: các khối được đánh số, mỗi khối có thời điểm bắt đầu và kết thúc viết dạnggiờ:phút:giây,mili giâycùng phần chữ cần hiển thị. Nó không chứa video hay âm thanh, mở được trong bất kỳ trình soạn thảo văn bản nào và gần như mọi trình phát lẫn nền tảng video đều chấp nhận. Bạn có thể viết nó bằng tay, tạo từ văn bản thuần, hoặc xuất từ một bản ghi lời, rồi kiểm tra bằng công cụ kiểm tra trước khi tải lên.
Nếu bạn từng bật phụ đề trong một trình phát video, rất có thể một tệp SRT đã làm việc đó. Nó là một trong những định dạng phụ đề lâu đời nhất còn được dùng hằng ngày và là một trong những định dạng tệp đơn giản nhất, và chính vì vậy mà nó có mặt khắp nơi.
Trang này trình bày toàn bộ định dạng ở một chỗ: bên trong tệp có gì, quy tắc chính xác cho từng phần kèm nguồn gốc, cách tạo và sửa một tệp, và nó khác WebVTT ở đâu.
Bên trong một tệp SRT trông như thế nào?
Tệp SRT là một danh sách các câu thoại, và mỗi câu thoại đều có bốn phần giống nhau: số thứ tự, dòng thời gian, một hoặc hai dòng chữ và một dòng trống. Mở bất kỳ tệp .srt nào bằng Notepad hoặc TextEdit và bạn sẽ thấy các khối như sau:
1
00:00:01,600 --> 00:00:04,200
Chào mừng bạn quay lại kênh.
2
00:00:04,400 --> 00:00:07,900
Hôm nay chúng ta xem các tệp
phụ đề thực sự hoạt động thế nào.
3
00:00:08,100 --> 00:00:10,000
<i>(cửa đóng lại)</i>Đọc từ trên xuống, câu thoại thứ hai nói rằng: hiện hai dòng này từ giây 4.4 đến giây 7.9 của video. Không có phần đầu, không có mục kiểu dáng và không có dữ liệu nhị phân, nên tệp luôn nhỏ và chịu được việc bị mở, sửa và lưu bởi gần như mọi chương trình.
Các quy tắc của định dạng SRT là gì?
Thứ gần nhất với một tài liệu tham chiếu cho SubRip là các mô tả do kho lưu trữ và các định dạng container giữ. Mô tả định dạng của Library of Congress nêu timecode là giờ:phút:giây,mili giây, viết 00:00:00,000, với mũi tên --> giữa thời điểm bắt đầu và kết thúc, và tài liệu phụ đề của Matroska mô tả cùng khối bốn phần đó.
| Phần | Quy tắc | Ví dụ |
|---|---|---|
| Số thứ tự | Một số nguyên trên dòng riêng, bắt đầu từ 1 và tăng dần | 2 |
| Dòng thời gian | Thời điểm bắt đầu và kết thúc dạng giờ:phút:giây,mili giây, ngăn cách bằng --> với một dấu cách mỗi bên | 00:00:04,400 --> 00:00:07,900 |
| Dấu ngăn mili giây | Dấu phẩy, không phải dấu chấm; dấu chấm thuộc về WebVTT | ,400 |
| Chữ | Một hoặc nhiều dòng hiển thị cùng nhau; một ngắt dòng trong tệp là một ngắt dòng trên màn hình | Hôm nay chúng ta xem các tệp |
| Dòng trống | Kết thúc câu thoại; số kế tiếp bắt đầu câu thoại tiếp theo | (dòng trống) |
| Định dạng | Các thẻ đơn giản như <i>, <b> và <u>, được nhiều trình phát tôn trọng và một số khác bỏ qua | <i>(cửa đóng lại)</i> |
Hai chi tiết làm hỏng nhiều tệp hơn tất cả những thứ còn lại cộng lại. Thứ nhất là dấu phẩy: dòng thời gian viết với dấu chấm, 00:00:04.400, là thói quen của WebVTT, và một số công cụ từ chối nó trong SRT. Thứ hai là dòng trống: một câu thoại thiếu dòng trống sẽ dính vào câu kế tiếp, và trình phát hoặc gộp chúng lại hoặc bỏ một câu.
Mã hóa
Hãy lưu tệp SRT ở dạng UTF-8. Nó bao quát mọi hệ chữ, từ chữ Latin có dấu đến tiếng Ả Rập, tiếng Trung và emoji, và là thứ các trình phát hiện nay mong đợi. Các tệp từ công cụ Windows cũ đôi khi ở một bảng mã cũ theo khu vực, đó là lý do chữ có dấu biến thành dấu hỏi hoặc chuỗi ký hiệu lạ. Lưu lại tệp ở dạng UTF-8 trong trình soạn thảo văn bản sẽ sửa được điều đó. Một số chương trình còn thêm một dấu thứ tự byte vô hình ở đầu tệp UTF-8; hầu hết trình phát bỏ qua nó, nhưng nếu một công cụ khắt khe từ chối câu thoại đầu tiên, hãy thử trước tiên việc lưu ở dạng UTF-8 không có dấu đó.
Độ dài dòng là quy tắc đọc, không phải quy tắc định dạng
Bản thân định dạng không giới hạn một dòng được dài bao nhiêu; các hướng dẫn phong cách thì có. Mô tả của Library of Congress nhắc đến giới hạn 32 ký tự mỗi dòng, BBC Subtitle Guidelines đặt 37 ký tự cho truyền hình, và Netflix English (USA) Timed Text Style Guide cho phép 42 ký tự mỗi dòng, tối đa hai dòng. Trình phát vẫn sẽ hiển thị một dòng dài hơn, thường bằng cách xuống dòng, nên giới hạn này là về việc người xem có đọc kịp phụ đề hay không, điều mà phần kiểm tra tốc độ đọc trong công cụ kiểm tra SRT của chúng tôi đo theo hướng dẫn bạn chọn.
Tệp SRT được dùng để làm gì?
- Nền tảng video: tải một tệp SRT lên cùng video và người xem có phụ đề để bật.
- Trình phát máy tính và TV: VLC và nhiều trình phát khác nạp tệp SRT nằm cạnh tệp video với cùng tên.
- Dịch thuật: người dịch thay các dòng chữ và giữ nguyên thời gian, tạo ra một tệp SRT cho mỗi ngôn ngữ.
- Phần mềm dựng phim: các trình dựng video phổ biến nhập SRT làm một track phụ đề.
- Khả năng tiếp cận: phụ đề cho người khiếm thính và nghe kém, với mô tả âm thanh trong ngoặc và tên người nói, vừa trong các dòng chữ của một tệp SRT thông thường.
Làm thế nào để tạo một tệp SRT?
Tự động từ video
Với video YouTube, hãy dán liên kết vào công cụ transcript YouTube và bấm SRT trên trang transcript: thông tin thời gian đến từ chính phụ đề của video. Với các bản ghi âm và tệp của riêng bạn, ứng dụng SozAI chuyển âm thanh thành văn bản ở 99 ngôn ngữ và xuất phụ đề.
Từ văn bản bạn đã có
Nếu bạn có kịch bản hoặc bản ghi lời dưới dạng văn bản thuần, công cụ tạo SRT từ TXT miễn phí biến mỗi đoạn thành một câu thoại và cho nó một thời lượng theo độ dài, ở 150 từ mỗi phút, không bao giờ ngắn hơn 2 giây hay dài hơn 8. Hãy chia các đoạn dài trước: một câu thoại hơn 20 từ chạm trần 8 giây và ra quá nhanh để đọc. Nó chạy trong trình duyệt của bạn và không có gì được tải lên.
Bằng tay
Với một clip ngắn, viết SRT trong trình soạn thảo văn bản là hoàn toàn hợp lý: theo khối bốn phần, lưu thành subtitles.srt ở dạng UTF-8, thế là xong. Quá một hai phút video, việc hẹn giờ bằng tay trở nên mệt mỏi, và một trong hai cách ở trên nhanh hơn.
Vì sao tệp SRT của tôi không chạy?
| Sự cố | Nguyên nhân thường thấy | Cách sửa |
|---|---|---|
| Phụ đề không hiện chút nào | Sai phần mở rộng, sai mã hóa hoặc dòng thời gian bị lỗi | Chạy tệp qua công cụ kiểm tra SRT, nó chỉ ra khối bị hỏng |
| Phụ đề sớm hoặc muộn một lượng như nhau | Video có phần mở đầu hoặc một đoạn cắt mà tệp không biết | Dời mọi timecode cùng lúc bằng công cụ dời thời gian phụ đề |
| Phụ đề càng lúc càng lệch khi video phát | Tệp được hẹn giờ cho một tốc độ khung hình khác, ví dụ 23.976 so với 25 | Xem vì sao phụ đề bị lệch thời gian |
| Chữ có dấu bị méo | Lưu ở một bảng mã cũ | Lưu lại ở dạng UTF-8 |
| Nền tảng từ chối tệp | Nó mong đợi WebVTT | Chuyển đổi bằng công cụ chuyển đổi VTT và SRT |
SRT khác WebVTT và timecode theo khung hình ở đâu?
WebVTT (.vtt) là định dạng của W3C dùng cho các trình phát video HTML5. Đặc tả WebVTT của W3C viết mili giây sau dấu chấm với ba chữ số và để phần giờ là tùy chọn, và tệp bắt đầu bằng dòng đầu WEBVTT; nó còn thêm định vị và kiểu dáng mà SRT không có. Thời gian là cùng một thời điểm viết khác đi, nên chuyển đổi qua lại chỉ là chuyện dấu câu và phần đầu, được trình bày kỹ hơn trong VTT so với SRT.
Người dựng phim đếm thời gian bằng khung hình chứ không phải mili giây, dưới dạng timecode SMPTE, HH:MM:SS:FF. SRT lưu thời gian thực, nên khi phụ đề được làm từ timecode của một bản dựng, tốc độ khung hình quyết định kết quả: ở 29.97 khung hình mỗi giây, một giờ timecode non-drop dài hơn 3.6 giây theo thời gian thực so với nhãn ghi. Công cụ chuyển đổi timecode của chúng tôi chuyển timecode SMPTE, kể cả drop-frame, sang mốc SRT và ngược lại.
Nếu thứ bạn cần là các từ mà không có thời gian nào, công cụ Phụ đề sang văn bản loại bỏ các con số và timecode khỏi tệp SRT hoặc VTT và để lại các đoạn văn dễ đọc.

