mirror of
				https://github.com/Wan-Video/Wan2.1.git
				synced 2025-11-04 06:15:17 +00:00 
			
		
		
		
	fixed fmpeg crasg on linux
This commit is contained in:
		
							parent
							
								
									7b6c6e11b5
								
							
						
					
					
						commit
						b2c3416bcd
					
				@ -488,6 +488,8 @@ def extract_audio_tracks(source_video, verbose=False, query_only=False):
 | 
			
		||||
    return file_paths, metadata
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
import subprocess
 | 
			
		||||
 | 
			
		||||
import subprocess
 | 
			
		||||
 | 
			
		||||
def combine_and_concatenate_video_with_audio_tracks(
 | 
			
		||||
@ -516,10 +518,10 @@ def combine_and_concatenate_video_with_audio_tracks(
 | 
			
		||||
        if source_audio_duration == 0:
 | 
			
		||||
            if n:
 | 
			
		||||
                inputs += ['-i', n]
 | 
			
		||||
                filters.append(f'[{idx}:a]apad=pad_dur=100[aout{i}];')
 | 
			
		||||
                filters.append(f'[{idx}:a]apad=pad_dur=100[aout{i}]')
 | 
			
		||||
                idx += 1
 | 
			
		||||
            else:
 | 
			
		||||
                filters.append(f'anullsrc=r={audio_sampling_rate}:cl=mono,apad=pad_dur=100[aout{i}];')
 | 
			
		||||
                filters.append(f'anullsrc=r={audio_sampling_rate}:cl=mono,apad=pad_dur=100[aout{i}]')
 | 
			
		||||
        else:
 | 
			
		||||
            if s:
 | 
			
		||||
                inputs += ['-i', s]
 | 
			
		||||
@ -533,32 +535,32 @@ def combine_and_concatenate_video_with_audio_tracks(
 | 
			
		||||
                if needs_filter:
 | 
			
		||||
                    filters.append(
 | 
			
		||||
                        f'[{idx}:a]aresample={audio_sampling_rate},aformat=channel_layouts=mono,'
 | 
			
		||||
                        f'apad=pad_dur={source_audio_duration},atrim=0:{source_audio_duration},asetpts=PTS-STARTPTS[s{i}];')
 | 
			
		||||
                        f'apad=pad_dur={source_audio_duration},atrim=0:{source_audio_duration},asetpts=PTS-STARTPTS[s{i}]')
 | 
			
		||||
                else:
 | 
			
		||||
                    filters.append(
 | 
			
		||||
                        f'[{idx}:a]apad=pad_dur={source_audio_duration},atrim=0:{source_audio_duration},asetpts=PTS-STARTPTS[s{i}];')
 | 
			
		||||
                        f'[{idx}:a]apad=pad_dur={source_audio_duration},atrim=0:{source_audio_duration},asetpts=PTS-STARTPTS[s{i}]')
 | 
			
		||||
                if lang := meta.get('language'):
 | 
			
		||||
                    metadata_args += ['-metadata:s:a:' + str(i), f'language={lang}']
 | 
			
		||||
                idx += 1
 | 
			
		||||
            else:
 | 
			
		||||
                filters.append(
 | 
			
		||||
                    f'anullsrc=r={audio_sampling_rate}:cl=mono,atrim=0:{source_audio_duration},asetpts=PTS-STARTPTS[s{i}];')
 | 
			
		||||
                    f'anullsrc=r={audio_sampling_rate}:cl=mono,atrim=0:{source_audio_duration},asetpts=PTS-STARTPTS[s{i}]')
 | 
			
		||||
 | 
			
		||||
            if n:
 | 
			
		||||
                inputs += ['-i', n]
 | 
			
		||||
                start = '0' if new_audio_from_start else source_audio_duration
 | 
			
		||||
                filters.append(
 | 
			
		||||
                    f'[{idx}:a]aresample={audio_sampling_rate},aformat=channel_layouts=mono,'
 | 
			
		||||
                    f'atrim=start={start},asetpts=PTS-STARTPTS[n{i}];'
 | 
			
		||||
                    f'[s{i}][n{i}]concat=n=2:v=0:a=1[aout{i}];')
 | 
			
		||||
                    f'atrim=start={start},asetpts=PTS-STARTPTS[n{i}]')
 | 
			
		||||
                filters.append(f'[s{i}][n{i}]concat=n=2:v=0:a=1[aout{i}]')
 | 
			
		||||
                idx += 1
 | 
			
		||||
            else:
 | 
			
		||||
                filters.append(f'[s{i}]apad=pad_dur=100[aout{i}];')
 | 
			
		||||
                filters.append(f'[s{i}]apad=pad_dur=100[aout{i}]')
 | 
			
		||||
 | 
			
		||||
        maps += ['-map', f'[aout{i}]']
 | 
			
		||||
 | 
			
		||||
    cmd = ['ffmpeg', '-y', *inputs,
 | 
			
		||||
           '-filter_complex', ''.join(filters),
 | 
			
		||||
           '-filter_complex', ';'.join(filters),  # ✅ Only change made
 | 
			
		||||
           *maps, *metadata_args,
 | 
			
		||||
           '-c:v', 'copy',
 | 
			
		||||
           '-c:a', audio_codec,
 | 
			
		||||
@ -567,7 +569,7 @@ def combine_and_concatenate_video_with_audio_tracks(
 | 
			
		||||
           '-ac', '1',
 | 
			
		||||
           '-shortest', save_path_tmp]
 | 
			
		||||
 | 
			
		||||
    if verbose :
 | 
			
		||||
    if verbose:
 | 
			
		||||
        print(f"ffmpeg command: {cmd}")
 | 
			
		||||
    try:
 | 
			
		||||
        subprocess.run(cmd, check=True, capture_output=True, text=True)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user