dam*_*iel 4 python audio opencv moviepy
我正在尝试将一个 mp3 音频文件添加到我使用 MoviePy 用图像创建的视频剪辑中。当脚本运行时,它会创建 mp4 文件并成功播放,但是没有音频。我不太确定为什么,并且似乎无法找到大量关于此的一般文档。MoviePy 对我来说很新,所以任何帮助将不胜感激 - 谢谢!
def make_video(images):
image_clips = []
for img in images:
if not os.path.exists(img):
raise FileNotFoundError(img)
ic = ImageClip(img).set_duration(3)
image_clips.append(ic)
video = concatenate(image_clips, method="compose")
video.set_audio(AudioFileClip("audio.mp3"))
video.write_videofile("mp4_with_audio.mp4", fps=60, codec="mpeg4")
Run Code Online (Sandbox Code Playgroud)
rac*_*t99 25
这对我有用:
clip.write_videofile(out_path,
codec='libx264',
audio_codec='aac',
temp_audiofile='temp-audio.m4a',
remove_temp=True
)
Run Code Online (Sandbox Code Playgroud)
在这里找到它: https: //github.com/Zulko/moviepy/issues/51
小智 10
诚然,这个问题很老,但在该问题的搜索结果中排名靠前。我有同样的问题,并认为解决方案可以澄清。
线路:
video.set_audio(AudioFileClip("audio.mp3"))
Run Code Online (Sandbox Code Playgroud)
实际上不会更改“视频”对象的音轨,而是返回附加了新 AudioFileClip 的对象副本。
这意味着该方法:
video.write_videofile("mp4_with_audio.mp4", fps=60, codec="mpeg4")
Run Code Online (Sandbox Code Playgroud)
不会用新的音轨写入最终文件,因为“视频”对象保持不变。
按照以下更改脚本为我解决了这个问题。
video_with_new_audio = video.set_audio(AudioFileClip("audio.mp3"))
video_with_new_audio.write_videofile("mp4_with_audio.mp4", fps=60, codec="mpeg4")
Run Code Online (Sandbox Code Playgroud)
另请参阅文档
| 归档时间: |
|
| 查看次数: |
4824 次 |
| 最近记录: |