Added the ability to convert files to different extensions.

This commit is contained in:
2024-03-07 22:18:35 +05:00
parent 1eb7ea4a93
commit 1ece1e443d
45 changed files with 1735 additions and 48 deletions

21
encoder/apng/encoder.go Normal file
View File

@@ -0,0 +1,21 @@
package apng
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "apng"}
}
func NewData() encoder2.EncoderDataContract {
title := "apng"
formats := []string{"apng"}
fileType := encoder2.FileType(encoder2.Image)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

21
encoder/bmp/encoder.go Normal file
View File

@@ -0,0 +1,21 @@
package bmp
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "bmp"}
}
func NewData() encoder2.EncoderDataContract {
title := "bmp"
formats := []string{"bmp"}
fileType := encoder2.FileType(encoder2.Image)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

79
encoder/encoder.go Normal file
View File

@@ -0,0 +1,79 @@
package encoder
type EncoderContract interface {
GetParams() []string
}
type EncoderDataContract interface {
GetTitle() string
GetFormats() []string
GetFileType() FileTypeContract
NewEncoder() EncoderContract
}
type Data struct {
title string
formats []string
fileType FileTypeContract
encoder func() EncoderContract
}
func NewData(title string, formats []string, fileType FileTypeContract, encoder func() EncoderContract) *Data {
return &Data{
title: title,
formats: formats,
fileType: fileType,
encoder: encoder,
}
}
func (data Data) GetTitle() string {
return data.title
}
func (data Data) GetFormats() []string {
return data.formats
}
func (data Data) NewEncoder() EncoderContract {
return data.encoder()
}
func (data Data) GetFileType() FileTypeContract {
return data.fileType
}
type FileTypeContract interface {
Name() string
Ordinal() int
}
const (
Video = iota
Audio
Image
)
type FileType uint
var fileTypeStrings = []string{
"video",
"audio",
"image",
}
func (fileType FileType) Name() string {
return fileTypeStrings[fileType]
}
func (fileType FileType) Ordinal() int {
return int(fileType)
}
func GetListFileType() []FileTypeContract {
return []FileTypeContract{
FileType(Video),
FileType(Audio),
FileType(Image),
}
}

21
encoder/flv/encoder.go Normal file
View File

@@ -0,0 +1,21 @@
package flv
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "flv"}
}
func NewData() encoder2.EncoderDataContract {
title := "flv"
formats := []string{"flv"}
fileType := encoder2.FileType(encoder2.Video)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

21
encoder/gif/encoder.go Normal file
View File

@@ -0,0 +1,21 @@
package gif
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "gif"}
}
func NewData() encoder2.EncoderDataContract {
title := "gif"
formats := []string{"gif"}
fileType := encoder2.FileType(encoder2.Image)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

View File

@@ -0,0 +1,23 @@
package h264_nvenc
import (
encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
)
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "h264_nvenc"}
}
func NewData() encoder2.EncoderDataContract {
title := "h264_nvenc"
formats := []string{"mp4"}
fileType := encoder2.FileType(encoder2.Video)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

View File

@@ -0,0 +1,21 @@
package libmp3lame
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:a", "libmp3lame"}
}
func NewData() encoder2.EncoderDataContract {
title := "libmp3lame"
formats := []string{"mp3"}
fileType := encoder2.FileType(encoder2.Audio)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

View File

@@ -0,0 +1,21 @@
package libshine
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:a", "libshine"}
}
func NewData() encoder2.EncoderDataContract {
title := "libshine"
formats := []string{"mp3"}
fileType := encoder2.FileType(encoder2.Audio)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

View File

@@ -0,0 +1,21 @@
package libtwolame
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:a", "libtwolame"}
}
func NewData() encoder2.EncoderDataContract {
title := "libtwolame"
formats := []string{"mp2"}
fileType := encoder2.FileType(encoder2.Audio)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

21
encoder/libvpx/encoder.go Normal file
View File

@@ -0,0 +1,21 @@
package libvpx
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "libvpx"}
}
func NewData() encoder2.EncoderDataContract {
title := "libvpx"
formats := []string{"webm", "mkv"}
fileType := encoder2.FileType(encoder2.Video)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

View File

@@ -0,0 +1,21 @@
package libvpx_vp9
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "libvpx-vp9"}
}
func NewData() encoder2.EncoderDataContract {
title := "libvpx-vp9"
formats := []string{"webm", "mkv"}
fileType := encoder2.FileType(encoder2.Video)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

View File

@@ -0,0 +1,21 @@
package libwebp
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "libwebp"}
}
func NewData() encoder2.EncoderDataContract {
title := "libwebp"
formats := []string{"webp"}
fileType := encoder2.FileType(encoder2.Image)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

View File

@@ -0,0 +1,21 @@
package libwebp_anim
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "libwebp_anim"}
}
func NewData() encoder2.EncoderDataContract {
title := "libwebp_anim"
formats := []string{"webp"}
fileType := encoder2.FileType(encoder2.Image)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

View File

@@ -0,0 +1,21 @@
package libx264
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "libx264"}
}
func NewData() encoder2.EncoderDataContract {
title := "libx264"
formats := []string{"mp4"}
fileType := encoder2.FileType(encoder2.Video)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

View File

@@ -0,0 +1,21 @@
package libx265
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "libx265"}
}
func NewData() encoder2.EncoderDataContract {
title := "libx265"
formats := []string{"mp4"}
fileType := encoder2.FileType(encoder2.Video)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

View File

@@ -0,0 +1,21 @@
package libxvid
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "libxvid"}
}
func NewData() encoder2.EncoderDataContract {
title := "libxvid"
formats := []string{"avi"}
fileType := encoder2.FileType(encoder2.Video)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

21
encoder/mjpeg/encoder.go Normal file
View File

@@ -0,0 +1,21 @@
package mjpeg
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "mjpeg"}
}
func NewData() encoder2.EncoderDataContract {
title := "mjpeg"
formats := []string{"jpg"}
fileType := encoder2.FileType(encoder2.Image)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

21
encoder/mp2/encoder.go Normal file
View File

@@ -0,0 +1,21 @@
package mp2
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:a", "mp2"}
}
func NewData() encoder2.EncoderDataContract {
title := "mp2"
formats := []string{"mp2"}
fileType := encoder2.FileType(encoder2.Audio)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

View File

@@ -0,0 +1,21 @@
package mp2fixed
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:a", "mp2fixed"}
}
func NewData() encoder2.EncoderDataContract {
title := "mp2fixed"
formats := []string{"mp2"}
fileType := encoder2.FileType(encoder2.Audio)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

View File

@@ -0,0 +1,21 @@
package mpeg1video
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "mpeg1video"}
}
func NewData() encoder2.EncoderDataContract {
title := "mpeg1video"
formats := []string{"mpg", "mpeg"}
fileType := encoder2.FileType(encoder2.Video)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

View File

@@ -0,0 +1,21 @@
package mpeg2video
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "mpeg2video"}
}
func NewData() encoder2.EncoderDataContract {
title := "mpeg2video"
formats := []string{"mpg", "mpeg"}
fileType := encoder2.FileType(encoder2.Video)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

21
encoder/mpeg4/encoder.go Normal file
View File

@@ -0,0 +1,21 @@
package mpeg4
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "mpeg4"}
}
func NewData() encoder2.EncoderDataContract {
title := "mpeg4"
formats := []string{"avi"}
fileType := encoder2.FileType(encoder2.Video)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

View File

@@ -0,0 +1,21 @@
package msmpeg4
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "msmpeg4"}
}
func NewData() encoder2.EncoderDataContract {
title := "msmpeg4"
formats := []string{"avi"}
fileType := encoder2.FileType(encoder2.Video)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

View File

@@ -0,0 +1,21 @@
package msmpeg4v2
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "msmpeg4v2"}
}
func NewData() encoder2.EncoderDataContract {
title := "msmpeg4v2"
formats := []string{"avi"}
fileType := encoder2.FileType(encoder2.Video)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

View File

@@ -0,0 +1,21 @@
package msvideo1
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "msvideo1"}
}
func NewData() encoder2.EncoderDataContract {
title := "msvideo1"
formats := []string{"avi"}
fileType := encoder2.FileType(encoder2.Video)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

21
encoder/png/encoder.go Normal file
View File

@@ -0,0 +1,21 @@
package png
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "png"}
}
func NewData() encoder2.EncoderDataContract {
title := "png"
formats := []string{"png"}
fileType := encoder2.FileType(encoder2.Image)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

21
encoder/qtrle/encoder.go Normal file
View File

@@ -0,0 +1,21 @@
package qtrle
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "qtrle"}
}
func NewData() encoder2.EncoderDataContract {
title := "qtrle"
formats := []string{"mov"}
fileType := encoder2.FileType(encoder2.Video)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

21
encoder/sgi/encoder.go Normal file
View File

@@ -0,0 +1,21 @@
package sgi
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "sgi"}
}
func NewData() encoder2.EncoderDataContract {
title := "sgi"
formats := []string{"sgi"}
fileType := encoder2.FileType(encoder2.Image)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

21
encoder/tiff/encoder.go Normal file
View File

@@ -0,0 +1,21 @@
package tiff
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "tiff"}
}
func NewData() encoder2.EncoderDataContract {
title := "tiff"
formats := []string{"tiff"}
fileType := encoder2.FileType(encoder2.Image)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

21
encoder/wmav1/encoder.go Normal file
View File

@@ -0,0 +1,21 @@
package wmav1
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:a", "wmav1"}
}
func NewData() encoder2.EncoderDataContract {
title := "wmav1"
formats := []string{"wma"}
fileType := encoder2.FileType(encoder2.Audio)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

21
encoder/wmav2/encoder.go Normal file
View File

@@ -0,0 +1,21 @@
package wmav2
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:a", "wmav2"}
}
func NewData() encoder2.EncoderDataContract {
title := "wmav2"
formats := []string{"wma"}
fileType := encoder2.FileType(encoder2.Audio)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

21
encoder/wmv1/encoder.go Normal file
View File

@@ -0,0 +1,21 @@
package wmv1
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "wmv1"}
}
func NewData() encoder2.EncoderDataContract {
title := "wmv1"
formats := []string{"wmv"}
fileType := encoder2.FileType(encoder2.Video)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

21
encoder/wmv2/encoder.go Normal file
View File

@@ -0,0 +1,21 @@
package wmv2
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "wmv2"}
}
func NewData() encoder2.EncoderDataContract {
title := "wmv2"
formats := []string{"wmv"}
fileType := encoder2.FileType(encoder2.Video)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}

21
encoder/xbm/encoder.go Normal file
View File

@@ -0,0 +1,21 @@
package xbm
import encoder2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/encoder"
type encoder struct {
}
func NewEncoder() encoder2.EncoderContract {
return &encoder{}
}
func (e encoder) GetParams() []string {
return []string{"-c:v", "xbm"}
}
func NewData() encoder2.EncoderDataContract {
title := "xbm"
formats := []string{"xbm"}
fileType := encoder2.FileType(encoder2.Image)
return encoder2.NewData(title, formats, fileType, NewEncoder)
}