This commit is contained in:
marcsello 2025-10-09 22:21:38 +02:00
commit fa47df6d89
22 changed files with 1724 additions and 0 deletions

76
ffmpeg/model.go Normal file
View file

@ -0,0 +1,76 @@
package ffmpeg
type FFProbeDispositions struct {
Default int `json:"default"`
Dub int `json:"dub"`
Original int `json:"original"`
Comment int `json:"comment"`
Lyrics int `json:"lyrics"`
Karaoke int `json:"karaoke"`
Forced int `json:"forced"`
HearingImpaired int `json:"hearing_impaired"`
VisualImpaired int `json:"visual_impaired"`
CleanEffects int `json:"clean_effects"`
AttachedPic int `json:"attached_pic"`
TimedThumbnails int `json:"timed_thumbnails"`
NonDiegetic int `json:"non_diegetic"`
Captions int `json:"captions"`
Descriptions int `json:"descriptions"`
Metadata int `json:"metadata"`
Dependent int `json:"dependent"`
StillImage int `json:"still_image"`
Multilayer int `json:"multilayer"`
}
type FFProbeStream struct {
Index int `json:"index"`
CodecName string `json:"codec_name"`
CodecLongName string `json:"codec_long_name"`
CodecType string `json:"codec_type"`
CodecTagString string `json:"codec_tag_string"`
CodecTag string `json:"codec_tag"`
SampleFmt string `json:"sample_fmt,omitempty"`
SampleRate string `json:"sample_rate,omitempty"`
Channels int `json:"channels,omitempty"`
ChannelLayout string `json:"channel_layout,omitempty"`
BitsPerSample int `json:"bits_per_sample,omitempty"`
InitialPadding int `json:"initial_padding,omitempty"`
DmixMode string `json:"dmix_mode,omitempty"`
LtrtCmixlev string `json:"ltrt_cmixlev,omitempty"`
LtrtSurmixlev string `json:"ltrt_surmixlev,omitempty"`
LoroCmixlev string `json:"loro_cmixlev,omitempty"`
LoroSurmixlev string `json:"loro_surmixlev,omitempty"`
RFrameRate string `json:"r_frame_rate"`
AvgFrameRate string `json:"avg_frame_rate"`
TimeBase string `json:"time_base"`
StartPts int `json:"start_pts"`
StartTime string `json:"start_time"`
BitRate string `json:"bit_rate,omitempty"`
Disposition FFProbeDispositions `json:"disposition"`
Tags map[string]string `json:"tags"`
DurationTs int `json:"duration_ts,omitempty"`
Duration string `json:"duration,omitempty"`
Profile string `json:"profile,omitempty"`
Width int `json:"width,omitempty"`
Height int `json:"height,omitempty"`
CodedWidth int `json:"coded_width,omitempty"`
CodedHeight int `json:"coded_height,omitempty"`
HasBFrames int `json:"has_b_frames,omitempty"`
SampleAspectRatio string `json:"sample_aspect_ratio,omitempty"`
DisplayAspectRatio string `json:"display_aspect_ratio,omitempty"`
PixFmt string `json:"pix_fmt,omitempty"`
Level int `json:"level,omitempty"`
ColorRange string `json:"color_range,omitempty"`
ColorSpace string `json:"color_space,omitempty"`
ChromaLocation string `json:"chroma_location,omitempty"`
FieldOrder string `json:"field_order,omitempty"`
Refs int `json:"refs,omitempty"`
IsAvc string `json:"is_avc,omitempty"`
NalLengthSize string `json:"nal_length_size,omitempty"`
BitsPerRawSample string `json:"bits_per_raw_sample,omitempty"`
ExtradataSize int `json:"extradata_size,omitempty"`
}
type FFProbeOutput struct {
Streams []FFProbeStream `json:"streams"`
}