2 changed files with 224 additions and 36 deletions
@ -0,0 +1,91 @@ |
|||
package ffmpeg |
|||
|
|||
import "strings" |
|||
|
|||
type VideoEncoder string |
|||
|
|||
func (v VideoEncoder) Option() string { |
|||
s := strings.Builder{} |
|||
s.WriteString(`-c:v `) |
|||
s.WriteString(string(v)) |
|||
return s.String() |
|||
} |
|||
|
|||
// Video encoders
|
|||
|
|||
const ( |
|||
VideoEncoderCopy VideoEncoder = `copy` |
|||
) |
|||
|
|||
// Software
|
|||
const ( |
|||
VideoEncoderLibx264 VideoEncoder = `libx264` |
|||
VideoEncoderLibx265 VideoEncoder = `libx265` |
|||
VideoEncoderLibvpx VideoEncoder = `libvpx` |
|||
VideoEncoderLibvpx9 VideoEncoder = `libvpx-vp9` |
|||
VideoEncoderLibaom VideoEncoder = `libaom-av1` |
|||
) |
|||
|
|||
// Nvidia GPUS
|
|||
const ( |
|||
VideoEncoderH264Nvenc VideoEncoder = `h264_nvenc` |
|||
VideoEncoderH265Nvenc VideoEncoder = `hevc_nvenc` |
|||
VideoEncoderVp8Nvenc VideoEncoder = `vp8_nvenc` |
|||
VideoEncoderVp9Nvenc VideoEncoder = `vp9_nvenc` |
|||
VideoEncoderAv1Nvenc VideoEncoder = `av1_nvenc` |
|||
) |
|||
|
|||
// Intel GPUS
|
|||
const ( |
|||
VideoEncoderH264Qsv VideoEncoder = `h264_qsv` |
|||
VideoEncoderH265Qsv VideoEncoder = `hevc_qsv` |
|||
VideoEncnoderVp8Qsv VideoEncoder = `vp8_qsv` |
|||
VideoEncoderVp9Qsv VideoEncoder = `vp9_qsv` |
|||
VideoEncoderAv1Qsv VideoEncoder = `av1_qsv` |
|||
) |
|||
|
|||
// VAAPI
|
|||
const ( |
|||
VideoEncoderH264Vaapi VideoEncoder = `h264_vaapi` |
|||
VideoEncoderH265Vaapi VideoEncoder = `hevc_vaapi` |
|||
VideoEncoderVp8Vaapi VideoEncoder = `vp8_vaapi` |
|||
VideoEncoderVp9Vaapi VideoEncoder = `vp9_vaapi` |
|||
VideoEncoderAv1Vaapi VideoEncoder = `av1_vaapi` |
|||
) |
|||
|
|||
// AMD GPUS
|
|||
const ( |
|||
VideoEncoderH264Amf VideoEncoder = `h264_amf` |
|||
VideoEncoderH265Amf VideoEncoder = `hevc_amf` |
|||
VideoEncoderVp8Amf VideoEncoder = `vp8_amf` |
|||
VideoEncoderVp9Amf VideoEncoder = `vp9_amf` |
|||
VideoEncoderAv1Amf VideoEncoder = `av1_amf` |
|||
) |
|||
|
|||
type AudioEncoder string |
|||
|
|||
func (a AudioEncoder) Option() string { |
|||
s := strings.Builder{} |
|||
s.WriteString(`-c:a `) |
|||
s.WriteString(string(a)) |
|||
return s.String() |
|||
} |
|||
|
|||
const ( |
|||
AudioEncoderCopy AudioEncoder = `copy` |
|||
AudioEncoderMp3 AudioEncoder = `mp3` |
|||
AudioEncoderAac AudioEncoder = `aac` |
|||
AudioEncoderFlac AudioEncoder = `flac` |
|||
AudioEncoderAlac AudioEncoder = `alac` |
|||
) |
|||
|
|||
type None string |
|||
|
|||
func (n None) Option() string { |
|||
return string(n) |
|||
} |
|||
|
|||
const ( |
|||
VideoNone None = `-vn` |
|||
AudioNone None = `-an` |
|||
) |
Loading…
Reference in new issue