@@ -31,7 +31,7 @@ def build(
3131 audio = build_audio (audio_tracks )
3232 subtitles = build_subtitle (subtitle_tracks )
3333
34- ending = "dev/null && \\ "
34+ ending = "/ dev/null"
3535 if reusables .win_based :
3636 ending = "NUL"
3737
@@ -81,18 +81,24 @@ def build(
8181 if intra_encoding :
8282 x265_params .append ("keyint=1" )
8383
84- if x265_params :
85- beginning += '-x265-params "{}" ' .format (":" .join (x265_params ))
86-
8784 if side_data .cll :
8885 pass
8986
9087 extra_data = "-map_chapters 0 " # -map_metadata 0 # safe to do for rotation?
9188
89+ def get_x265_params (params = ()):
90+ if not isinstance (params , (list , tuple )):
91+ params = [params ]
92+ all_params = x265_params + list (params )
93+ return '-x265-params "{}" ' .format (":" .join (all_params )) if all_params else ""
94+
9295 if bitrate :
93- command_1 = f'{ beginning } :pass=1 -passlogfile "<tempfile.1.log>" -b:v { bitrate } -an -f mp4 { ending } '
96+ command_1 = (
97+ f'{ beginning } { get_x265_params (["pass=1" ])} '
98+ f'-passlogfile "<tempfile.1.log>" -b:v { bitrate } -preset { preset } -an -sn -dn -f mp4 { ending } '
99+ )
94100 command_2 = (
95- f'{ beginning } : pass=2 -passlogfile "<tempfile.1.log>" '
101+ f'{ beginning } { get_x265_params ([ " pass=2" ]) } -passlogfile "<tempfile.1.log>" '
96102 f'-b:v { bitrate } -preset { preset } { audio } { subtitles } { extra_data } "{{output}}"'
97103 )
98104 return [
@@ -101,7 +107,10 @@ def build(
101107 ]
102108
103109 elif crf :
104- command = f'{ beginning } -crf { crf } -preset { preset } { audio } { subtitles } { extra_data } "{{output}}"'
110+ command = (
111+ f"{ beginning } { get_x265_params ()} -crf { crf } "
112+ f'-preset { preset } { audio } { subtitles } { extra_data } "{{output}}"'
113+ )
105114 return [Command (command , ["ffmpeg" , "output" ], False , name = "Single pass CRF" , exe = "ffmpeg" )]
106115
107116 else :
0 commit comments