@@ -15,6 +15,7 @@ def h264_144p(
1515 threads : FFMPEG . threads ,
1616 audio_bit_rate : '128k' ,
1717 audio_sample_rate : 48_000 ,
18+ audio_channels : 2 ,
1819 video_preset : 'ultrafast' ,
1920 video_profile : 'baseline' ,
2021 frame_rate : 30 ,
@@ -29,6 +30,7 @@ def h264_144p(
2930 threads :,
3031 audio_bit_rate :,
3132 audio_sample_rate :,
33+ audio_channels :,
3234 video_preset :,
3335 video_profile :,
3436 frame_rate :,
@@ -47,6 +49,7 @@ def h264_240p(
4749 threads : FFMPEG . threads ,
4850 audio_bit_rate : '128k' ,
4951 audio_sample_rate : 48_000 ,
52+ audio_channels : 2 ,
5053 video_preset : 'ultrafast' ,
5154 video_profile : 'baseline' ,
5255 frame_rate : 30 ,
@@ -61,6 +64,7 @@ def h264_240p(
6164 threads :,
6265 audio_bit_rate :,
6366 audio_sample_rate :,
67+ audio_channels :,
6468 video_preset :,
6569 video_profile :,
6670 frame_rate :,
@@ -79,6 +83,7 @@ def h264_360p(
7983 threads : FFMPEG . threads ,
8084 audio_bit_rate : '128k' ,
8185 audio_sample_rate : 48_000 ,
86+ audio_channels : 2 ,
8287 video_preset : 'ultrafast' ,
8388 video_profile : 'baseline' ,
8489 frame_rate : 30 ,
@@ -93,6 +98,7 @@ def h264_360p(
9398 threads :,
9499 audio_bit_rate :,
95100 audio_sample_rate :,
101+ audio_channels :,
96102 video_preset :,
97103 video_profile :,
98104 frame_rate :,
@@ -111,6 +117,7 @@ def h264_480p(
111117 threads : FFMPEG . threads ,
112118 audio_bit_rate : '128k' ,
113119 audio_sample_rate : 48_000 ,
120+ audio_channels : 2 ,
114121 video_preset : 'fast' ,
115122 video_profile : 'main' ,
116123 frame_rate : 30 ,
@@ -125,6 +132,7 @@ def h264_480p(
125132 threads :,
126133 audio_bit_rate :,
127134 audio_sample_rate :,
135+ audio_channels :,
128136 video_preset :,
129137 video_profile :,
130138 frame_rate :,
@@ -143,6 +151,7 @@ def h264_720p(
143151 threads : FFMPEG . threads ,
144152 audio_bit_rate : '128k' ,
145153 audio_sample_rate : 48_000 ,
154+ audio_channels : 2 ,
146155 video_preset : 'fast' ,
147156 video_profile : 'high' ,
148157 frame_rate : 60 ,
@@ -157,6 +166,7 @@ def h264_720p(
157166 threads :,
158167 audio_bit_rate :,
159168 audio_sample_rate :,
169+ audio_channels :,
160170 video_preset :,
161171 video_profile :,
162172 frame_rate :,
@@ -175,6 +185,7 @@ def h264_1080p(
175185 threads : FFMPEG . threads ,
176186 audio_bit_rate : '128k' ,
177187 audio_sample_rate : 48_000 ,
188+ audio_channels : 2 ,
178189 video_preset : 'fast' ,
179190 video_profile : 'high' ,
180191 frame_rate : 60 ,
@@ -189,6 +200,7 @@ def h264_1080p(
189200 threads :,
190201 audio_bit_rate :,
191202 audio_sample_rate :,
203+ audio_channels :,
192204 video_preset :,
193205 video_profile :,
194206 frame_rate :,
@@ -207,6 +219,7 @@ def h264_1440p(
207219 threads : FFMPEG . threads ,
208220 audio_bit_rate : '128k' ,
209221 audio_sample_rate : 48_000 ,
222+ audio_channels : 2 ,
210223 video_preset : 'fast' ,
211224 video_profile : 'high' ,
212225 frame_rate : 60 ,
@@ -221,6 +234,7 @@ def h264_1440p(
221234 threads :,
222235 audio_bit_rate :,
223236 audio_sample_rate :,
237+ audio_channels :,
224238 video_preset :,
225239 video_profile :,
226240 frame_rate :,
@@ -239,6 +253,7 @@ def h264_4k(
239253 threads : FFMPEG . threads ,
240254 audio_bit_rate : '128k' ,
241255 audio_sample_rate : 48_000 ,
256+ audio_channels : 2 ,
242257 video_preset : 'fast' ,
243258 video_profile : 'high' ,
244259 frame_rate : 60 ,
@@ -253,6 +268,7 @@ def h264_4k(
253268 threads :,
254269 audio_bit_rate :,
255270 audio_sample_rate :,
271+ audio_channels :,
256272 video_preset :,
257273 video_profile :,
258274 frame_rate :,
@@ -267,14 +283,16 @@ def h264_4k(
267283
268284 # Preset to encode H.264 video files.
269285 class H264 < Preset
270- attr_reader :threads , :audio_bit_rate , :audio_sample_rate , :video_preset , :video_profile ,
286+ attr_reader :threads , :audio_bit_rate , :audio_sample_rate , :audio_channels , : video_preset, :video_profile ,
271287 :frame_rate , :constant_rate_factor , :pixel_format ,
272288 :max_width , :max_height
273289
274290 # @param name [String] The name of the preset.
275291 # @param filename [String] The filename format of the output.
276292 # @param metadata [Object] The metadata to associate with the preset.
277293 # @param audio_bit_rate [String] The audio bit rate to use.
294+ # @param audio_sample_rate [Integer] The audio sample rate to use.
295+ # @param audio_channels [Integer, nil] The number of audio channels to use (nil to preserve source).
278296 # @param video_preset [String] The video preset to use.
279297 # @param video_profile [String] The video profile to use.
280298 # @param frame_rate [Integer] The frame rate to use.
@@ -290,6 +308,7 @@ def initialize(
290308 threads : FFMPEG . threads ,
291309 audio_bit_rate : '128k' ,
292310 audio_sample_rate : 48_000 ,
311+ audio_channels : 2 ,
293312 video_preset : 'fast' ,
294313 video_profile : 'high' ,
295314 frame_rate : 30 ,
@@ -310,6 +329,7 @@ def initialize(
310329 @threads = threads
311330 @audio_bit_rate = audio_bit_rate
312331 @audio_sample_rate = audio_sample_rate
332+ @audio_channels = audio_channels
313333 @video_preset = video_preset
314334 @video_profile = video_profile
315335 @frame_rate = frame_rate
@@ -340,6 +360,7 @@ def initialize(
340360 map media . audio_mapping_id do
341361 audio_bit_rate preset . audio_bit_rate
342362 audio_sample_rate preset . audio_sample_rate
363+ audio_channels preset . audio_channels if preset . audio_channels
343364 end
344365 end
345366 end
0 commit comments