|
|
|
@ -16,6 +16,7 @@ type Codec interface {
@@ -16,6 +16,7 @@ type Codec interface {
|
|
|
|
|
DisplayName() string |
|
|
|
|
GlobalFlags() string |
|
|
|
|
PixelFormat() string |
|
|
|
|
Scaler() string |
|
|
|
|
ExtraArguments() string |
|
|
|
|
ExtraFilters() string |
|
|
|
|
VariantFlags(v *HLSVariant) string |
|
|
|
@ -53,6 +54,11 @@ func (c *Libx264Codec) PixelFormat() string {
@@ -53,6 +54,11 @@ func (c *Libx264Codec) PixelFormat() string {
|
|
|
|
|
return "yuv420p" //nolint:goconst
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Scaler is the scaler used for resizing the video in the transcoder.
|
|
|
|
|
func (c *Libx264Codec) Scaler() string { |
|
|
|
|
return "" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// ExtraArguments are the extra arguments used with this codec in the transcoder.
|
|
|
|
|
func (c *Libx264Codec) ExtraArguments() string { |
|
|
|
|
return strings.Join([]string{ |
|
|
|
@ -117,6 +123,11 @@ func (c *OmxCodec) PixelFormat() string {
@@ -117,6 +123,11 @@ func (c *OmxCodec) PixelFormat() string {
|
|
|
|
|
return "yuv420p" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Scaler is the scaler used for resizing the video in the transcoder.
|
|
|
|
|
func (c *OmxCodec) Scaler() string { |
|
|
|
|
return "" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// ExtraArguments are the extra arguments used with this codec in the transcoder.
|
|
|
|
|
func (c *OmxCodec) ExtraArguments() string { |
|
|
|
|
return strings.Join([]string{ |
|
|
|
@ -170,6 +181,8 @@ func (c *VaapiCodec) DisplayName() string {
@@ -170,6 +181,8 @@ func (c *VaapiCodec) DisplayName() string {
|
|
|
|
|
// GlobalFlags are the global flags used with this codec in the transcoder.
|
|
|
|
|
func (c *VaapiCodec) GlobalFlags() string { |
|
|
|
|
flags := []string{ |
|
|
|
|
"-hwaccel", "vaapi", |
|
|
|
|
"-hwaccel_output_format", "vaapi", |
|
|
|
|
"-vaapi_device", "/dev/dri/renderD128", |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -181,9 +194,14 @@ func (c *VaapiCodec) PixelFormat() string {
@@ -181,9 +194,14 @@ func (c *VaapiCodec) PixelFormat() string {
|
|
|
|
|
return "vaapi_vld" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Scaler is the scaler used for resizing the video in the transcoder.
|
|
|
|
|
func (c *VaapiCodec) Scaler() string { |
|
|
|
|
return "scale_vaapi" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// ExtraFilters are the extra filters required for this codec in the transcoder.
|
|
|
|
|
func (c *VaapiCodec) ExtraFilters() string { |
|
|
|
|
return "format=nv12,hwupload" |
|
|
|
|
return "" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// ExtraArguments are the extra arguments used with this codec in the transcoder.
|
|
|
|
@ -232,7 +250,7 @@ func (c *NvencCodec) DisplayName() string {
@@ -232,7 +250,7 @@ func (c *NvencCodec) DisplayName() string {
|
|
|
|
|
// GlobalFlags are the global flags used with this codec in the transcoder.
|
|
|
|
|
func (c *NvencCodec) GlobalFlags() string { |
|
|
|
|
flags := []string{ |
|
|
|
|
"-hwaccel cuda", |
|
|
|
|
"-hwaccel", "cuda", |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return strings.Join(flags, " ") |
|
|
|
@ -243,6 +261,11 @@ func (c *NvencCodec) PixelFormat() string {
@@ -243,6 +261,11 @@ func (c *NvencCodec) PixelFormat() string {
|
|
|
|
|
return "yuv420p" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Scaler is the scaler used for resizing the video in the transcoder.
|
|
|
|
|
func (c *NvencCodec) Scaler() string { |
|
|
|
|
return "" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// ExtraArguments are the extra arguments used with this codec in the transcoder.
|
|
|
|
|
func (c *NvencCodec) ExtraArguments() string { |
|
|
|
|
return "" |
|
|
|
@ -302,6 +325,11 @@ func (c *QuicksyncCodec) PixelFormat() string {
@@ -302,6 +325,11 @@ func (c *QuicksyncCodec) PixelFormat() string {
|
|
|
|
|
return "nv12" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Scaler is the scaler used for resizing the video in the transcoder.
|
|
|
|
|
func (c *QuicksyncCodec) Scaler() string { |
|
|
|
|
return "" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// ExtraArguments are the extra arguments used with this codec in the transcoder.
|
|
|
|
|
func (c *QuicksyncCodec) ExtraArguments() string { |
|
|
|
|
return "" |
|
|
|
@ -360,6 +388,11 @@ func (c *Video4Linux) PixelFormat() string {
@@ -360,6 +388,11 @@ func (c *Video4Linux) PixelFormat() string {
|
|
|
|
|
return "nv21" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Scaler is the scaler used for resizing the video in the transcoder.
|
|
|
|
|
func (c *Video4Linux) Scaler() string { |
|
|
|
|
return "" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// ExtraArguments are the extra arguments used with this codec in the transcoder.
|
|
|
|
|
func (c *Video4Linux) ExtraArguments() string { |
|
|
|
|
return "" |
|
|
|
@ -419,6 +452,11 @@ func (c *VideoToolboxCodec) PixelFormat() string {
@@ -419,6 +452,11 @@ func (c *VideoToolboxCodec) PixelFormat() string {
|
|
|
|
|
return "nv12" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Scaler is the scaler used for resizing the video in the transcoder.
|
|
|
|
|
func (c *VideoToolboxCodec) Scaler() string { |
|
|
|
|
return "" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// ExtraFilters are the extra filters required for this codec in the transcoder.
|
|
|
|
|
func (c *VideoToolboxCodec) ExtraFilters() string { |
|
|
|
|
return "" |
|
|
|
|