Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( QualityPresetsList = []string{"144p", "240p", "360p", "480p", "720p", "720p+60fps", "1080p", "1080p+60fps", "4k", "4k+60fps"} QualityPresetsMap = map[string]OutputQuality{ "144p": { Width: 256, Height: 144, VideoBitRateKilo: 90, AudioBitRateKilo: 32, QualityLevel: 24, FrameRate: 30, }, "240p": { Width: 426, Height: 240, VideoBitRateKilo: 300, AudioBitRateKilo: 64, QualityLevel: 28, FrameRate: 30, }, "360p": { Width: 640, Height: 360, VideoBitRateKilo: 700, AudioBitRateKilo: 96, QualityLevel: 24, FrameRate: 30, }, "480p": { Width: 850, Height: 480, VideoBitRateKilo: 1400, AudioBitRateKilo: 128, QualityLevel: 24, FrameRate: 30, }, "720p": { Width: 1280, Height: 720, VideoBitRateKilo: 2850, AudioBitRateKilo: 128, QualityLevel: 24, FrameRate: 30, }, "720p+60fps": { Width: 1280, Height: 720, VideoBitRateKilo: 3950, AudioBitRateKilo: 128, QualityLevel: 20, FrameRate: 60, }, "1080p": { Width: 1920, Height: 1080, VideoBitRateKilo: 4900, AudioBitRateKilo: 192, QualityLevel: 20, FrameRate: 30, }, "1080p+60fps": { Width: 1920, Height: 1080, VideoBitRateKilo: 660, AudioBitRateKilo: 192, QualityLevel: 20, FrameRate: 60, }, "4k": { Width: 3840, Height: 2160, VideoBitRateKilo: 14000, AudioBitRateKilo: 192, QualityLevel: 18, FrameRate: 30, }, "4k+60fps": { Width: 3840, Height: 2160, VideoBitRateKilo: 25000, AudioBitRateKilo: 192, QualityLevel: 18, FrameRate: 60, }, } )
package wide var(s)
View Source
var VideoCodecs = map[string]string{
"h264": "libx264",
"h265": "libx265",
}
VideoCodecs currently supported video codecs
Functions ¶
func GenerateHLSPlaylist ¶ added in v0.1.0
func GenerateHLSPlaylist(input *HLSBuilderInput) (string, error)
GenerateHLSPlaylist generate a HLS playlist from a video input
func Transform ¶
func Transform(input *TransformInput) error
Transform applies the specified transformations on the video file
Types ¶
type HLSBuilderInput ¶ added in v0.1.0
type HLSBuilderInput struct { InputFilename string OutputDirectory string SegmentDurationSeconds int64 Quality map[string]OutputQuality QualityPresets []string }
HLSBuilderInput represents the input for the HLS builder
type InspectInput ¶
type InspectInput struct { Filename string ExtractThumbnail bool ThumbnailTimeOffset string ThumbnailWidth int64 ThumbnailHeight int64 }
InspectInput the input used to extract the media information
type InspectOutput ¶
type InspectOutput struct { Duration float64 `json:"duration"` Size struct { Bytes float64 `json:"bytes"` Human string `json:"human"` } `json:"size"` BitRate int64 `json:"bit_rate"` Thumbnail string `json:"thumbnail,omitempty"` Streams []*StreamMeta `json:"streams"` }
InspectOutput represents a media file info
func Inspect ¶
func Inspect(input *InspectInput) (*InspectOutput, error)
Inspect returns a media file information
func (*InspectOutput) String ¶
func (info *InspectOutput) String() string
type OutputQuality ¶ added in v0.1.0
type OutputQuality struct { Width int64 Height int64 VideoBitRateKilo int64 AudioBitRateKilo int64 QualityLevel int64 FrameRate int64 }
OutputQuality represents the quality configs
type StreamMeta ¶
type StreamMeta struct { Index int64 `json:"index"` Type string `json:"type"` Codec string `json:"codec"` Width int64 `json:"width,omitempty"` Height int64 `json:"height,omitempty"` AspectRatio string `json:"aspect_ratio,omitempty"` StartTime float64 `json:"start_time"` Duration float64 `json:"duration"` BitRate int64 `json:"bit_rate"` FramesCount int64 `json:"frames_count,omitempty"` CreatedAt time.Time `json:"created_at,omitempty"` }
StreamMeta represents a stream in a media file
type TransformInput ¶
type TransformInput struct { OutputQuality VideoCodec string FrameRate int64 InputFilename string OutputFilename string }
TransformInput represents the input used to transform (compress, resize) a video
Click to show internal directories.
Click to hide internal directories.