mirror of
https://github.com/comfyanonymous/ComfyUI.git
synced 2026-02-09 04:52:32 +08:00
Support 5.1 audio layout on save
This commit is contained in:
parent
8de2aecb03
commit
c202105939
@ -426,7 +426,10 @@ class VideoFromComponents(VideoInput):
|
|||||||
audio_stream: Optional[av.AudioStream] = None
|
audio_stream: Optional[av.AudioStream] = None
|
||||||
if self.__components.audio:
|
if self.__components.audio:
|
||||||
audio_sample_rate = int(self.__components.audio['sample_rate'])
|
audio_sample_rate = int(self.__components.audio['sample_rate'])
|
||||||
audio_stream = output.add_stream('aac', rate=audio_sample_rate)
|
waveform = self.__components.audio['waveform']
|
||||||
|
waveform = waveform[0, :, :math.ceil((audio_sample_rate / frame_rate) * self.__components.images.shape[0])]
|
||||||
|
layout = {1: 'mono', 2: 'stereo', 6: '5.1'}.get(waveform.shape[0], 'stereo')
|
||||||
|
audio_stream = output.add_stream('aac', rate=audio_sample_rate, layout=layout)
|
||||||
|
|
||||||
# Encode video
|
# Encode video
|
||||||
for i, frame in enumerate(self.__components.images):
|
for i, frame in enumerate(self.__components.images):
|
||||||
@ -441,9 +444,7 @@ class VideoFromComponents(VideoInput):
|
|||||||
output.mux(packet)
|
output.mux(packet)
|
||||||
|
|
||||||
if audio_stream and self.__components.audio:
|
if audio_stream and self.__components.audio:
|
||||||
waveform = self.__components.audio['waveform']
|
frame = av.AudioFrame.from_ndarray(waveform.float().cpu().numpy(), format='fltp', layout=layout)
|
||||||
waveform = waveform[:, :, :math.ceil((audio_sample_rate / frame_rate) * self.__components.images.shape[0])]
|
|
||||||
frame = av.AudioFrame.from_ndarray(waveform.movedim(2, 1).reshape(1, -1).float().cpu().numpy(), format='flt', layout='mono' if waveform.shape[1] == 1 else 'stereo')
|
|
||||||
frame.sample_rate = audio_sample_rate
|
frame.sample_rate = audio_sample_rate
|
||||||
frame.pts = 0
|
frame.pts = 0
|
||||||
output.mux(audio_stream.encode(frame))
|
output.mux(audio_stream.encode(frame))
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user