Removed minrate during second pass when using two-pass encoding because it fails with ffmpeg

This commit is contained in:
Sergio Costas 2017-11-26 19:42:34 +01:00
parent 46da595b05
commit 0b677edd1c
4 changed files with 67 additions and 56 deletions

View file

@ -1,4 +1,7 @@
## History of versions ## ## History of versions ##
* version 4.8.10 (2017-11-26)
* Removed minrate during second pass when using two-pass encoding because it fails with ffmpeg
* version 4.8.9 (2017-07-10) * version 4.8.9 (2017-07-10)
* Fixed bug when there are no CD burner installed * Fixed bug when there are no CD burner installed

View file

@ -72,7 +72,7 @@ except:
setup( setup(
name='devedeng', name='devedeng',
version='4.8.9', version='4.8.10',
description='A video DVD creator', description='A video DVD creator',
long_description="A program that allows to create video DVDs", long_description="A program that allows to create video DVDs",

View file

@ -22,6 +22,7 @@ import os
import devedeng.configuration_data import devedeng.configuration_data
import devedeng.avbase import devedeng.avbase
import devedeng.mux_dvd_menu import devedeng.mux_dvd_menu
import devedeng.project
class avconv(devedeng.avbase.avbase): class avconv(devedeng.avbase.avbase):
@ -242,6 +243,7 @@ class avconv(devedeng.avbase.avbase):
self.command_var.append("libmp3lame") self.command_var.append("libmp3lame")
self.command_var.append("-f") self.command_var.append("-f")
self.command_var.append("avi") self.command_var.append("avi")
if not pass2:
self.command_var.append("-maxrate:v") self.command_var.append("-maxrate:v")
self.command_var.append(str(maxrate)) self.command_var.append(str(maxrate))
self.command_var.append("-minrate:v") self.command_var.append("-minrate:v")
@ -255,6 +257,7 @@ class avconv(devedeng.avbase.avbase):
self.command_var.append("libmp3lame") self.command_var.append("libmp3lame")
self.command_var.append("-f") self.command_var.append("-f")
self.command_var.append("matroska") self.command_var.append("matroska")
if not pass2:
self.command_var.append("-maxrate:v") self.command_var.append("-maxrate:v")
self.command_var.append(str(maxrate)) self.command_var.append(str(maxrate))
self.command_var.append("-minrate:v") self.command_var.append("-minrate:v")
@ -289,9 +292,9 @@ class avconv(devedeng.avbase.avbase):
self.command_var.append("yuv420p") self.command_var.append("yuv420p")
self.command_var.append("-maxrate:v") self.command_var.append("-maxrate:v")
if maxrate > (devedeng.project.devede_project.dvd_max_bps_base[0] * 1000): if maxrate > (devedeng.project.devede_project.dvd_max_bps_base[0] * 1000):
maxrate = devedeng.project.devede_project.dvd_max_bps_base[ maxrate = devedeng.project.devede_project.dvd_max_bps_base[0] * 1000
0] * 1000
self.command_var.append(str(maxrate)) self.command_var.append(str(maxrate))
if not pass2:
self.command_var.append("-minrate:v") self.command_var.append("-minrate:v")
if minrate < (devedeng.project.devede_project.dvd_min_bps * 1000): if minrate < (devedeng.project.devede_project.dvd_min_bps * 1000):
minrate = devedeng.project.devede_project.dvd_min_bps * 1000 minrate = devedeng.project.devede_project.dvd_min_bps * 1000
@ -385,9 +388,9 @@ class avconv(devedeng.avbase.avbase):
self.command_var.append("yuv420p") self.command_var.append("yuv420p")
self.command_var.append("-maxrate:v") self.command_var.append("-maxrate:v")
if maxrate > (devedeng.project.devede_project.svcd_max_bps_base[0] * 1000): if maxrate > (devedeng.project.devede_project.svcd_max_bps_base[0] * 1000):
maxrate = devedeng.project.devede_project.svcd_max_bps_base[ maxrate = devedeng.project.devede_project.svcd_max_bps_base[0] * 1000
0] * 1000
self.command_var.append(str(maxrate)) self.command_var.append(str(maxrate))
if not pass2:
self.command_var.append("-minrate:v") self.command_var.append("-minrate:v")
if minrate < (devedeng.project.devede_project.svcd_min_bps * 1000): if minrate < (devedeng.project.devede_project.svcd_min_bps * 1000):
minrate = (devedeng.project.devede_project.svcd_min_bps * 1000) minrate = (devedeng.project.devede_project.svcd_min_bps * 1000)
@ -428,7 +431,7 @@ class avconv(devedeng.avbase.avbase):
if (self.config.disc_type == "divx") or (self.config.disc_type == "mkv"): if (self.config.disc_type == "divx") or (self.config.disc_type == "mkv"):
self.command_var.append("-g") self.command_var.append("-g")
self.command_var.append("300") self.command_var.append("300")
elif file_project.gop12 and (file_project.no_reencode_audio_video == False): elif file_project.gop12 and (not file_project.no_reencode_audio_video):
self.command_var.append("-g") self.command_var.append("-g")
self.command_var.append("12") self.command_var.append("12")
@ -475,10 +478,10 @@ class avconv(devedeng.avbase.avbase):
if (vcd == False) and (file_project.no_reencode_audio_video == False): if (vcd == False) and (file_project.no_reencode_audio_video == False):
self.command_var.append("-b:a") self.command_var.append("-b:a")
self.command_var.append(str(file_project.audio_rate_final) + "k") self.command_var.append(str(file_project.audio_rate_final*1000))
self.command_var.append("-b:v") self.command_var.append("-b:v")
self.command_var.append(str(file_project.video_rate_final) + "k") self.command_var.append(str(file_project.video_rate_final*1000))
if file_project.two_pass_encoding == True: if file_project.two_pass_encoding == True:
self.command_var.append("-passlogfile") self.command_var.append("-passlogfile")
@ -518,7 +521,7 @@ class avconv(devedeng.avbase.avbase):
else: else:
self.command_var.append("ntsc-dvd") self.command_var.append("ntsc-dvd")
self.command_var.append("-acodec") self.command_var.append("-acodec")
if (use_mp2): if use_mp2:
self.command_var.append("mp2") self.command_var.append("mp2")
if (audio_rate > 384): if (audio_rate > 384):
audio_rate = 384 # max bitrate for mp2 audio_rate = 384 # max bitrate for mp2

View file

@ -107,6 +107,7 @@ class ffmpeg(devedeng.executor.executor):
devedeng.executor.executor.__init__(self) devedeng.executor.executor.__init__(self)
self.config = devedeng.configuration_data.configuration.get_config() self.config = devedeng.configuration_data.configuration.get_config()
def convert_file(self, file_project, output_file, video_length, pass2=False): def convert_file(self, file_project, output_file, video_length, pass2=False):
if file_project.two_pass_encoding: if file_project.two_pass_encoding:
@ -237,6 +238,7 @@ class ffmpeg(devedeng.executor.executor):
self.command_var.append("libmp3lame") self.command_var.append("libmp3lame")
self.command_var.append("-f") self.command_var.append("-f")
self.command_var.append("avi") self.command_var.append("avi")
if not pass2:
self.command_var.append("-maxrate:v") self.command_var.append("-maxrate:v")
self.command_var.append(str(maxrate)) self.command_var.append(str(maxrate))
self.command_var.append("-minrate:v") self.command_var.append("-minrate:v")
@ -250,6 +252,7 @@ class ffmpeg(devedeng.executor.executor):
self.command_var.append("libmp3lame") self.command_var.append("libmp3lame")
self.command_var.append("-f") self.command_var.append("-f")
self.command_var.append("matroska") self.command_var.append("matroska")
if not pass2:
self.command_var.append("-maxrate:v") self.command_var.append("-maxrate:v")
self.command_var.append(str(maxrate)) self.command_var.append(str(maxrate))
self.command_var.append("-minrate:v") self.command_var.append("-minrate:v")
@ -284,9 +287,9 @@ class ffmpeg(devedeng.executor.executor):
self.command_var.append("yuv420p") self.command_var.append("yuv420p")
self.command_var.append("-maxrate:v") self.command_var.append("-maxrate:v")
if maxrate > (devedeng.project.devede_project.dvd_max_bps_base[0] * 1000): if maxrate > (devedeng.project.devede_project.dvd_max_bps_base[0] * 1000):
maxrate = devedeng.project.devede_project.dvd_max_bps_base[ maxrate = devedeng.project.devede_project.dvd_max_bps_base[0] * 1000
0] * 1000
self.command_var.append(str(maxrate)) self.command_var.append(str(maxrate))
if not pass2:
self.command_var.append("-minrate:v") self.command_var.append("-minrate:v")
if minrate < (devedeng.project.devede_project.dvd_min_bps * 1000): if minrate < (devedeng.project.devede_project.dvd_min_bps * 1000):
minrate = devedeng.project.devede_project.dvd_min_bps * 1000 minrate = devedeng.project.devede_project.dvd_min_bps * 1000
@ -380,9 +383,9 @@ class ffmpeg(devedeng.executor.executor):
self.command_var.append("yuv420p") self.command_var.append("yuv420p")
self.command_var.append("-maxrate:v") self.command_var.append("-maxrate:v")
if maxrate > (devedeng.project.devede_project.svcd_max_bps_base[0] * 1000): if maxrate > (devedeng.project.devede_project.svcd_max_bps_base[0] * 1000):
maxrate = devedeng.project.devede_project.svcd_max_bps_base[ maxrate = devedeng.project.devede_project.svcd_max_bps_base[0] * 1000
0] * 1000
self.command_var.append(str(maxrate)) self.command_var.append(str(maxrate))
if not pass2:
self.command_var.append("-minrate:v") self.command_var.append("-minrate:v")
if minrate < (devedeng.project.devede_project.svcd_min_bps * 1000): if minrate < (devedeng.project.devede_project.svcd_min_bps * 1000):
minrate = (devedeng.project.devede_project.svcd_min_bps * 1000) minrate = (devedeng.project.devede_project.svcd_min_bps * 1000)
@ -470,14 +473,14 @@ class ffmpeg(devedeng.executor.executor):
if (vcd == False) and (file_project.no_reencode_audio_video == False): if (vcd == False) and (file_project.no_reencode_audio_video == False):
self.command_var.append("-b:a") self.command_var.append("-b:a")
self.command_var.append(str(file_project.audio_rate_final) + "k") self.command_var.append(str(file_project.audio_rate_final*1000))
self.command_var.append("-b:v") self.command_var.append("-b:v")
self.command_var.append(str(file_project.video_rate_final) + "k") self.command_var.append(str(file_project.video_rate_final*1000))
if file_project.two_pass_encoding == True: if file_project.two_pass_encoding == True:
self.command_var.append("-passlogfile") self.command_var.append("-passlogfile")
self.command_var.append(output_file) self.command_var.append(output_file + ".passlog")
self.command_var.append("-pass") self.command_var.append("-pass")
if pass2: if pass2:
self.command_var.append("2") self.command_var.append("2")
@ -515,6 +518,8 @@ class ffmpeg(devedeng.executor.executor):
self.command_var.append("-acodec") self.command_var.append("-acodec")
if use_mp2: if use_mp2:
self.command_var.append("mp2") self.command_var.append("mp2")
if (audio_rate > 384):
audio_rate = 384 # max bitrate for mp2
else: else:
self.command_var.append("ac3") self.command_var.append("ac3")
self.command_var.append("-s") self.command_var.append("-s")