Documentation
¶
Overview ¶
Package filter 提供基于 FFmpeg 的视频滤镜处理功能。
本包整合了滤镜图执行和滤镜表达式构建功能,提供:
- 滤镜图创建和执行
- 滤镜表达式构建器
- 常用滤镜(缩放、旋转、去隔行、水印等)
基本用法:
// 使用滤镜执行器
runner := filter.NewRunner("scale=1920:1080", 30)
defer runner.Close()
outFrame, err := runner.Process(inFrame)
// 使用滤镜构建器
expr := filter.NewBuilder().
Scale(1920, 1080).
Rotate(90).
Build()
Index ¶
- func ApplyExpr(expr string, frame *astiav.Frame, fps int) (*astiav.Frame, error)
- type Builder
- func (b *Builder) Build() string
- func (b *Builder) Custom(expr string) *Builder
- func (b *Builder) Deinterlace(method DeinterlaceMethod) *Builder
- func (b *Builder) Format(pixelFormat string) *Builder
- func (b *Builder) ImageWatermark(opts ImageWatermarkOptions) *Builder
- func (b *Builder) Reset() *Builder
- func (b *Builder) Rotate(degrees int) *Builder
- func (b *Builder) Scale(width, height int) *Builder
- func (b *Builder) TextWatermark(opts TextWatermarkOptions) *Builder
- func (b *Builder) Tonemap(opts TonemapOptions) *Builder
- type DeinterlaceMethod
- type Graph
- type ImageWatermarkOptions
- type Runner
- type TextWatermarkOptions
- type TonemapAlgorithm
- type TonemapOptions
- type WatermarkPosition
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Builder ¶
type Builder struct {
// contains filtered or unexported fields
}
Builder 滤镜表达式构建器
func (*Builder) Deinterlace ¶
func (b *Builder) Deinterlace(method DeinterlaceMethod) *Builder
Deinterlace 添加去隔行滤镜
func (*Builder) ImageWatermark ¶
func (b *Builder) ImageWatermark(opts ImageWatermarkOptions) *Builder
ImageWatermark 添加图片水印滤镜(返回完整的滤镜图表达式)
func (*Builder) TextWatermark ¶
func (b *Builder) TextWatermark(opts TextWatermarkOptions) *Builder
TextWatermark 添加文字水印滤镜
func (*Builder) Tonemap ¶
func (b *Builder) Tonemap(opts TonemapOptions) *Builder
Tonemap 添加色调映射滤镜(HDR 转 SDR)
type DeinterlaceMethod ¶
type DeinterlaceMethod string
DeinterlaceMethod 去隔行方法
const ( DeinterlaceYadif DeinterlaceMethod = "yadif" DeinterlaceBwdif DeinterlaceMethod = "bwdif" DeinterlaceBob DeinterlaceMethod = "bob" DeinterlaceWeave DeinterlaceMethod = "weave" DeinterlaceBlend DeinterlaceMethod = "blend" )
type Graph ¶
type Graph struct {
// contains filtered or unexported fields
}
Graph 滤镜图
func NewGraph ¶
NewGraph 创建滤镜图
type ImageWatermarkOptions ¶
type ImageWatermarkOptions struct {
ImagePath string
Position WatermarkPosition
Opacity float64
Scale float64
OffsetX int
OffsetY int
}
ImageWatermarkOptions 图片水印选项
type Runner ¶
type Runner struct {
// contains filtered or unexported fields
}
Runner 滤镜执行器
func (*Runner) Process ¶
Process 处理单个视频帧
type TextWatermarkOptions ¶
type TextWatermarkOptions struct {
Text string
FontFile string
FontSize int
FontColor string
Position WatermarkPosition
Opacity float64
OffsetX int
OffsetY int
}
TextWatermarkOptions 文字水印选项
type TonemapAlgorithm ¶
type TonemapAlgorithm string
TonemapAlgorithm 色调映射算法
const ( TonemapBT2390 TonemapAlgorithm = "bt2390" TonemapHable TonemapAlgorithm = "hable" TonemapMobius TonemapAlgorithm = "mobius" TonemapReinhard TonemapAlgorithm = "reinhard" )
type TonemapOptions ¶
type TonemapOptions struct {
Algorithm TonemapAlgorithm
Mode string // "auto", "rgb", "yuv"
Range string // "auto", "tv", "pc"
Desat float64
Peak float64
}
TonemapOptions 色调映射选项
type WatermarkPosition ¶
type WatermarkPosition string
WatermarkPosition 水印位置
const ( WatermarkTopLeft WatermarkPosition = "top_left" WatermarkTopRight WatermarkPosition = "top_right" WatermarkBottomLeft WatermarkPosition = "bottom_left" WatermarkBottomRight WatermarkPosition = "bottom_right" WatermarkCenter WatermarkPosition = "center" )
Source Files
¶
- builder.go
- doc.go
- graph.go
- runner.go
Click to show internal directories.
Click to hide internal directories.