取出影片声音或加入声音
这篇文章会介绍使用 Python 的 pydub 和 moviepy 第三方函数库,取出影片的声音并将声音储存为 mp3,接着也会使用 moviepy 函数库,将影片加入另外一段声音。
本篇使用的 Python 版本为 3.7.12,所有范例可使用 Google Colab 实作,不用安装任何软件 ( 参考:使用 Google Colab )
使用 pydub 取出影片声音,储存为 mp3
参考“取得声音信息”文章,安装 pydub 函数库,安装后使用下方的程序码,就能读取影片的声音,并将声音储存为 mp3。
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # 使用 Colab 要換路徑使用
from pydub import AudioSegment # 載入 pydub 的 AudioSegment 模組
video = AudioSegment.from_file("oxxostudio.mp4") # 讀取 mp4 檔案
output.export('video.mp3') # 講讀取的聲音輸出為 mp3
print('ok')
参考“声音音量调整”和“剪辑指定长度的声音”两篇文章,将声音放大或剪辑后,再输出为 mp3。
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # 使用 Colab 要換路徑使用
from pydub import AudioSegment
video = AudioSegment.from_file("oxxostudio.mp4")
output = video[2000:10000] # 剪輯聲音
output = output[:] + 10 # 放大聲音
output.export('output.mp3')
print('ok')
使用 moviepy 取出影片声音,储存为 mp3
除了使用 pydub 函数库,也可以输入下列指令安装 moviepy 函数库 ( 本机环境使用 pip 或 pip3 ),透过 moviepy 取出影片的声音。
!pip install moviepy
安装后,执行下方的程序码读取影片,并将影片的声音取出,输出为 mp3 ( 相关参数参考 write_audiofile )。
如果在读档或存档的过程中遇到找不到 ffmpeg 软件包,就再使用 pip install ( Anaconda 可使用 conda install ) 的方式安装 ffmpeg,ffmpeg 的目的在于提供影片存档必要的编码。
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # 使用 Colab 要換路徑使用
from moviepy.editor import *
video = VideoFileClip("oxxostudio.mp4") # 讀取影片
audio = video.audio # 取出聲音
audio.write_audiofile("song.mp3") # 輸出聲音為 mp3
print('ok')
使用 moviepy,替影片加入声音
使用下方的指令在 Colab 里安装 moviepy 函数库 ( 本机环境使用 pip 或 pip3 )。
!pip install moviepy
安装后,执行下方的程序码读取影片和声音,并在 output 方法里将两者合并后输出 ( 注意,合并后新的声音会取代掉原本影片的声音,相关参数参考 write_videofile ) )。
如果在读档或存档的过程中遇到找不到 ffmpeg 软件包,就再使用 pip install ( Anaconda 可使用 conda install ) 的方式安装 ffmpeg,ffmpeg 的目的在于提供影片存档必要的编码。
import os
os.chdir('/content/drive/MyDrive/Colab Notebooks') # 使用 Colab 要換路徑使用
from moviepy.editor import *
video = VideoFileClip("oxxostudio.mp4") # 讀取影片
audio = AudioFileClip("song.mp3") # 讀取音樂
output = video2.set_audio(audio) # 合併影片與聲音
output.write_videofile("output.mp4", temp_audiofile="temp-audio.m4a", remove_temp=True, codec="libx264", audio_codec="aac")
# 注意要設定相關參數,不然轉出來的影片會沒有聲音
print('ok')
微信扫码关注
抖音扫码关注