python-从视频中提取音频+将音频和视频合并

前言

从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)

猜你喜欢

转载自blog.csdn.net/lidashent/article/details/126762307