cue() = #{}
subs() = [cue()]
parse/1 | Parse a subtitle string. |
parse_file/1 | Parse a subtitle file. |
to_file/2 | Equivalent to to_file(Subs, File, #{}). |
to_file/3 | Generate a subtitle file. |
to_file/4 | Generate a subtitle file in the given format. |
to_string/2 | Equivalent to to_string(Subs, Type, #{}). |
to_string/3 | Generate a subtitle string. |
parse(Data::string()) -> {ok, subs()} | {error, {integer(), integer()}}
Parse a subtitle string
parse_file(File::file:filename_all()) -> {ok, subs()} | {error, term()} | {error, {integer(), integer()}}
Parse a subtitle file
to_file(Subs::subs(), File::file:filename_all()) -> ok | {error, term()}
Equivalent to to_file(Subs, File, #{})
.
to_file(Subs::subs(), File::file:filename_all(), Options::map() | list()) -> ok | no_data | {error, term()}
Generate a subtitle file.
This function will use the file extension to determine the subtitle format.
M3U8 Options:
-
segment_time :: integer()
: Segment duration in seconds (default: 10) -
segment_filename :: string()
: Segments file name (default:subtitle_%d.vtt
) -
segment_repeat_cue :: true | false
: Repeat the last cue (default:false
) -
x_timestamp_map :: {cue_time(), mpeg2_time()}
: Add X-TIMESTAMP-MAP to maps WebVTT cue timestamps to MPEG-2 (PES) timestamps. -
cue_time()
::00:00:00.000
-
mpeg2_time()
::integer()
SRT and WEBVTT options:
-
from :: string() | binary() | {integer(), integer(), integer(), integer()}
: Starting cue (default:"00:00:00"
)) -
to :: string() | binary() | {integer(), integer(), integer(), integer()} | undefined
: Starting cue (default:undefined
) -
duration :: integer() | undefined
: Total duration in seconds (default:undefined
)
from
and to
formats :
-
HH:MM:SS
-
HH:MM:SS.mmm
-
{MM, MM, SS, mmm}
to_file(Subs::subs(), File::file:filename_all(), Options::map() | list(), Type::webvtt | srt | m3u8) -> ok | no_data | {error, term()}
Generate a subtitle file in the given format.
M3U8 Options:
-
segment_time :: integer()
: Segment duration in seconds (default: 10) -
segment_filename :: string()
: Segments file name (default:subtitle_%d.vtt
) -
segment_repeat_cue :: true | false
: Repeat the last cue (default:false
) -
x_timestamp_map :: {cue_time(), mpeg2_time()}
: Add X-TIMESTAMP-MAP to maps WebVTT cue timestamps to MPEG-2 (PES) timestamps. -
cue_time()
::00:00:00.000
-
mpeg2_time()
::integer()
SRT and WEBVTT options:
-
from :: string() | binary() | {integer(), integer(), integer(), integer()}
: Starting cue (default:"00:00:00"
)) -
to :: string() | binary() | {integer(), integer(), integer(), integer()} | undefined
: Starting cue (default:undefined
) -
duration :: integer() | undefined
: Total duration in seconds (default:undefined
)
from
and to
formats :
-
HH:MM:SS
-
HH:MM:SS.mmm
-
{MM, MM, SS, mmm}
to_string(Subs::subs(), Type::webvtt | srt) -> {ok, string(), integer(), float()} | no_data
Equivalent to to_string(Subs, Type, #{})
.
to_string(Subs::subs(), Type::srt | webvtt, Options::map() | list()) -> {ok, string(), integer(), float(), cue()} | no_data
Generate a subtitle string
Options:
-
from :: string() | binary() | {integer(), integer(), integer(), integer()}
: Starting cue (default:"00:00:00"
)) -
to :: string() | binary() | {integer(), integer(), integer(), integer()} | undefined
: Starting cue (default:undefined
) -
duration :: integer() | undefined
: Total duration in seconds (default:undefined
)
from
and to
formats :
-
HH:MM:SS
-
HH:MM:SS.mmm
-
{MM, MM, SS, mmm}