Documentation
¶
Index ¶
- Constants
- func FFMpegRun(ctx context.Context, output chan<- []byte, args string) (e error)
- func GetCurrentDir() string
- type Argument
- func FFMpegSplitToM3U8(ctx context.Context, file string, args ...ArgumentOptions) (sa *Argument, e error)
- func FFMpegSplitToM3U8WithOptimize(ctx context.Context, file string, args ...ArgumentOptions) (sa *Argument, e error)
- func FFMpegSplitToM3U8WithProbe(ctx context.Context, file string, args ...ArgumentOptions) (sa *Argument, e error)
- type ArgumentOptions
- func AudioOption(s string) ArgumentOptions
- func AutoOption(s bool) ArgumentOptions
- func BitRateOption(b int64) ArgumentOptions
- func HLSTimeOption(i int) ArgumentOptions
- func OutputOption(s string) ArgumentOptions
- func ProbeInfoOption(f func(string) (*StreamFormat, error)) ArgumentOptions
- func ScaleOption(s int64, v ...string) ArgumentOptions
- func ShowLogOption(b bool) ArgumentOptions
- func StreamFormatOption(s *StreamFormat) ArgumentOptions
- func VideoOption(s string) ArgumentOptions
- type Command
- type Context
- type FileInfo
- type Format
- type FormatTags
- type Stream
- type StreamFormat
- type StreamTags
Constants ¶
View Source
const ( Scale480P = 0 Scale720P = 1 Scale1080P = 2 )
Scale ...
View Source
const ( CNameIdx = iota ExtIdx CaptionIdx LanguageIdx AudioIdx VideoIdx SharpnessIdx DataIdx ENameIdx MaxSizeIdx )
ExtIdx ...
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Argument ¶
type Argument struct {
StreamFormat *StreamFormat
Auto bool
Scale int64
Start string
End string
Output string
Video string
Audio string
M3U8 string
SegmentFileName string
HLSTime int
BitRate int64
FrameRate float64
ShowLog bool
// contains filtered or unexported fields
}
func FFMpegSplitToM3U8 ¶
func FFMpegSplitToM3U8(ctx context.Context, file string, args ...ArgumentOptions) (sa *Argument, e error)
FFMpegSplitToM3U8 ...
func FFMpegSplitToM3U8WithOptimize ¶
func FFMpegSplitToM3U8WithOptimize(ctx context.Context, file string, args ...ArgumentOptions) (sa *Argument, e error)
FFMpegSplitToM3U8WithOptimize ...
func FFMpegSplitToM3U8WithProbe ¶
func FFMpegSplitToM3U8WithProbe(ctx context.Context, file string, args ...ArgumentOptions) (sa *Argument, e error)
FFMpegSplitToM3U8WithProbe ...
type ArgumentOptions ¶
type ArgumentOptions func(args *Argument)
ArgumentOptions ...
func ProbeInfoOption ¶
func ProbeInfoOption(f func(string) (*StreamFormat, error)) ArgumentOptions
ProbeInfoOption ...
func ShowLogOption ¶
func ShowLogOption(b bool) ArgumentOptions
func StreamFormatOption ¶
func StreamFormatOption(s *StreamFormat) ArgumentOptions
StreamFormatOption ...
type Context ¶
type Context interface {
Cancel()
Add(int)
Waiting() <-chan bool
Wait()
Done()
Context() context.Context
}
Context ...
type FileInfo ¶
type FileInfo struct {
Ext string //扩展名
Caption string //字幕
Language string //语种
Audio string //音频
Video string //视频
Sharpness string //清晰度
Date string //年份
CName string //中文名
EName string //英文名
Prefix string //前缀(广告信息)
}
FileInfo ...
type Format ¶
type Format struct {
Filename string `json:"filename"`
NbStreams int64 `json:"nb_streams"`
NbPrograms int64 `json:"nb_programs"`
FormatName string `json:"format_name"`
FormatLongName string `json:"format_long_name"`
StartTime string `json:"start_time"`
Duration string `json:"duration"`
Size string `json:"size"`
BitRate string `json:"bit_rate"`
ProbeScore int64 `json:"probe_score"`
Tags FormatTags `json:"tags"`
}
Format ...
type FormatTags ¶
type FormatTags struct {
MajorBrand string `json:"major_brand"`
MinorVersion string `json:"minor_version"`
CompatibleBrands string `json:"compatible_brands"`
Encoder string `json:"encoder"`
}
FormatTags ...
type Stream ¶
type Stream struct {
Index int64 `json:"index"`
CodecName string `json:"codec_name"`
CodecLongName string `json:"codec_long_name"`
Profile string `json:"profile"`
CodecType string `json:"codec_type"`
CodecTimeBase string `json:"codec_time_base"`
CodecTagString string `json:"codec_tag_string"`
CodecTag string `json:"codec_tag"`
Width *int64 `json:"width,omitempty"`
Height *int64 `json:"height,omitempty"`
CodedWidth *int64 `json:"coded_width,omitempty"`
CodedHeight *int64 `json:"coded_height,omitempty"`
HasBFrames *int64 `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 *int64 `json:"level,omitempty"`
ColorRange *string `json:"color_range,omitempty"`
ColorSpace *string `json:"color_space,omitempty"`
ColorTransfer *string `json:"color_transfer,omitempty"`
ColorPrimaries *string `json:"color_primaries,omitempty"`
ChromaLocation *string `json:"chroma_location,omitempty"`
Refs *int64 `json:"refs,omitempty"`
IsAVC *string `json:"is_avc,omitempty"`
NalLengthSize *string `json:"nal_length_size,omitempty"`
RFrameRate string `json:"r_frame_rate"`
AvgFrameRate string `json:"avg_frame_rate"`
TimeBase string `json:"time_base"`
StartPts int64 `json:"start_pts"`
StartTime string `json:"start_time"`
DurationTs int64 `json:"duration_ts"`
Duration string `json:"duration"`
BitRate string `json:"bit_rate"`
BitsPerRawSample *string `json:"bits_per_raw_sample,omitempty"`
NbFrames string `json:"nb_frames"`
Disposition map[string]int64 `json:"disposition"`
Tags StreamTags `json:"tags"`
SampleFmt *string `json:"sample_fmt,omitempty"`
SampleRate *string `json:"sample_rate,omitempty"`
Channels *int64 `json:"channels,omitempty"`
ChannelLayout *string `json:"channel_layout,omitempty"`
BitsPerSample *int64 `json:"bits_per_sample,omitempty"`
MaxBitRate *string `json:"max_bit_rate,omitempty"`
}
Stream ...
type StreamFormat ¶
StreamFormat ...
func FFProbeStreamFormat ¶
func FFProbeStreamFormat(filename string) (*StreamFormat, error)
FFProbeStreamFormat ...
type StreamTags ¶
type StreamTags struct {
Language string `json:"language"`
HandlerName string `json:"handler_name"`
}
StreamTags ...
Click to show internal directories.
Click to hide internal directories.