Dự án Subtitld

MởLưuZIPXMLDự án

Tệp riêng của Subtitld: một gói ZIP mở đầu bằng tài liệu USF chứa phụ đề, các bản dịch, người nói và lồng tiếng, kèm một bản kê khai mọi thứ khác bên trong, một hình ảnh nơi bạn dừng lại và, khi bạn muốn, cả video cùng âm thanh của nó. Một tệp duy nhất để di chuyển, sao lưu hay trao tay, và mọi phần của nó đều đọc được bằng các công cụ tiêu chuẩn.

Tổng quan

Phần mở rộng.usfx
Loại phương tiệnapplication/x-usfx, một dạng của application/zip. Trên hệ thống Apple là org.subtitld.usfx.
Đặc tảTrang này. Gói là ZIP của PKWARE (APPNOTE.TXT); tài liệu là USF 1.0 với các phần tử của Subtitld.
GóiZIP, các thành phần được nén bằng Deflate (RFC 1951) và kiểm tra bằng CRC-32; Zip64 cho tệp lớn hơn 2 GiB
Thành phần đầu tiênsubtitles.usf: tên của nó nằm ở byte 30 trong mọi dự án Subtitld lưu
Độ chính xác thời gianPhụ đề: mili giây. Lồng tiếng: số giây chính xác, với bao nhiêu chữ số thập phân tùy cần.
Mã hóa văn bảnUTF-8, trong XML và trong tên thành phần
Định kiểuCủa USF: nghiêng, đậm, gạch chân, gạch ngang, màu và chín vị trí
Người nóiMỗi người một tên, một màu, một hình ảnh và một giọng
Ngôn ngữBản gốc và từng bản dịch, mỗi thứ một khối, theo mã ISO 639-2 và tên
Phương tiện bên trongLồng tiếng và hình ảnh người nói; video, âm thanh của nó, giọng nói và nền đã tách, và dạng sóng của dòng thời gian khi được yêu cầu

Cấu trúc tệp

Một tệp .usfx là một ZIP. Mọi công cụ nén đều mở được nó; nếu công cụ khăng khăng, hãy đổi đuôi thành .zip.

Tears of Steel.usfx
subtitles.usf
manifest.xml
thumbnail.png
assets/speakers/Celia.png
assets/dubs/77a03e27.wav
assets/video/Tears_of_Steel.mkv
assets/waveform.npy
assets/audio/vocals.flac
  1. 1 · Tài liệu

    Chính dự án, ở dạng USF: mọi phụ đề, bản dịch, người nói và lồng tiếng. Luôn có mặt, luôn đứng đầu.

  2. 2 · Bản kê khai

    Thứ gì đã tạo tệp, video ở đâu, âm thanh được trộn thế nào, và loại phương tiện của mọi thành phần khác.

  3. 3 · Hình ảnh

    Những gì trình quản lý tệp hiển thị về dự án: khung hình nơi bạn dừng lại, phụ đề của nó và dòng thời gian tại đó.

  4. 4 · Tài nguyên

    Âm thanh của từng lồng tiếng và khuôn mặt người nói; video, âm thanh của nó và dạng sóng chỉ khi bạn yêu cầu.

Tài liệu cho biết điều gì xảy ra; tài nguyên là thứ nó phát. Một lồng tiếng trong subtitles.usf gọi clip của mình bằng đường dẫn trong gói, assets/dubs/77a03e27.wav, nên gói có thể chuyển sang thư mục, ổ đĩa hay máy tính khác mà vẫn nguyên vẹn.

Các thành phần

Đường dẫn Chứa gì Nén Khi nào được ghi
subtitles.usf Tài liệu: phụ đề, bản dịch, người nói, giọng, lồng tiếng Deflate Luôn luôn, đầu tiên
manifest.xml Bản kê khai Deflate Luôn luôn, thứ hai
thumbnail.png Một thẻ PNG 512 × 384 của dự án Stored Khi có hình để tạo
assets/speakers/<speaker>.png Hình ảnh của một người nói, tối đa 256 điểm ảnh mỗi cạnh Deflate Trừ khi bạn tắt nó
assets/dubs/<uid>.<ext> Âm thanh của một bản thu lồng tiếng, đặt tên theo ID của bản thu Deflate Luôn luôn, cho mọi bản thu có âm thanh
assets/dubs/<uid>__<n>__<file> Một đoạn đã tách hoặc kéo giãn của bản thu, và nguồn nguyên vẹn mà nó được kéo giãn từ đó Deflate Khi một bản thu đã được tách hoặc kéo giãn
assets/video/<file> Video Deflate Khi bạn yêu cầu
assets/waveform.npy Các đỉnh dạng sóng của dòng thời gian, một mảng NumPy Deflate Khi bạn yêu cầu
assets/audio/original.flac Âm thanh của video Deflate Khi bạn yêu cầu
assets/audio/vocals.flac, background.flac Âm thanh được tách thành giọng nói và phần còn lại Deflate Khi bạn yêu cầu

Tên trong assets/ gồm chữ cái, chữ số, -, _ và .; mọi ký tự khác thành _, nên Tears of Steel.mkv được lưu là Tears_of_Steel.mkv. Chữ cái ngoài ASCII được giữ nguyên, tên được ghi bằng UTF-8 và gắn cờ như vậy (bit 11 của tiêu đề ZIP), đúng như APPNOTE yêu cầu.

Vì sao hình ảnh được lưu nguyên, không nén. PNG vốn đã được nén; Deflate chỉ tốn thêm thời gian. Khi lưu nguyên, các byte của nó nằm trong tệp đúng như một PNG, nên trình tạo hình thu nhỏ đọc chúng ra mà không cần giải nén gì.

Những byte đầu tiên

Mọi dự án đều bắt đầu như nhau: một tiêu đề tệp cục bộ của ZIP, rồi đến tên của thành phần đầu tiên.

50 4B 03 04
14 00 00 00 08 00
4E 70 51 5D
64 CE 1E 0B
6F 3B 00 00 7F E2 00 00
0D 00 00 00
73 75 62 74 69 74 6C 65 73 2E 75 73 66
  1. 1 · Chữ ký

    PK\3\4, byte 0 đến 3: một thành phần ZIP bắt đầu ở đây.

  2. 2 · Tiêu đề

    Cần phiên bản 2.0 để giải nén; không có cờ; phương thức 8, Deflate; giờ và ngày theo kiểu MS-DOS (ở đây là 17 tháng 10 năm 2026, 14:02:28); CRC-32; kích thước nén và chưa nén (15.215 và 57.983 byte).

  3. 3 · Độ dài tên

    13, không có trường phụ.

  4. 4 · Tên

    subtitles.usf, từ byte 30.

Tên không bao giờ bị nén, kể cả khi thành phần được nén. Điều đó biến nó thành một chữ ký: một ZIP có tên ở byte 30 là subtitles.usf là một dự án Subtitld. Tracker của Haiku phân biệt dự án với các tệp nén khác đúng bằng quy tắc đó, 0.60 ("PK\003\004") [30] ("subtitles.usf" | "manifest.xml"), xếp trên quy tắc ZIP thông thường. ODF và EPUB cũng làm vậy với thành phần đầu tiên tên là mimetype.

Một video có thể lớn hơn giới hạn 4 GiB ban đầu của ZIP. Từ 2 GiB trở lên, Subtitld ghi các trường phụ và bản ghi kết thúc của Zip64 (APPNOTE mục 4.5), cũng như khi vượt quá 65.535 thành phần; Subtitld, trình xử lý hình thu nhỏ trên Windows của nó và mọi unzip hiện nay đều đọc được chúng.

Bản kê khai

<?xml version="1.0" encoding="UTF-8"?>
<manifest version="1.0">
  <format>USFX</format>
  <generator>Subtitld</generator>
  <source path="/home/ana/Videos/Tears of Steel.mkv"
          basename="Tears of Steel.mkv"/>
  <voicemix volume="0.5000"/>
  <entry path="subtitles.usf" type="application/x-usf+xml"/>
  <entry path="thumbnail.png" type="image/png"/>
  <entry path="assets/speakers/Celia.png" type="image/png"/>
  <entry path="assets/dubs/77a03e27.wav" type="audio/wav"/>
</manifest>
Phần tử Chứa gì
<manifest version> Phiên bản của bản kê khai, 1.0
<format>, <generator> USFX, và thứ đã ghi tệp: Subtitld
<source path basename> Đường dẫn đầy đủ của video khi dự án được lưu, và riêng tên tệp của nó
<voicemix volume> Vị trí của thanh trượt Nhạc/Giọng: 0 chỉ có nền, 0.5 âm thanh như vốn có, 1 chỉ có giọng nói, các lồng tiếng nhỏ dần cùng với nền
<entry path type> Một mục cho mỗi thành phần trừ chính bản kê khai, mỗi mục kèm loại phương tiện

Các loại là application/x-usf+xml, image/png, audio/wav, audio/flac, audio/mpeg, video/mp4, video/x-matroska, video/quicktime, video/webm, video/ogg, và application/octet-stream cho dạng sóng và mọi thứ khác.

Đường dẫn của video đi theo tệp. <source path> là nơi video nằm trên máy tính đã lưu dự án, gồm cả thư mục và tên người dùng. Hãy nhớ điều đó trước khi chia sẻ một dự án. Khi đường dẫn không dẫn tới đâu, Subtitld tìm video theo tên trong thư mục của dự án.

Tài liệu

subtitles.usf là một tệp Universal Subtitle Format, UTF-8, đúng như Subtitld tự ghi, kèm những gì một dự án cần được thêm theo phong cách riêng của USF: phần tử và thuộc tính ở những chỗ USF không có. Một trình đọc USF bỏ qua những gì nó không biết vẫn đọc được phụ đề.

<USFSubtitles version="1.0"
              xmlns:subtitldcc="https://subtitld.cc/ns/usf/1">
  <metadata>
    <title>Tears of Steel</title>
    <author><name>Subtitld</name></author>
    <language code="eng">English</language>
    <subtitldcc:origin share-id="Xk3pQ9aZ2bT" version="3"/>
  </metadata>
  <styles>
    <style name="Celia">
      <fontstyle color="#e5484d"/>
      <dubbing engine="edge-tts" voice="en-GB-SoniaNeural"
               rate="0" pitch="0" fit_to_subtitle="true"/>
    </style>
  </styles>
  <subtitles>
    <language code="eng">English</language>
    <subtitle start="00:00:23.000" stop="00:00:24.500">
      <text speaker="Celia" style="Celia">You're a jerk, Thom.</text>
      <dubbing uid="77a03e27" engine="edge-tts"
               voice="en-GB-SoniaNeural" rate="0" pitch="0"
               path="assets/dubs/77a03e27.wav"
               start="23.0" end="24.5"/>
    </subtitle>
  </subtitles>
  <subtitles>
    <language code="por">Portuguese (Brazil)</language>
    <subtitle start="00:00:23.000" stop="00:00:24.500">
      <text speaker="Celia" style="Celia">Você é um idiota, Thom.</text>
    </subtitle>
  </subtitles>
</USFSubtitles>

Những gì Subtitld thêm vào USF

Ở đâu Phần tử hoặc thuộc tính Chứa gì
<metadata> <subtitldcc:origin share-id version> Phụ đề trên subtitld.cc mà dự án bắt nguồn, để các thay đổi có thể được xuất bản thành phiên bản tiếp theo của nó. Nằm trong không gian tên riêng, https://subtitld.cc/ns/usf/1, chỉ được ghi khi có.
<styles> <style name> Một kiểu cho mỗi người nói, đặt theo tên họ. Không có kiểu Default, vì nó sẽ đổi kiểu mọi phụ đề trong trình phát.
<style> <fontstyle color> Màu của người nói, #RRGGBB
<style> <dubbing engine voice rate pitch fit_to_subtitle> Giọng của người nói: công cụ, giọng, tốc độ và cao độ từ −100 đến 100, và việc lồng tiếng có được khớp với độ dài phụ đề hay không
<text> speaker, style Ai nói, và kiểu của họ
<text> alignment Một trong chín vị trí của USF, từ TopLeft đến BottomRight; không có cho chính giữa phía dưới
<subtitle> <dubbing> Một bản thu lồng tiếng của phụ đề, mỗi bản một phần tử
<dubbing> uid engine voice rate pitch ID của bản thu, và giọng đã dùng để tạo nó
<dubbing> path, raw_path Âm thanh của nó trong gói, và nguồn mà một bản thu kéo giãn được tạo từ đó
<dubbing> start, end Nơi nó phát trên dòng thời gian, tính bằng giây
<dubbing> <subclip type path raw_path start end offset rate> Các đoạn của một bản thu đã được tách hoặc kéo giãn

Trong một tệp .usf thông thường, hình ảnh người nói và âm thanh lồng tiếng có thể nằm bên trong XML, dưới dạng base64 trong <avatar> và <data>. Tệp .usfx không bao giờ làm vậy: chúng là những thành phần riêng, nhỏ hơn một phần tư so với base64, và được đọc mà không cần phân tích XML.

Thời gian

start và stop của một phụ đề là thời gian USF, làm tròn tới mili giây gần nhất. Thời gian của lồng tiếng là số giây thuần được ghi đầy đủ, 18.01579117916244: số thập phân ngắn nhất đọc lại ra đúng số 64 bit đó, nên một clip được đặt bằng cách kéo sẽ trở về đúng chỗ cũ.

Các phiên bản Subtitld cũ ghi thời gian sớm một mili giây, và ghi điểm bắt đầu ở số không thành 23:59:59.999. Subtitld đọc giá trị đó là số không, và để nguyên mili giây đó.

Bản thu và clip con

Một phụ đề có thể có nhiều bản thu. <dubbing> đầu tiên là bản được phát; các bản khác là bản thay thế, im lặng cho tới khi bạn chọn một bản, và bản đó sẽ lên đầu.

Một bản thu đã tách hoặc kéo giãn giữ một danh sách <subclip>, được đặt như các clip trong trình chỉnh sửa âm thanh:

Thuộc tính Ý nghĩa
start, end Phần của tệp nguồn được phát, tính bằng giây từ đầu tệp
offset Nơi phần đó bắt đầu, tính bằng giây từ start của bản thu
rate Tốc độ mà nó được kéo giãn tới: 20 là 120 %
path, raw_path Âm thanh được phát, và âm thanh nguyên vẹn mà nó được kéo giãn từ đó

Một clip con phát từ start của bản thu cộng với offset của nó, trong end trừ start giây. Khoảng trống là im lặng; chỗ chồng lên nhau được trộn. Nguồn không bao giờ bị thay đổi, nên mọi lần tách và kéo giãn đều có thể hoàn tác, và một lần kéo giãn luôn được làm lại từ raw_path, không bao giờ từ bản kéo giãn của một bản kéo giãn.

Bản dịch

Mỗi ngôn ngữ có khối <subtitles> riêng, đặt tên theo mã ISO 639-2 và, trong phần tử, theo tên ngôn ngữ, giúp phân biệt tiếng Bồ Đào Nha của Brazil với của Bồ Đào Nha. Mọi khối chứa mọi phụ đề ở cùng thời gian; chỉ khối đầu tiên chứa lồng tiếng. Subtitld ghép một bản dịch với phụ đề của nó theo thời gian bắt đầu, hoặc theo phụ đề mà nó chồng lấn nhiều nhất, nên các khối do công cụ khác ghi không cần phải khớp nhau.

Mở một dự án

Dự án lớn mở ngay: Subtitld đọc trước những gì trình chỉnh sửa cần, phần còn lại thì đọc trong lúc bạn làm việc.

Trước khi trình chỉnh sửa hiện ra
  • subtitles.usf, đọc để lấy phụ đề, người nói và giọng
  • manifest.xml, cho video và bản trộn
  • assets/speakers/, các khuôn mặt, được giải mã ngoài luồng chính
  • Một video đóng gói kèm, được giải nén một lần
Trong lúc bạn làm việc
  • Lồng tiếng trước tiên, để bạn có thể phát chúng
  • Sau đó là dạng sóng
  • Cuối cùng là âm thanh đã tách

Mỗi lồng tiếng trên dòng thời gian được gạch chéo cho tới khi âm thanh của nó về tới, rồi phát.

Các thành phần được giải nén vào thư mục riêng của Subtitld, không bao giờ cạnh dự án: tài liệu, khuôn mặt và lồng tiếng vào một thư mục bộ đệm đặt tên theo MD5 của đường dẫn dự án. Những gì đến trong lúc bạn làm việc được truyền theo từng khối 1 MiB vào một tệp tạm, rồi đổi tên vào đúng chỗ khi hoàn tất, nên một sự cố giữa chừng không để lại thứ gì ghi dở. Lần sau khi cùng dự án đó được mở, một tệp đã có sẵn chỉ được dùng lại nếu nó đúng bằng kích thước của thành phần; nếu không, nó được giải nén lại.

Video được tìm theo thứ tự này:

  1. một video bên trong gói, trong assets/video/;
  2. đường dẫn trong <source path>, nếu tệp vẫn còn ở đó;
  3. một tệp có tên như trong <source basename>, trong thư mục của dự án;
  4. nếu không, Subtitld hỏi bạn.

Một tệp không phải ZIP, bị cắt cụt hoặc không qua được kiểm tra CRC sẽ không mở ra gì: Subtitld báo như vậy và gỡ nó khỏi danh sách gần đây. Các dự án cũ hơn cũng mở được: dự án không có bản kê khai, hoặc có USF mang tên khác ở gốc của ZIP.

Lưu một dự án

Lưu không bao giờ đặt dự án bạn đang có vào rủi ro.

  1. Một ảnh chụp. Dự án được sao chép đúng như lúc bạn lưu, nên bạn có thể tiếp tục chỉnh sửa trong khi nó được ghi. Lưu, tự động lưu và sao lưu thay phiên nhau: mỗi lúc chỉ một thứ ghi.
  2. Một tệp mới. Gói được ghi thành <project>.usfx.tmp cạnh dự án.
  3. Không thiếu gì. Một lồng tiếng mà âm thanh chưa có trong bộ đệm, vì vẫn đang truyền về hoặc đã bị xóa, được sao chép từ tệp sắp bị thay thế. Một dự án được lưu mà không có video vẫn giữ hình ảnh nó từng có.
  4. Được kiểm tra. Tệp mới được mở lại và CRC-32 của mọi thành phần được xác minh.
  5. Được hoán đổi. Chỉ khi đó nó mới thay thế dự án, bằng một lần đổi tên (os.replace): tên của dự án không bao giờ chứa nửa dự án.

Nếu bất kỳ bước nào thất bại, tệp tạm bị xóa, dự án trên đĩa vẫn là dự án bạn đã có, và các chỉnh sửa của bạn vẫn đang mở trong Subtitld. Trong khi lồng tiếng của một dự án vẫn đang truyền về, Lưu sẽ chờ chúng.

Những gì được đưa vào bên trong

Cài đặt toàn cục, rồi USFX, chọn xem một dự án mang theo những gì khác, cho mọi dự án bạn lưu:

  • Ảnh chân dung người nóiKhuôn mặt của những người nói. Bật.
  • Bộ đệm dạng sóng của dòng thời gianDạng sóng, để dự án mở trên máy tính khác mà không phải tính lại nó. Tắt.
  • Rãnh âm thanh gốcÂm thanh của video, dưới dạng FLAC. Tắt.
  • Âm thanh đã xử lý (giọng nói + nền)Âm thanh được tách thành giọng nói và phần còn lại, dưới dạng FLAC, để không phải chạy tách lại. Tắt.
  • Tệp video gốcChính video: một tệp chứa mọi thứ, lớn bằng video và hơn thế. Tắt.

Mỗi thứ được đưa vào khi Subtitld có cái để đưa: chẳng hạn âm thanh đã tách, chỉ sau khi việc tách đã chạy. Phụ đề, bản dịch, người nói, giọng và mọi lồng tiếng luôn nằm bên trong. Deflate giảm khoảng một phần sáu dung lượng WAV của một lồng tiếng; video và FLAC hầu như không nhỏ đi.

Tự động lưu và sao lưu

  • Tự động lưu tệp dự ánGhi chính tệp .usfx của bạn, như Lưu, theo cùng cách an toàn đó. Dành cho dự án đã lưu dưới dạng USFX.
  • Sao lưu tự độngMột tệp .usfx đầy đủ trong thư mục sao lưu của Subtitld, tách biệt với tệp của bạn, đặt tên <project>_<YYYYMMDDHHMMSS>.usfx, khi có thay đổi cần giữ. Vượt quá Giữ nhiều nhất, 20 trừ khi bạn chọn khác, các bản cũ nhất sẽ bị xóa.

Trong trình quản lý tệp

Hình thu nhỏ là một thẻ theo phong cách của Subtitld: khung hình video nơi dự án được dừng lại, phụ đề trên đó, và bên dưới là mười hai giây dòng thời gian quanh đầu phát, với dạng sóng và các phụ đề mang màu của người nói. Tỷ lệ 4:3 ở 512 × 384, nên nó lấp ô vuông của trình quản lý tệp tốt hơn một khung hình rộng. Khi không có video, biểu tượng của Subtitld thế chỗ khung hình.

Hệ thống Loại Mang lại gì
Linux application/x-usfx trong shared-mime-info, một dạng của application/zip, khớp theo *.usfx Biểu tượng riêng; với gói AUR, hình thu nhỏ từ subtitld-thumbnailer, một trình tạo hình thu nhỏ theo freedesktop.org
Windows Một loại tệp trong trình cài đặt và gói MSIX Biểu tượng; một trình cung cấp hình thu nhỏ cho shell (UsfxThumbnail.dll, IThumbnailProvider) tự đọc thư mục trung tâm của ZIP, kể cả Zip64, và giải mã PNG bằng WIC ở kích thước Explorer yêu cầu
macOS Loại org.subtitld.usfx, tuân theo public.zip-archive Biểu tượng riêng
Haiku application/x-usfx, với quy tắc nhận dạng ở trên Biểu tượng, và Tracker phân biệt dự án với ZIP

Khi nhấp đúp, một dự án mở trong Subtitld trên cả bốn hệ thống. Cả hai trình tạo hình thu nhỏ chỉ đọc thumbnail.png, từ chối tệp lớn hơn 8 MiB, và không nhận thứ gì không bắt đầu bằng chữ ký của PNG, 89 50 4E 47 0D 0A 1A 0A. Trình trên Windows chỉ nhận nó khi được lưu nguyên, như Subtitld ghi. Trình trên Linux chỉ dùng thư viện chuẩn của Python, vì trình quản lý tệp chạy trình tạo hình thu nhỏ trong hộp cát và nhiều cái cùng lúc.

Tự đọc một tệp .usfx

Không có gì trong một dự án là của riêng Subtitld. Để xem bên trong:

unzip -l "Tears of Steel.usfx"
unzip -p "Tears of Steel.usfx" manifest.xml

Để đọc phụ đề, bằng mọi ngôn ngữ, với thư viện chuẩn của Python:

import zipfile
import xml.etree.ElementTree as ET

def text_of(element):
    """A <text>'s words, <br/> as a line break."""
    parts = [element.text or '']
    for child in element:
        parts.append('\n' if child.tag == 'br' else text_of(child))
        parts.append(child.tail or '')
    return ''.join(parts)

with zipfile.ZipFile('Tears of Steel.usfx') as usfx:
    usf = ET.fromstring(usfx.read('subtitles.usf'))

for block in usf.iter('subtitles'):
    language = block.find('language')
    if language is not None:
        print('#', language.get('code'), language.text)
    for subtitle in block.iter('subtitle'):
        text = subtitle.find('text')
        print(subtitle.get('start'), subtitle.get('stop'),
              text.get('speaker'), text_of(text))

Với một dự án từ người khác, hãy phân tích bằng defusedxml thay cho xml.etree, như với mọi XML không phải do bạn viết.

Tự tạo một tệp

Dự án nhỏ nhất Subtitld mở được là một ZIP chứa một tệp subtitles.usf. Không có bản kê khai, Subtitld sẽ hỏi video. Để tạo một tệp mà trình quản lý tệp cũng nhận ra, hãy làm theo những gì Subtitld ghi:

  • subtitles.usf trước, rồi manifest.xml;
  • mọi thành phần được nén bằng Deflate, trừ thumbnail.png, được lưu nguyên;
  • lồng tiếng nằm trong assets/dubs/, được gọi trong tài liệu bằng đường dẫn trong gói;
  • UTF-8 ở mọi nơi.

Subtitld giữ những gì nó biết. Một lần lưu ghi các thành phần trong trang này, và một tài liệu được tạo từ những gì Subtitld hiểu được ở tài liệu cũ. Một tệp do công cụ khác thêm vào gói, hay một phần tử riêng của nó trong USF, sẽ mất khi Subtitld lưu dự án. Hãy giữ dữ liệu riêng của bạn bên cạnh.

So sánh

USFX được xây dựng như các gói tài liệu của bộ ứng dụng văn phòng và sách điện tử: một ZIP, một tài liệu chính bằng XML, một bản kê và phương tiện đi kèm bên cạnh.

ODF (.odt) EPUB Office Open XML (.docx) USFX
Tiêu chuẩn OASIS ODF 1.3, Phần 2 W3C EPUB 3.3, OCF của nó ECMA-376 Phần 2, OPC Trang này
Công cụ nhận ra nó thế nào Thành phần đầu tiên mimetype, lưu nguyên Thành phần đầu tiên mimetype, lưu nguyên: application/epub+zip [Content_Types].xml Tên thành phần đầu tiên, subtitles.usf, ở byte 30
Bản kê META-INF/manifest.xml, một loại cho mỗi tệp META-INF/container.xml, rồi tài liệu gói [Content_Types].xml và _rels/ manifest.xml, một loại cho mỗi thành phần
Tài liệu chính content.xml Tài liệu gói và spine của nó word/document.xml subtitles.usf
Phương tiện Pictures/ Bất kỳ đâu trong gói word/media/ assets/
Xem trước Thumbnails/thumbnail.png Một ảnh bìa Một phần hình thu nhỏ tùy chọn thumbnail.png, lưu nguyên

Tài liệu chính tự nó là một định dạng mở: lấy subtitles.usf ra khỏi một tệp .usfx, bạn có một tệp USF, định dạng có đặc tả công khai từ năm 2002.

Điều thú vị

30

Byte nơi tên thành phần đầu tiên của mọi dự án bắt đầu, và là cách Haiku phân biệt một dự án Subtitld với mọi ZIP khác.

512 × 384

Kích thước hình ảnh của một dự án: 4:3, vì trình quản lý tệp hiển thị tệp trong các ô vuông.

26.10

Bản phát hành mang lại cho .usfx biểu tượng riêng trên Linux, Windows, macOS và Haiku, cùng hình ảnh của nó trong Windows Explorer và trình quản lý tệp Linux.

Định dạng liên quan

Bắt đầu một dự án

Mở một video trong Subtitld, làm phụ đề cho nó và lưu lại: đó là một tệp .usfx.

Tải Subtitld