Proyek Subtitld

BukaSimpanZIPXMLProyek

Berkas milik Subtitld sendiri: paket ZIP yang diawali dokumen USF berisi subtitle, terjemahan, pembicara, dan dubbing, lalu manifes dari semua isi lainnya, gambar posisi terakhir Anda bekerja, dan, bila Anda minta, video beserta suaranya. Satu berkas untuk dipindahkan, dicadangkan, atau diserahkan, dan setiap bagiannya dapat dibaca dengan alat standar.

Sekilas

Ekstensi.usfx
Tipe mediaapplication/x-usfx, sejenis application/zip. Di sistem Apple, org.subtitld.usfx.
SpesifikasiHalaman ini. Paketnya adalah ZIP dari PKWARE (APPNOTE.TXT); dokumennya adalah USF 1.0 dengan elemen-elemen Subtitld.
PaketZIP, anggotanya dikompresi dengan Deflate (RFC 1951) dan diperiksa dengan CRC-32; Zip64 untuk berkas di atas 2 GiB
Anggota pertamasubtitles.usf: namanya ada di byte 30 pada setiap proyek yang disimpan Subtitld
Presisi waktuSubtitle: milidetik. Dubbing: detik yang persis, dengan desimal sebanyak yang diperlukan.
Encoding teksUTF-8, di dalam XML dan pada nama anggota
GayaMilik USF: miring, tebal, garis bawah, coret, warna, dan sembilan tempat
PembicaraMasing-masing dengan nama, warna, gambar, dan suara
BahasaBahasa asli dan setiap terjemahan, masing-masing satu blok, dengan kode ISO 639-2 dan namanya
Media di dalamnyaDubbing dan gambar pembicara; video, suaranya, vokal dan latar yang dipisahkan, serta bentuk gelombang linimasa bila diminta

Anatomi berkas

Sebuah .usfx adalah ZIP. Alat arsip apa pun dapat membukanya, diganti namanya menjadi .zip jika alat itu bersikeras.

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 · Dokumen

    Proyek itu sendiri, dalam USF: setiap subtitle, terjemahan, pembicara, dan dubbing. Selalu ada, selalu pertama.

  2. 2 · Manifes

    Apa yang membuat berkas ini, di mana videonya berada, bagaimana suaranya dicampur, dan tipe media untuk setiap anggota lainnya.

  3. 3 · Gambar

    Yang ditampilkan pengelola berkas dari proyek: bingkai tempat Anda berhenti, subtitle-nya, dan linimasa di titik itu.

  4. 4 · Aset

    Audio setiap dubbing dan wajah para pembicara; video, suaranya, dan bentuk gelombang hanya bila Anda minta.

Dokumen menyatakan apa yang terjadi; aset adalah apa yang diputarnya. Sebuah dubbing di subtitles.usf menyebut klipnya lewat jalurnya di dalam paket, assets/dubs/77a03e27.wav, sehingga paket dapat dipindahkan ke folder, disk, atau komputer lain dan tetap utuh.

Anggota paket

Jalur Isinya Kompresi Ditulis
subtitles.usf Dokumen: subtitle, terjemahan, pembicara, suara, dubbing Deflate Selalu, pertama
manifest.xml Manifes Deflate Selalu, kedua
thumbnail.png Kartu PNG 512 × 384 dari proyek Disimpan apa adanya Bila ada gambar yang dapat dibuat
assets/speakers/<speaker>.png Gambar seorang pembicara, paling besar 256 piksel per sisi Deflate Kecuali Anda mematikannya
assets/dubs/<uid>.<ext> Audio sebuah take dubbing, dinamai dengan ID take tersebut Deflate Selalu, untuk setiap take yang memiliki audio
assets/dubs/<uid>__<n>__<file> Potongan take yang dibelah atau diregangkan, dan sumber utuh tempat ia diregangkan Deflate Bila sebuah take dibelah atau diregangkan
assets/video/<file> Video Deflate Bila Anda minta
assets/waveform.npy Puncak bentuk gelombang linimasa, sebuah array NumPy Deflate Bila Anda minta
assets/audio/original.flac Suara video Deflate Bila Anda minta
assets/audio/vocals.flac, background.flac Suara yang dipisahkan menjadi vokal dan sisanya Deflate Bila Anda minta

Nama di assets/ terdiri atas huruf, angka, -, _, dan .; karakter lain menjadi _, sehingga Tears of Steel.mkv disimpan sebagai Tears_of_Steel.mkv. Huruf di luar ASCII dipertahankan, namanya ditulis dalam UTF-8 dan ditandai demikian (bit 11 header ZIP), sebagaimana diminta APPNOTE.

Mengapa gambarnya disimpan apa adanya, tidak dikompresi. PNG sudah terkompresi; Deflate hanya akan membuang waktu. Bila disimpan apa adanya, byte-nya ada di berkas persis sebagai PNG, sehingga pembuat thumbnail dapat membacanya tanpa perlu mendekompresi apa pun.

Byte pertama

Setiap proyek diawali dengan cara yang sama: header berkas lokal ZIP, lalu nama anggota pertamanya.

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 · Tanda tangan

    PK\3\4, byte 0 sampai 3: sebuah anggota ZIP dimulai di sini.

  2. 2 · Header

    Perlu versi 2.0 untuk mengekstrak; tanpa flag; metode 8, Deflate; waktu dan tanggal gaya MS-DOS (di sini 17 Oktober 2026, 14:02:28); CRC-32; ukuran terkompresi dan tak terkompresi (15.215 dan 57.983 byte).

  3. 3 · Panjang nama

    13, dan tanpa bidang tambahan.

  4. 4 · Nama

    subtitles.usf, mulai byte 30.

Nama tidak pernah dikompresi, bahkan bila anggotanya dikompresi. Itu menjadikannya tanda tangan: ZIP yang namanya di byte 30 adalah subtitles.usf adalah proyek Subtitld. Tracker di Haiku membedakan proyek dari arsip lain dengan aturan persis itu, 0.60 ("PK\003\004") [30] ("subtitles.usf" | "manifest.xml"), yang berperingkat di atas aturan ZIP biasa. ODF dan EPUB melakukan hal serupa dengan anggota pertama bernama mimetype.

Video bisa lebih besar daripada batas asli ZIP, 4 GiB. Mulai 2 GiB, Subtitld menulis bidang tambahan dan rekaman akhir Zip64 (APPNOTE bagian 4.5), seperti juga bila anggotanya melebihi 65.535; Subtitld, penangan thumbnail Windows-nya, dan unzip modern mana pun dapat membacanya.

Manifes

<?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>
Elemen Isinya
<manifest version> Versi manifes, 1.0
<format>, <generator> USFX, dan apa yang menulis berkas ini: Subtitld
<source path basename> Jalur lengkap video saat proyek disimpan, dan nama berkasnya saja
<voicemix volume> Posisi penggeser Musik/Suara: 0 hanya latar, 0.5 suara apa adanya, 1 hanya vokal, dengan dubbing memudar bersama latar
<entry path type> Satu untuk setiap anggota kecuali manifes itu sendiri, masing-masing dengan tipe medianya

Tipe-tipenya adalah application/x-usf+xml, image/png, audio/wav, audio/flac, audio/mpeg, video/mp4, video/x-matroska, video/quicktime, video/webm, video/ogg, dan application/octet-stream untuk bentuk gelombang dan lainnya.

Jalur video ikut terbawa bersama berkas. <source path> adalah lokasi video di komputer yang menyimpan proyek, termasuk nama folder dan nama pengguna. Ingat hal ini sebelum Anda membagikan proyek. Bila jalurnya tidak mengarah ke mana pun, Subtitld mencari video berdasarkan namanya di folder proyek.

Dokumen

subtitles.usf adalah berkas Universal Subtitle Format, UTF-8, sebagaimana Subtitld menulisnya sendiri, ditambah apa yang dibutuhkan proyek dengan gaya USF sendiri: elemen dan atribut di tempat USF tidak memilikinya. Pembaca USF yang melewati apa yang tidak dikenalnya tetap dapat membaca subtitle-nya.

<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>

Tambahan Subtitld pada USF

Di mana Elemen atau atribut Isinya
<metadata> <subtitldcc:origin share-id version> Subtitle subtitld.cc asal proyek ini, sehingga perubahan dapat diterbitkan sebagai versi berikutnya. Dalam namespace-nya sendiri, https://subtitld.cc/ns/usf/1, dan hanya ditulis bila ada.
<styles> <style name> Satu untuk setiap pembicara, dinamai sesuai pembicara itu. Tidak ada gaya Default, yang akan mengubah gaya setiap subtitle di pemutar.
<style> <fontstyle color> Warna pembicara, #RRGGBB
<style> <dubbing engine voice rate pitch fit_to_subtitle> Suara pembicara: mesin, suara, kecepatan dan nada dari −100 sampai 100, dan apakah dubbing disesuaikan dengan panjang subtitle-nya
<text> speaker, style Siapa yang mengucapkannya, dan gayanya
<text> alignment Salah satu dari sembilan tempat USF, TopLeft sampai BottomRight; tidak ada untuk tengah bawah
<subtitle> <dubbing> Satu take dubbing subtitle, masing-masing satu elemen
<dubbing> uid engine voice rate pitch ID take, dan suara yang dipakai untuk membuatnya
<dubbing> path, raw_path Audionya di dalam paket, dan sumber tempat take yang diregangkan dibuat
<dubbing> start, end Tempat ia diputar di linimasa, dalam detik
<dubbing> <subclip type path raw_path start end offset rate> Potongan-potongan take yang dibelah atau diregangkan

Dalam .usf biasa, gambar pembicara dan audio dubbing dapat dibawa di dalam XML, sebagai base64 di <avatar> dan <data>. Sebuah .usfx tidak pernah melakukannya: semuanya menjadi anggota tersendiri, seperempat lebih kecil daripada dalam base64, dan dibaca tanpa mengurai XML.

Waktu

start dan stop sebuah subtitle adalah waktu USF, dibulatkan ke milidetik terdekat. Waktu dubbing adalah detik biasa yang ditulis lengkap, 18.01579117916244: desimal terpendek yang terbaca kembali sebagai angka 64-bit yang sama, sehingga klip yang ditempatkan dengan menyeret kembali persis di tempatnya semula.

Versi Subtitld yang lebih lama menulis waktu satu milidetik lebih awal, dan awal di nol sebagai 23:59:59.999. Subtitld membaca nilai itu sebagai nol, dan membiarkan milidetiknya apa adanya.

Take dan subklip

Sebuah subtitle dapat memiliki beberapa take. <dubbing> pertama adalah yang diputar; yang lain adalah alternatif, diam sampai Anda memilih salah satunya, yang lalu pindah ke depan.

Take yang dibelah atau diregangkan menyimpan daftar <subclip>, yang ditempatkan seperti klip di editor audio:

Atribut Arti
start, end Bagian berkas sumber yang diputar, dalam detik sejak awal berkas
offset Tempat bagian itu dimulai, dalam detik dari start take
rate Kecepatan regangannya: 20 berarti 120 %
path, raw_path Audio yang diputar, dan audio utuh tempat ia diregangkan

Sebuah subklip diputar mulai dari start take ditambah offset-nya, selama end dikurangi start detik. Celah adalah keheningan; tumpang tindih dicampur. Sumbernya tidak pernah diubah, sehingga setiap pembelahan dan peregangan dapat dibatalkan, dan peregangan selalu dibuat ulang dari raw_path, tidak pernah dari regangan atas regangan.

Terjemahan

Setiap bahasa memiliki blok <subtitles> sendiri, dinamai dengan kode ISO 639-2-nya dan, di dalam elemen, nama bahasanya, yang membedakan bahasa Portugis Brasil dari Portugis Portugal. Setiap blok memuat setiap subtitle pada waktu yang sama; hanya blok pertama yang memuat dubbing. Subtitld mencocokkan terjemahan dengan subtitle-nya berdasarkan waktu awal, atau dengan subtitle yang paling banyak bertumpang tindih dengannya, sehingga blok yang ditulis alat lain tidak harus sejajar.

Membuka proyek

Proyek besar langsung terbuka: Subtitld lebih dulu membaca apa yang dibutuhkan editor, dan sisanya sementara Anda bekerja.

Sebelum editor tampil
  • subtitles.usf, dibaca untuk subtitle, pembicara, dan suara
  • manifest.xml, untuk video dan campuran suara
  • assets/speakers/, wajah-wajah, didekode di luar thread utama
  • Video yang dibundel, diekstrak sekali
Sementara Anda bekerja
  • Dubbing, pertama, agar Anda dapat memutarnya
  • Bentuk gelombang, kemudian
  • Suara yang dipisahkan, terakhir

Setiap dubbing di linimasa diarsir sampai audionya tiba, lalu diputar.

Anggota diekstrak ke folder milik Subtitld sendiri, tidak pernah di samping proyek: dokumen, wajah, dan dubbing ke folder tembolok yang dinamai sesuai MD5 jalur proyek. Apa yang datang sementara Anda bekerja dialirkan dalam potongan 1 MiB ke berkas sementara, yang diganti namanya ke tempatnya setelah lengkap, sehingga crash di tengah jalan tidak meninggalkan apa pun yang setengah tertulis. Lain kali proyek yang sama dibuka, berkas yang sudah ada dipakai lagi hanya jika ukurannya persis sama dengan anggotanya; jika tidak, ia diekstrak ulang.

Video dicari dengan urutan ini:

  1. video di dalam paket, di assets/video/;
  2. jalur di <source path>, jika masih ada;
  3. berkas bernama seperti di <source basename>, di folder proyek;
  4. jika tidak, Subtitld memintanya.

Berkas yang bukan ZIP, terpotong, atau gagal dalam pemeriksaan CRC tidak membuka apa pun: Subtitld memberitahukannya dan menghapusnya dari daftar terbaru. Proyek lama juga dapat dibuka: yang tanpa manifes, atau yang USF-nya bernama lain di akar ZIP.

Menyimpan proyek

Simpan tidak pernah membahayakan proyek yang Anda miliki.

  1. Snapshot. Proyek disalin sebagaimana adanya saat Anda menyimpan, sehingga Anda dapat terus mengedit selagi ia ditulis. Penyimpanan, penyimpanan otomatis, dan pencadangan bergiliran: hanya satu yang menulis pada satu waktu.
  2. Berkas baru. Paket ditulis ke <project>.usfx.tmp di samping proyek.
  3. Tidak ada yang hilang. Dubbing yang audionya belum ada di tembolok, masih dialirkan atau sudah dihapus, disalin dari berkas yang akan diganti. Proyek yang disimpan tanpa video mempertahankan gambar yang dimilikinya.
  4. Diperiksa. Berkas baru dibuka lagi dan CRC-32 setiap anggota diverifikasi.
  5. Ditukar. Baru setelah itu ia menggantikan proyek, dalam satu penggantian nama (os.replace): nama proyek tidak pernah memuat setengah proyek.

Jika ada langkah yang gagal, berkas sementara dihapus, proyek di disk tetap yang Anda miliki, dan suntingan Anda masih terbuka di Subtitld. Selama dubbing sebuah proyek masih dialirkan, Simpan menunggunya.

Apa yang dimasukkan

Pengaturan global, lalu USFX, menentukan apa lagi yang dibawa proyek, untuk setiap proyek yang Anda simpan:

  • Gambar potret pembicaraWajah para pembicara. Aktif.
  • Tembolok bentuk gelombang linimasaBentuk gelombang, sehingga proyek dapat dibuka di komputer lain tanpa menghitungnya lagi. Nonaktif.
  • Trek audio asliSuara video, sebagai FLAC. Nonaktif.
  • Audio terproses (vokal + latar)Suara yang dipisahkan menjadi vokal dan sisanya, sebagai FLAC, sehingga pemisahan tidak perlu dijalankan lagi. Nonaktif.
  • Berkas video asliVideo itu sendiri: satu berkas berisi segalanya, sebesar video atau lebih. Nonaktif.

Masing-masing dimasukkan bila Subtitld memilikinya: suara yang dipisahkan, misalnya, hanya setelah pemisahan dijalankan. Subtitle, terjemahan, pembicara, suara, dan setiap dubbing selalu ada di dalamnya. Deflate memangkas sekitar seperenam dari WAV sebuah dubbing; video dan FLAC hampir tidak mengecil.

Penyimpanan otomatis dan cadangan

  • Simpan otomatis berkas proyekMenulis .usfx Anda sendiri, seperti Simpan, dengan cara aman yang sama. Untuk proyek yang disimpan sebagai USFX.
  • Pencadangan otomatisSebuah .usfx lengkap di folder cadangan Subtitld, terpisah dari berkas Anda sendiri, bernama <project>_<YYYYMMDDHHMMSS>.usfx, bila ada perubahan yang perlu disimpan. Melewati Simpan maksimal, 20 kecuali Anda memilih lain, yang tertua dihapus.

Di pengelola berkas

Thumbnail-nya adalah kartu bergaya Subtitld: bingkai video tempat proyek ditinggalkan, subtitle di atasnya, dan di bawahnya dua belas detik linimasa di sekitar kepala putar, bentuk gelombang, dan subtitle dengan warna pembicaranya. 4:3 pada 512 × 384, sehingga mengisi sel persegi pengelola berkas lebih baik daripada bingkai lebar. Tanpa video, logo Subtitld menggantikan bingkai.

Sistem Tipenya Apa yang diberikannya
Linux application/x-usfx di shared-mime-info, sejenis application/zip, dicocokkan dengan *.usfx Ikon sendiri; dengan paket AUR, thumbnail dari subtitld-thumbnailer, pembuat thumbnail freedesktop.org
Windows Tipe berkas di installer dan paket MSIX Ikon; penyedia thumbnail shell (UsfxThumbnail.dll, IThumbnailProvider) yang membaca sendiri direktori pusat ZIP, termasuk Zip64, dan mendekode PNG dengan WIC pada ukuran yang diminta Explorer
macOS Tipe org.subtitld.usfx, sesuai dengan public.zip-archive Ikon sendiri
Haiku application/x-usfx, dengan aturan sniffer di atas Ikon, dan Tracker yang membedakan proyek dari ZIP

Bila diklik dua kali, proyek terbuka di Subtitld pada keempatnya. Kedua pembuat thumbnail hanya membaca thumbnail.png, menolak yang lebih dari 8 MiB, dan tidak menerima apa pun yang tidak diawali tanda tangan PNG, 89 50 4E 47 0D 0A 1A 0A. Yang untuk Windows hanya menerimanya bila disimpan apa adanya, seperti yang ditulis Subtitld. Yang untuk Linux hanya memakai pustaka standar Python, karena pengelola berkas menjalankan pembuat thumbnail di dalam sandbox dan banyak sekaligus.

Membaca .usfx sendiri

Tidak ada bagian proyek yang hanya milik Subtitld. Untuk melihat isinya:

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

Untuk membaca subtitle-nya, dalam setiap bahasa, dengan pustaka standar 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))

Untuk proyek dari orang lain, uraikan dengan defusedxml sebagai pengganti xml.etree, seperti untuk XML apa pun yang tidak Anda tulis sendiri.

Membuatnya

Proyek terkecil yang dapat dibuka Subtitld adalah ZIP yang berisi subtitles.usf. Tanpa manifes, Subtitld meminta videonya. Untuk membuat proyek yang juga dikenali pengelola berkas, ikuti apa yang ditulis Subtitld:

  • subtitles.usf lebih dulu, lalu manifest.xml;
  • setiap anggota dikompresi dengan Deflate, kecuali thumbnail.png, yang disimpan apa adanya;
  • dubbing di bawah assets/dubs/, disebut di dalam dokumen dengan jalurnya di dalam paket;
  • UTF-8 di mana-mana.

Subtitld menyimpan apa yang dikenalnya. Penyimpanan menulis anggota-anggota di halaman ini, dan dokumen yang dibuat dari apa yang dipahami Subtitld dari dokumen lama. Berkas yang ditambahkan alat lain ke paket, atau elemen buatannya sendiri di dalam USF, akan hilang begitu Subtitld menyimpan proyek. Simpan data Anda sendiri di sampingnya.

Perbandingan

USFX dibangun seperti paket dokumen suite perkantoran dan buku elektronik: sebuah ZIP, dokumen utama dalam XML, inventaris, dan media di sampingnya.

ODF (.odt) EPUB Office Open XML (.docx) USFX
Standar OASIS ODF 1.3, Bagian 2 W3C EPUB 3.3, OCF-nya ECMA-376 Bagian 2, OPC Halaman ini
Cara alat mengenalinya Anggota pertama mimetype, disimpan apa adanya Anggota pertama mimetype, disimpan apa adanya: application/epub+zip [Content_Types].xml Nama anggota pertamanya, subtitles.usf, di byte 30
Inventaris META-INF/manifest.xml, tipe untuk setiap berkas META-INF/container.xml, lalu dokumen paket [Content_Types].xml dan _rels/ manifest.xml, tipe untuk setiap anggota
Dokumen utama content.xml Dokumen paket dan spine-nya word/document.xml subtitles.usf
Media Pictures/ Di mana saja dalam paket word/media/ assets/
Pratinjau Thumbnails/thumbnail.png Gambar sampul Bagian thumbnail opsional thumbnail.png, disimpan apa adanya

Dokumen utamanya adalah format terbuka tersendiri: keluarkan subtitles.usf dari sebuah .usfx dan hasilnya adalah berkas USF, format dengan spesifikasi publik sejak 2002.

Trivia

30

Byte tempat nama anggota pertama setiap proyek dimulai, dan cara Haiku membedakan proyek Subtitld dari ZIP lainnya.

512 × 384

Ukuran gambar proyek: 4:3, karena pengelola berkas menampilkan berkas dalam kotak persegi.

26.10

Rilis yang memberi .usfx ikon sendiri di Linux, Windows, macOS, dan Haiku, serta gambarnya di Windows Explorer dan pengelola berkas Linux.

Format terkait

Mulai proyek

Buka video di Subtitld, buat subtitle-nya, lalu simpan: hasilnya adalah .usfx.

Unduh Subtitld