为什么 单声道,单声道转成的立体声 在windwos11及Ubuntu20下都没办法用ffmpeg 将其替换入mp4的音轨? 但是wsl下的ffmpeg又可以呢?
import os
s_video = 'CNsQ15M7dzQ.mp4'
voiceFileNameAndPath = 'CNsQ15M7dzQ_zh.wav' #---------------------机器TTS的单声道音轨
# os.system(f"""ffmpeg -y -i {voiceFileNameAndPath} -ar 44100 -ac 2 {voiceFileNameAndPath}""")
insturmentFileNameAndPath ='CNsQ15M7dzQ_insturment.wav'
# tmp_srtZhFileNameAndPath = 'CNsQ15M7dzQ_zh_merge.srt_break.srt'
tmp_srtZhFileNameAndPath = 'CNsQ15M7dzQ_en_merge.srt'
outputFileNameAndPath = 'CNsQ15M7dzQ_zh.mp4'
command = f'ffmpeg -y -i {s_video} -i {insturmentFileNameAndPath} -i {voiceFileNameAndPath} -i {tmp_srtZhFileNameAndPath} ' #不压英文字幕
command += '-map 0:v '
command += '-map 1:a -map 2:a '
command += '-filter_complex "[1:a][2:a]amix=inputs=2" '
command += '-scodec mov_text -map 3 -metadata:s:s:0 language=zh -metadata:s:s:0 title="zh" '
command += '-c:v libx264 -c:a aac -b:v 3000k -b:a 128k '
command += f'-vf "subtitles={tmp_srtZhFileNameAndPath}:fontsdir=/home/studio-lab-user/.conda/envs/studiolab/fonts/simhei.ttf:force_style=\'Fontsize=9,Fontname=黑体,MarginV=35,BorderStyle=1,Outline=1,Shadow=0,PrimaryColour=&HFFFFFF&,OutlineColour=&H853F1B&,Spacing=0\'" '
command += f'{outputFileNameAndPath}'
os.system(f"""{command}""")
# os.system(f"""ffmpeg -i {s_video} -i {voiceFileNameAndPath} -map 0:v -map 1:a -codec:v copy -codec:a aac output1.mp4""")
voiceFileNameAndPath = 'CNsQ15M7dzQ_zh1.wav' #---------------------机器TTS的单声道音轨转为2声道的音轨
outputFileNameAndPath = 'CNsQ15M7dzQ_zh1.mp4'
command = f'ffmpeg -y -i {s_video} -i {insturmentFileNameAndPath} -i {voiceFileNameAndPath} -i {tmp_srtZhFileNameAndPath} ' #不压英文字幕
command += '-map 0:v '
command += '-map 1:a -map 2:a '
command += '-filter_complex "[1:a][2:a]amix=inputs=2" '
command += '-scodec mov_text -map 3 -metadata:s:s:0 language=zh -metadata:s:s:0 title="zh" '
command += '-c:v libx264 -c:a aac -b:v 3000k -b:a 128k '
command += f'-vf "subtitles={tmp_srtZhFileNameAndPath}:fontsdir=/home/studio-lab-user/.conda/envs/studiolab/fonts/simhei.ttf:force_style=\'Fontsize=9,Fontname=黑体,MarginV=35,BorderStyle=1,Outline=1,Shadow=0,PrimaryColour=&HFFFFFF&,OutlineColour=&H853F1B&,Spacing=0\'" '
command += f'{outputFileNameAndPath}'
os.system(f"""{command}""")
voiceFileNameAndPath = 'love.wav' #--------------------- 人声2声道音轨
outputFileNameAndPath = 'love.mp4'
command = f'ffmpeg -y -i {s_video} -i {insturmentFileNameAndPath} -i {voiceFileNameAndPath} -i {tmp_srtZhFileNameAndPath} ' #不压英文字幕
command += '-map 0:v '
command += '-map 1:a -map 2:a '
command += '-filter_complex "[1:a][2:a]amix=inputs=2" '
command += '-scodec mov_text -map 3 -metadata:s:s:0 language=zh -metadata:s:s:0 title="zh" '
command += '-c:v libx264 -c:a aac -b:v 3000k -b:a 128k '
command += f'-vf "subtitles={tmp_srtZhFileNameAndPath}:fontsdir=/home/studio-lab-user/.conda/envs/studiolab/fonts/simhei.ttf:force_style=\'Fontsize=9,Fontname=黑体,MarginV=35,BorderStyle=1,Outline=1,Shadow=0,PrimaryColour=&HFFFFFF&,OutlineColour=&H853F1B&,Spacing=0\'" '
command += f'{outputFileNameAndPath}'
os.system(f"""{command}""")
|