fftool

package module
v0.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 9, 2019 License: MIT Imports: 19 Imported by: 0

README

go-fftool

A new ffmpeg tool to make slice

Documentation

Index

Constants

This section is empty.

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 = "media.m3u8"

DefaultM3U8Name ...

View Source
var DefaultOutputName = "media.mp4"

DefaultOutputName ...

View Source
var DefaultOutputPath = "video_split_temp"

DefaultOutputPath ...

View Source
var DefaultProcessCore = ProcessCUDA

DefaultProcessCore ...

View Source
var DefaultScale = Scale720P

DefaultScale ...

View Source
var DefaultSegmentFileName = "media-%05d.ts"

DefaultSegmentFileName ...

View Source
var DefaultSlice = false

DefaultSlice ...

Functions

func Args

func Args(s ...string) string

Args ...

func Err

func Err(e error, msg string) error

Err ...

func LogError

func LogError(err error) bool

LogError ...

func OptimizeWithFormat

func OptimizeWithFormat(c *Config, sfmt *StreamFormat) (e error)

OptimizeWithFormat ...

Types

type Command

type Command struct {
	Name string
	// contains filtered or unexported fields
}

Command ...

func New

func New(name string) *Command

New ...

func (*Command) Path

func (c *Command) Path() string

Path ...

func (*Command) Run

func (c *Command) Run(args string) (string, error)

Run ...

func (*Command) RunContext

func (c *Command) RunContext(ctx context.Context, args string, info chan<- string) (e error)

RunContext ...

func (*Command) SetPath

func (c *Command) SetPath(path string)

SetPath ...

type CommandRunner

type CommandRunner interface {
	Run() (string, error)
	RunContext(ctx context.Context, info chan<- string) (e error)
}

CommandRunner ...

type Config

type Config struct {
	Scale           Scale
	ProcessCore     ProcessCore
	ProcessID       string
	BitRate         int64
	FrameRate       float64
	OutputPath      string //output path
	OutputName      string
	M3U8Name        string
	SegmentFileName string
	HLSTime         int
	KeyOutput       bool
	// contains filtered or unexported fields
}

Config ...

func DefaultConfig

func DefaultConfig() *Config

DefaultConfig ...

func (*Config) Clone

func (c *Config) Clone() *Config

Clone ...

func (*Config) CryptoInfo

func (c *Config) CryptoInfo() string

CryptoInfo ...

func (*Config) ProcessPath

func (c *Config) ProcessPath() string

ProcessPath ...

func (*Config) SaveKey

func (c *Config) SaveKey() error

SaveKey ...

func (*Config) SetCrypt

func (c *Config) SetCrypt(crypto Crypto)

SetCrypt ...

func (*Config) SetSlice

func (c *Config) SetSlice(b bool)

SetSlice ...

type Crypto

type Crypto struct {
	KeyInfoPath string
	Key         string
	KeyPath     string
	UseIV       bool
	IV          string
	URL         string
	// contains filtered or unexported fields
}

Crypto ...

func GenerateCrypto

func GenerateCrypto(ssl *OpenSSL, useIV bool) *Crypto

GenerateCrypto ...

func LoadCrypto

func LoadCrypto(path string) (c *Crypto)

LoadCrypto ...

func (*Crypto) Error

func (c *Crypto) Error() error

Error ...

func (*Crypto) SaveKey

func (c *Crypto) SaveKey() error

SaveKey ...

func (*Crypto) SaveKeyInfo

func (c *Crypto) SaveKeyInfo() error

SaveKeyInfo ...

type CutOut

type CutOut struct {
	StartTime string
	EndTime   string
}

CutOut ...

type FFMpeg

type FFMpeg struct {
	Name string
	// contains filtered or unexported fields
}

FFMpeg ...

func NewFFMpeg

func NewFFMpeg(config *Config) *FFMpeg

NewFFMpeg ...

func (FFMpeg) Config

func (ff FFMpeg) Config() Config

Config ...

func (*FFMpeg) Error

func (ff *FFMpeg) Error() error

Error ...

func (*FFMpeg) OptimizeWithFormat

func (ff *FFMpeg) OptimizeWithFormat(sfmt *StreamFormat) (newFF *FFMpeg)

OptimizeWithFormat ...

func (FFMpeg) Run

func (ff FFMpeg) Run(ctx context.Context, input string) (e error)

Run ...

func (*FFMpeg) Version

func (ff *FFMpeg) Version() (string, error)

Version ...

type FFProbe

type FFProbe struct {
	Name string
	// contains filtered or unexported fields
}

FFProbe ...

func NewFFProbe

func NewFFProbe() *FFProbe

NewFFProbe ...

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 ...

func (*FileInfo) ToString

func (info *FileInfo) ToString() string

ToString ...

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 OpenSSL

type OpenSSL struct {
	Name string
	// contains filtered or unexported fields
}

OpenSSL ...

func NewOpenSSL

func NewOpenSSL() *OpenSSL

NewOpenSSL ...

func (*OpenSSL) Base64

func (ssl *OpenSSL) Base64(size int) string

Base64 ...

func (*OpenSSL) Hex

func (ssl *OpenSSL) Hex(size int) string

Hex ...

func (*OpenSSL) Run

func (ssl *OpenSSL) Run(args string) (string, error)

Run ...

type ProcessCore

type ProcessCore int

ProcessCore ...

const (
	ProcessNone ProcessCore = -1
	ProcessCPU  ProcessCore = 1
	ProcessCUDA ProcessCore = iota
	ProcessCUVID
)

None ...

type Scale

type Scale int

Scale ...

const (
	ScaleNone  Scale = -1
	Scale480P  Scale = 0
	Scale720P  Scale = 1
	Scale1080P Scale = 2
)

Scale ...

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

type StreamFormat struct {
	Streams []Stream `json:"streams"`
	Format  Format   `json:"format"`
}

StreamFormat ...

func (*StreamFormat) Audio

func (f *StreamFormat) Audio() *Stream

Audio ...

func (*StreamFormat) IsVideo

func (f *StreamFormat) IsVideo() bool

IsVideo ...

func (*StreamFormat) Video

func (f *StreamFormat) Video() *Stream

Video ...

type StreamTags

type StreamTags struct {
	Language    string `json:"language"`
	HandlerName string `json:"handler_name"`
}

StreamTags ...

Directories

Path Synopsis
cmd
file_server command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL