Skip to content

Latest commit

 

History

History
217 lines (112 loc) · 5.48 KB

vice_subtitles.md

File metadata and controls

217 lines (112 loc) · 5.48 KB

Module vice_subtitles

Data Types


cue() = #{}

subs() = [cue()]

Function Index

parse/1 Parse a subtitle string.
parse_file/1 Parse a subtitle file.
to_file/2Equivalent 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/2Equivalent to to_string(Subs, Type, #{}).
to_string/3 Generate a subtitle string.

Function Details

parse/1


parse(Data::string()) -> {ok, subs()} | {error, {integer(), integer()}}

Parse a subtitle string

parse_file/1


parse_file(File::file:filename_all()) -> {ok, subs()} | {error, term()} | {error, {integer(), integer()}}

Parse a subtitle file

to_file/2


to_file(Subs::subs(), File::file:filename_all()) -> ok | {error, term()}

Equivalent to to_file(Subs, File, #{}).

to_file/3


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


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


to_string(Subs::subs(), Type::webvtt | srt) -> {ok, string(), integer(), float()} | no_data

Equivalent to to_string(Subs, Type, #{}).

to_string/3


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}