recoder

package module
v0.0.0-...-febf5dd Latest Latest
Warning

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

Go to latest
Published: Apr 21, 2025 License: CC0-1.0 Imports: 7 Imported by: 6

Documentation

Index

Constants

View Source
const (
	AudioCodecUndefined = AudioCodec(iota)
	AudioCodecCopy
	AudioCodecAAC
	AudioCodecVorbis
	AudioCodecOpus
	EndOfAudioCodec
)
View Source
const (
	VideoCodecUndefined = VideoCodec(iota)
	VideoCodecCopy
	VideoCodecH264
	VideoCodecHEVC
	VideoCodecAV1
	EndOfVideoCodec
)

Variables

This section is empty.

Functions

func GetCustomOption

func GetCustomOption[T any](in CustomOptions) (T, bool)

Types

type AudioCodec

type AudioCodec uint

func (AudioCodec) MarshalJSON

func (ac AudioCodec) MarshalJSON() ([]byte, error)

func (*AudioCodec) String

func (ac *AudioCodec) String() string

func (*AudioCodec) UnmarshalJSON

func (ac *AudioCodec) UnmarshalJSON(b []byte) error

type AudioQuality

type AudioQuality interface {
	// contains filtered or unexported methods
}

type AudioQualityConstantBitrate

type AudioQualityConstantBitrate uint

func (AudioQualityConstantBitrate) MarshalJSON

func (aq AudioQualityConstantBitrate) MarshalJSON() ([]byte, error)

func (AudioQualityConstantBitrate) MarshalYAML

func (aq AudioQualityConstantBitrate) MarshalYAML() ([]byte, error)

type AudioTrackDecodingConfig

type AudioTrackDecodingConfig struct {
	DecodeAudioConfig
}

type AudioTrackEncodingConfig

type AudioTrackEncodingConfig struct {
	InputTrackIDs []int             `json:"input_track_ids,omitempty" yaml:"input_track_ids,omitempty"`
	Config        EncodeAudioConfig `json:"config,omitempty" yaml:"config,omitempty"`
}

type CustomOption

type CustomOption = any

type CustomOptions

type CustomOptions []CustomOption

type DecodeAudioConfig

type DecodeAudioConfig struct {
	Codec         AudioCodec    `json:"codec,omitempty"   yaml:"codec,omitempty"`
	CustomOptions CustomOptions `json:"custom_options,omitempty" yaml:"custom_options,omitempty"`
}

func (DecodeAudioConfig) GetCustomOptions

func (cfg DecodeAudioConfig) GetCustomOptions() CustomOptions

type DecodeVideoConfig

type DecodeVideoConfig struct {
	Codec         VideoCodec    `json:"codec,omitempty"   yaml:"codec,omitempty"`
	CustomOptions CustomOptions `json:"custom_options,omitempty" yaml:"custom_options,omitempty"`
}

func (DecodeVideoConfig) GetCustomOptions

func (cfg DecodeVideoConfig) GetCustomOptions() CustomOptions

type Decoder

type Decoder interface {
}

type DecodersConfig

type DecodersConfig struct {
	InputAudioTracks []AudioTrackDecodingConfig
	InputVideoTracks []VideoTrackDecodingConfig
}

type EncodeAudioConfig

type EncodeAudioConfig struct {
	Codec         AudioCodec    `json:"codec,omitempty"   yaml:"codec,omitempty"`
	Quality       AudioQuality  `json:"quality,omitempty" yaml:"quality,omitempty"`
	CustomOptions CustomOptions `json:"custom_options,omitempty" yaml:"custom_options,omitempty"`
}

func (*EncodeAudioConfig) MarshalYAML

func (c *EncodeAudioConfig) MarshalYAML() ([]byte, error)

func (*EncodeAudioConfig) UnmarshalJSON

func (c *EncodeAudioConfig) UnmarshalJSON(b []byte) (_err error)

func (*EncodeAudioConfig) UnmarshalYAML

func (c *EncodeAudioConfig) UnmarshalYAML(b []byte) (_err error)

type EncodeVideoConfig

type EncodeVideoConfig struct {
	Codec         VideoCodec    `json:"codec,omitempty"   yaml:"codec,omitempty"`
	Quality       VideoQuality  `json:"quality,omitempty" yaml:"quality,omitempty"`
	CustomOptions CustomOptions `json:"custom_options,omitempty" yaml:"custom_options,omitempty"`
}

func (*EncodeVideoConfig) MarshalYAML

func (c *EncodeVideoConfig) MarshalYAML() ([]byte, error)

func (*EncodeVideoConfig) UnmarshalJSON

func (c *EncodeVideoConfig) UnmarshalJSON(b []byte) (_err error)

func (*EncodeVideoConfig) UnmarshalYAML

func (c *EncodeVideoConfig) UnmarshalYAML(b []byte) (_err error)

type Encoder

type Encoder interface {
	io.Closer
}

type EncodersConfig

type EncodersConfig struct {
	OutputAudioTracks []AudioTrackEncodingConfig `json:"output_audio_tracks,omitempty" yaml:"output_audio_tracks,omitempty"`
	OutputVideoTracks []VideoTrackEncodingConfig `json:"output_video_tracks,omitempty" yaml:"output_video_tracks,omitempty"`
}

type Factory

type Factory interface {
	io.Closer

	NewRecoder(context.Context) (Recoder, error)
	NewEncoder(context.Context, EncodersConfig) (Encoder, error)
	NewInputFromURL(context.Context, string, string, InputConfig) (Input, error)
	NewOutputFromURL(context.Context, string, string, OutputConfig) (Output, error)
}

type Input

type Input interface {
	io.Closer
}

type InputConfig

type InputConfig struct{}

type NewInputFromPublisherer

type NewInputFromPublisherer interface {
	NewInputFromPublisher(context.Context, Publisher, InputConfig) (Input, error)
}

type Output

type Output interface {
	io.Closer
}

type OutputConfig

type OutputConfig struct{}

type Publisher

type Publisher interface {
	ClosedChan() <-chan struct{}
}

type Recoder

type Recoder interface {
	Start(context.Context, Encoder, Input, Output) error
	Wait(context.Context) error
	GetStats(context.Context) (*Stats, error)
}

type Stats

type Stats struct {
	BytesCountRead  uint64
	BytesCountWrote uint64
}

type VideoCodec

type VideoCodec uint

func (VideoCodec) MarshalJSON

func (vc VideoCodec) MarshalJSON() ([]byte, error)

func (*VideoCodec) String

func (vc *VideoCodec) String() string

func (*VideoCodec) UnmarshalJSON

func (vc *VideoCodec) UnmarshalJSON(b []byte) error

type VideoQuality

type VideoQuality interface {
	// contains filtered or unexported methods
}

type VideoQualityConstantBitrate

type VideoQualityConstantBitrate uint

func (VideoQualityConstantBitrate) MarshalJSON

func (vq VideoQualityConstantBitrate) MarshalJSON() ([]byte, error)

func (VideoQualityConstantBitrate) MarshalYAML

func (vq VideoQualityConstantBitrate) MarshalYAML() ([]byte, error)

type VideoQualityConstantQuality

type VideoQualityConstantQuality uint8

func (VideoQualityConstantQuality) MarshalJSON

func (vq VideoQualityConstantQuality) MarshalJSON() ([]byte, error)

func (VideoQualityConstantQuality) MarshalYAML

func (vq VideoQualityConstantQuality) MarshalYAML() ([]byte, error)

type VideoTrackDecodingConfig

type VideoTrackDecodingConfig struct {
	DecodeVideoConfig
}

type VideoTrackEncodingConfig

type VideoTrackEncodingConfig struct {
	InputTrackIDs []int             `json:"input_track_ids,omitempty" yaml:"input_track_ids,omitempty"`
	Config        EncodeVideoConfig `json:"config,omitempty" yaml:"config,omitempty"`
}

Jump to

Keyboard shortcuts

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