mirror of https://github.com/stashapp/stash.git
47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
package ffmpeg
|
|
|
|
type VideoCodec struct {
|
|
Name string // The full name of the codec including profile/quality
|
|
CodeName string // The core codec name without profile/quality suffix
|
|
}
|
|
|
|
func makeVideoCodec(name string, codename string) VideoCodec {
|
|
return VideoCodec{name, codename}
|
|
}
|
|
|
|
func (c VideoCodec) Args() []string {
|
|
if c.CodeName == "" {
|
|
return nil
|
|
}
|
|
|
|
return []string{"-c:v", string(c.CodeName)}
|
|
}
|
|
|
|
var (
|
|
// Software codec's
|
|
VideoCodecLibX264 = makeVideoCodec("x264", "libx264")
|
|
VideoCodecLibWebP = makeVideoCodec("WebP", "libwebp")
|
|
VideoCodecBMP = makeVideoCodec("BMP", "bmp")
|
|
VideoCodecMJpeg = makeVideoCodec("Jpeg", "mjpeg")
|
|
VideoCodecVP9 = makeVideoCodec("VPX-VP9", "libvpx-vp9")
|
|
VideoCodecVPX = makeVideoCodec("VPX-VP8", "libvpx")
|
|
VideoCodecLibX265 = makeVideoCodec("x265", "libx265")
|
|
VideoCodecCopy = makeVideoCodec("Copy", "copy")
|
|
)
|
|
|
|
type AudioCodec string
|
|
|
|
func (c AudioCodec) Args() []string {
|
|
if c == "" {
|
|
return nil
|
|
}
|
|
|
|
return []string{"-c:a", string(c)}
|
|
}
|
|
|
|
var (
|
|
AudioCodecAAC AudioCodec = "aac"
|
|
AudioCodecLibOpus AudioCodec = "libopus"
|
|
AudioCodecCopy AudioCodec = "copy"
|
|
)
|