
Что еще более странно, артефакты ЗВУЧАТ как рассказчик. Как будто начинается следующее предложение, и он только начинает произносить первые 0,1 секунды первого слова, которое затем резко обрывается. Однако это не имеет особого смысла в качестве объяснения, поскольку весь этот код — это берет один аудиофайл и накладывает на него видеоэлементы.
Хотя есть еще кое-что к моему коду, вот соответствующие разделы:
Код: Выделить всё
current_audio_file = os.path.join(current_video_folder_path, f'{current_video_title_template}-part-{current_video_section}.mp3')
audio_clip = AudioFileClip(current_audio_file)
final_clip = concatenate_videoclips(clips).subclip(0, audio_clip.duration)
final_clip = final_clip.set_audio(audio_clip)
final_clip_path = os.path.join(current_video_folder_path, f"video-part-{current_video_section}.mp4")
final_clip.write_videofile(final_clip_path, codec="libx264", audio_codec="aac")
Моя нынешняя лучшая идея — это плохое, но функциональное обходное решение. : Просто вырежьте последние 0,2 секунды с конца каждого аудиофайла. Я сделал это здесь, как показано ниже, и это помогло устранить артефакт. Судя по всему, это указывает на то, что он может быть сгенерирован в процессе преобразования в элемент AudioFileClip()?
Код: Выделить всё
current_audio_file = os.path.join(current_video_folder_path, f'{current_video_title_template}-part-{current_video_section}.mp3')
audio_clip = AudioFileClip(current_audio_file)
# Trim the last 0.X seconds from the audio
# this is a poor, but functional, workaround to remove those weird artifacts at end of certain audio clips.
audio_duration = audio_clip.duration
audio_clip = audio_clip.subclip(0, max(0, audio_duration - 0.2))
Код: Выделить всё
current_audio_file = os.path.join(current_video_folder_path, f'{current_video_title_template}-part-{current_video_section}.mp3')
audio_clip = AudioFileClip(current_audio_file)
# Export the trimmed audio for inspection
debug_audio_path = os.path.join(current_video_folder_path, f'debug_{current_video_section}.mp3')
audio_clip.write_audiofile(debug_audio_path)
exit()
p>
В любом случае, если кто-нибудь сталкивался с этим раньше или у него есть идеи, мне было бы любопытно.
Подробнее здесь: https://stackoverflow.com/questions/778 ... creating-v