这是 python 脚本。
from moviepy.editor import *
videoclip = VideoFileClip("1_0_1522314608.m4v")
audioclip = AudioFileClip("jam_1_Mix.mp3")
new_audioclip = CompositeAudioClip([videoclip.audio, audioclip])
videoclip.audio = new_audioclip
videoclip.write_videofile("new_filename.mp4")
然后返回
[MoviePy] >>>> Building video new_filename.mp4 [MoviePy] Writing audio in new_filenameTEMP_MPY_wvf_snd.mp3 100%|████████████████████████████████████████| 795/795 [00:01<00:00, 466.23it/s] [MoviePy] Done. [MoviePy] Writing video new_filename.mp4 100%|███████████████████████████████████████| 1072/1072 [01:26<00:00, 10.31it/s] [MoviePy] Done. [MoviePy] >>>> Video ready: new_filename.mp4
1_0_1522314608.m4v 和 jam_1_Mix.mp3 它们都有声音。
但是新文件new_filename.mp4没有声音。
我是不是做错了什么?请帮忙。谢谢。
最佳答案
我有类似的问题。我发现有时音频确实存在,但不会被所有播放器播放。 (Quicktime 不起作用,但 VLC 可以)。 我终于使用了类似的东西:
video_clip.set_audio(composite_audio).write_videofile(
composite_file_path,
fps=None,
codec="libx264",
audio_codec="aac",
bitrate=None,
audio=True,
audio_fps=44100,
preset='medium',
audio_nbytes=4,
audio_bitrate=None,
audio_bufsize=2000,
# temp_audiofile="/tmp/temp.m4a",
# remove_temp=False,
# write_logfile=True,
rewrite_audio=True,
verbose=True,
threads=None,
ffmpeg_params=None,
progress_bar=True)
几点说明:
- aac 似乎比 mp3 更适合 quicktime。
- 日志文件生成有助于诊断幕后发生的事情
- temp_audiofile 可以自行测试
set_audio()
返回一个新剪辑并保持调用它的对象不变设置音频剪辑持续时间以匹配视频有助于:
composite_audio = composite_audio.subclip(0, video_clip.duration) composite_audio.set_duration(video_clip.duration)
关于python - 为什么我在 python moviepy 中使用 CompositeAudioClip 时没有声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49568085/