Enforce DVD codecs and targets for mpg outputs
This commit is contained in:
parent
f5b1980edc
commit
bf928836d9
27
main.go
27
main.go
|
|
@ -3351,6 +3351,8 @@ func determineVideoCodec(cfg convertConfig) string {
|
||||||
return "libvpx-vp9"
|
return "libvpx-vp9"
|
||||||
case "AV1":
|
case "AV1":
|
||||||
return "libaom-av1"
|
return "libaom-av1"
|
||||||
|
case "MPEG-2":
|
||||||
|
return "mpeg2video"
|
||||||
case "Copy":
|
case "Copy":
|
||||||
return "copy"
|
return "copy"
|
||||||
default:
|
default:
|
||||||
|
|
@ -3367,6 +3369,8 @@ func determineAudioCodec(cfg convertConfig) string {
|
||||||
return "libopus"
|
return "libopus"
|
||||||
case "MP3":
|
case "MP3":
|
||||||
return "libmp3lame"
|
return "libmp3lame"
|
||||||
|
case "AC-3":
|
||||||
|
return "ac3"
|
||||||
case "FLAC":
|
case "FLAC":
|
||||||
return "flac"
|
return "flac"
|
||||||
case "Copy":
|
case "Copy":
|
||||||
|
|
@ -3401,6 +3405,7 @@ func (s *appState) startConvert(status *widget.Label, btn, cancelBtn *widget.But
|
||||||
}
|
}
|
||||||
src := s.source
|
src := s.source
|
||||||
cfg := s.convert
|
cfg := s.convert
|
||||||
|
isDVD := cfg.SelectedFormat.Ext == ".mpg"
|
||||||
outDir := filepath.Dir(src.Path)
|
outDir := filepath.Dir(src.Path)
|
||||||
outName := cfg.OutputFile()
|
outName := cfg.OutputFile()
|
||||||
if outName == "" {
|
if outName == "" {
|
||||||
|
|
@ -3415,9 +3420,29 @@ func (s *appState) startConvert(status *widget.Label, btn, cancelBtn *widget.But
|
||||||
"-y",
|
"-y",
|
||||||
"-hide_banner",
|
"-hide_banner",
|
||||||
"-loglevel", "error",
|
"-loglevel", "error",
|
||||||
"-i", src.Path,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DVD presets: enforce compliant codecs, frame rate, resolution, and target
|
||||||
|
if isDVD {
|
||||||
|
if strings.Contains(cfg.SelectedFormat.Label, "PAL") {
|
||||||
|
args = append(args, "-target", "pal-dvd")
|
||||||
|
cfg.FrameRate = "25"
|
||||||
|
cfg.TargetResolution = "PAL (720×576)"
|
||||||
|
} else {
|
||||||
|
args = append(args, "-target", "ntsc-dvd")
|
||||||
|
cfg.FrameRate = "29.97"
|
||||||
|
cfg.TargetResolution = "NTSC (720×480)"
|
||||||
|
}
|
||||||
|
cfg.VideoCodec = "MPEG-2"
|
||||||
|
cfg.AudioCodec = "AC-3"
|
||||||
|
if cfg.AudioBitrate == "" {
|
||||||
|
cfg.AudioBitrate = "192k"
|
||||||
|
}
|
||||||
|
cfg.PixelFormat = "yuv420p"
|
||||||
|
}
|
||||||
|
|
||||||
|
args = append(args, "-i", src.Path)
|
||||||
|
|
||||||
// Add cover art if available
|
// Add cover art if available
|
||||||
hasCoverArt := cfg.CoverArtPath != ""
|
hasCoverArt := cfg.CoverArtPath != ""
|
||||||
if hasCoverArt {
|
if hasCoverArt {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user