文章目录
前言
从youtube下载了一些4k高清视频,然而没有声音,
如果下载360p视频则有声音,变着法要求付费下载带声音的高清视频
然而,可以选择将两者同时下载下来,使用python提取出360p的视频声音,然后再合并到高清视频里就行了
这样就得到了一部高清有声音的视频了
提取音频,合并音频和视频
安装包
pip install ffmpeg moviepy
ffmpeg是个神器,m3u8分段ts网页视频只要知道m3u8的地址也能合成下载,油猴插件里有一个网页m3u8侦探器插件,装上后所有的分段视频都能被标示出来,分段下载后自动合成mp4文件,十分好用,谁用谁知道
案例
import moviepy.editor as mp
import os
from moviepy import *
import ffmpeg
from moviepy.editor import *
# 分离视频中的音频
def extract_audio(videos_file_path):
my_clip = mp.VideoFileClip(videos_file_path)
return my_clip
# 比较快的合并视频和音频方式
def merge(myMp4,myMp3,resultPath):
video = VideoFileClip(myMp4)
audio = AudioFileClip(myMp3)
video_merge = video.set_audio(audio)
video_merge.write_videofile(resultPath)
# os.remove('{title}.mp4')
#比较慢的合并方式
def merge1(myMp4,myMp3,resultPath):
audio = ffmpeg.input(myMp3)
video = ffmpeg.input(myMp4)
print("合并视音频")
out = ffmpeg.output(video, audio, resultPath)
out.run()
# os.remove('{title}.mp3')
print("完成")
if __name__ == "__main__":
# 分离音频
bathPath=r"C:\Users\Administrator.DESKTOP-KMH7HN6\Downloads\Video"
file_path = bathPath+'\\1.mp4'
resultMusic=bathPath+"\\1.mp3"
my_clip = extract_audio(file_path)
my_clip.audio.write_audiofile(resultMusic)
# 合并视频
myMp4=bathPath+"\\2.mp4"
myMp3=bathPath+"\\1.mp3"
resultPath=bathPath+"\\3.mp4"
merge(myMp4,myMp3,resultPath)
# merge1(myMp4,myMp3)