Documentation
¶
Index ¶
- Constants
- Variables
- func Args(s ...string) string
- func Err(e error, msg string) error
- func IsMedia(format *StreamFormat) bool
- func IsPicture(name string) bool
- func IsVideo(filename string) bool
- func LogError(err error) bool
- func OptimizeWithFormat(c *Config, sfmt *StreamFormat) (e error)
- func RegisterLogger(logger extlog.Logger)
- func ScaleValue(scale Scale) int64
- type Command
- type CommandRunner
- type Config
- func (c *Config) Action() error
- func (c *Config) ActionOutput() string
- func (c *Config) ConfigOptions() ConfigOptions
- func (c *Config) CryptoInfo() string
- func (c *Config) ProcessID() string
- func (c *Config) ProcessPath() string
- func (c *Config) SaveKey() error
- func (c *Config) SetCrypt(crypto *Crypto)
- type ConfigOptions
- type Crypto
- type CutOut
- type FFMpeg
- type FFProbe
- type FileInfo
- type Format
- type FormatTags
- type MpegOption
- type OpenSSL
- type Scale
- type Stream
- type StreamFormat
- type StreamTags
Constants ¶
View Source
const ( ProcessNone = "" ProcessH264CPU = "libx264" ProcessH264QSV = "h264_qsv" ProcessH264AMF = "h264_amf" ProcessH264NVENC = "h264_nvenc" ProcessH264VideoToolBox = "h264_videotoolbox" ProcessHevcCPU = "libx265" ProcessHevcQSV = "hevc_qsv" ProcessHevcAMF = "hevc_amf" ProcessHevcNVENC = "hevc_nvenc" ProcessHevcVideoToolBox = "hevc_videotoolbox" ProcessCUVID = "cuvid" )
None ...
Variables ¶
View Source
var DefaultCommandPath = ""
DefaultCommandPath default point to current dir
View Source
var DefaultHLSTime = 10
DefaultHLSTime ...
View Source
var DefaultKeyInfoName = "m3u8_key_info"
DefaultKeyInfoName ...
View Source
var DefaultKeyName = "m3u8_key"
DefaultKeyName ...
View Source
var DefaultKeyPath = "output_key"
DefaultKeyPath ...
View Source
var DefaultM3U8Name = "index.m3u8"
DefaultM3U8Name ...
View Source
var DefaultMpegName = "ffmpeg"
DefaultMpegName ...
View Source
var DefaultOpenSSLName = "openssl"
DefaultOpenSSLName ...
View Source
var DefaultOutputName = "index.mp4"
DefaultOutputName ...
View Source
var DefaultOutputPath = "video_split_temp"
DefaultOutputPath ...
View Source
var DefaultProbeName = "ffprobe"
DefaultProbeName ...
View Source
var DefaultProcessCore = ProcessH264CPU
DefaultProcessCore ...
View Source
var DefaultScale = Scale720P
DefaultScale ...
View Source
var DefaultSegmentFileName = "media-%05d.ts"
DefaultSegmentFileName ...
View Source
var DefaultSlice = true
DefaultSlice ...
Functions ¶
func OptimizeWithFormat ¶
func OptimizeWithFormat(c *Config, sfmt *StreamFormat) (e error)
OptimizeWithFormat ...
Types ¶
type CommandRunner ¶
type CommandRunner interface { Message(func(message string)) Run(s string) (string, error) RunContext(ctx context.Context, s string) (e error) }
CommandRunner ...
type Config ¶
type Config struct { LogOutput bool VideoFormat string AudioFormat string Scale Scale ProcessCore string BitRate int64 OptimizeBitRate bool FrameRate float64 OptimizeFrameRate bool OutputPath string //output path OutputName string M3U8Name string SegmentFileName string HLSTime int KeyOutput bool Slice bool KeyPath string // contains filtered or unexported fields }
Config ...
func (*Config) ConfigOptions ¶ added in v0.0.21
func (c *Config) ConfigOptions() ConfigOptions
ConfigOptions ...
type Crypto ¶
type Crypto struct { KeyInfoPath string Key string KeyPath string UseIV bool IV string URL string // contains filtered or unexported fields }
Crypto ...
func GenerateNewKey ¶ added in v0.0.21
GenerateNewKey ...
type FFMpeg ¶
type FFMpeg struct {
// contains filtered or unexported fields
}
FFMpeg ...
func (*FFMpeg) HandleMessage ¶
HandleMessage ...
func (FFMpeg) RunCommandString ¶ added in v0.0.25
RunCommandString ...
type FFProbe ¶
type FFProbe struct {
// contains filtered or unexported fields
}
FFProbe ...
func (*FFProbe) StreamFormat ¶
func (ff *FFProbe) StreamFormat(file string) (*StreamFormat, error)
StreamFormat ...
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 ...
type StreamTags ¶
type StreamTags struct { Language string `json:"language"` HandlerName string `json:"handler_name"` }
StreamTags ...
Source Files
¶
Click to show internal directories.
Click to hide internal directories.