当前位置: 首页 > 知识库问答 >
问题:

在Python中有没有一种快速组合mp3文件和mp4文件的方法?

狄鹏
2023-03-14

我正试图写一个程序,可以下载视频从Reddit帖子。我相信Reddit会分别存储每个帖子的音频和视频,所以我现在正在下载mp3和mp4,然后将它们结合起来制作最终的视频文件。我不太熟悉音频或视频文件或它们是如何存储的,但我认为将两者结合起来会很快计算出来。

然而,合并部分是非常缓慢的,我想知道是否有一个更快的方式,将无声的视频剪辑与音频文件结合,并将其写入我的驱动器?

我目前正在使用moviepy库进行合并。

def download_video(data_url,current_post,subreddit):
    #Get the audio url of Reddit video
    audioURL = data_url + "/audio"
    #Get the soundless video url of reddit video
    videoURL = str(current_post).split("'fallback_url': '")[1].split("'")[0]
    #Get the title of the post
    postname = (current_post['title'])

    #Download the two files as mp4 and mp3
    urllib.request.urlretrieve(videoURL, subreddit + '/video_name.mp4')
    urllib.request.urlretrieve(audioURL, subreddit + '/audio.mp3')

    #Combine the mp3 and mp4
    videoName = str(subreddit + "/" + get_valid_filename(current_post['title'])) +".mp4"
    video = mpe.VideoFileClip(subreddit + '/video_name.mp4')
    video.write_videofile(videoName, audio=subreddit + "/audio.mp3")
    #Remove video file with no audio
    del video
    os.remove(subreddit + '/video_name.mp4')

共有1个答案

东方栋
2023-03-14

您可以尝试使用现有的开源工具之一来实现这一点,比如youtube-dl(它的下载量比它的名字要多得多)。上一个SO线程已经介绍了如何在Python中实现这一点,我刚刚在线程链接和v.redd.it链接上测试了它,并且两者都没有问题。

import youtube_dl

ydl = youtube_dl.YoutubeDL()
with ydl:
    ydl.extract_info("https://www.reddit.com/r/bouldering/comments/fjgmo7/one_of_my_favorite_boulders_from_my_gym_back_home/")

如果这提高了性能,但您不想使用该库,您可以检查它们的源代码,看看它们是如何进行视频和音频组合的。

 类似资料:
  • 问题内容: 我有一些500MB的json文件。如果我使用“平凡”的json.load一次加载所有内容,它将消耗大量内存。 有没有办法部分读取文件?如果它是文本行分隔文件,则可以在行上进行迭代。我正在寻找一个比喻。 有什么建议?谢谢 问题答案: 更新资料 请参阅其他答案以获取建议。 2010年的原始答案,现在已经过时 简短的回答:不。 正确地分割json文件将需要对json对象图有深入的了解。 但是

  • 我有一个小的基本问题。我用的是Mac电脑,我以前在办公室工作。py文件与升华3。我喜欢的一件事是,当Sublime关闭时,对于文件夹中的给定文件——如果我在寻找一些代码——我可以点击空格键,Mac电脑可以快速预览文件。py文件。 现在我在Jupyter笔记本中工作,并将所有内容保存为. ipynb文件。现在我不能点击空格键和浏览文件——我从命令区启动JN,它要慢得多。 我怀疑有更快的方法在浏览器窗

  • 所以我在Protege中构建了一个本体,它有注释和子注释。我的意思是,一个概念可能有一个定义,而这个定义可能有一个注释。 我正在尝试使用Flask应用程序(我正在使用Python解析本体文件)使本体易于查询,但我似乎无法快速获得所有的注释和子注释。 我开始使用包,但它要求您自定义每个单独的注释属性(您不能仅仅获得所有注释属性的列表,因此如果添加类似的属性,您必须返回代码并添加,否则将不会获得它)。

  • 问题内容: 我想生成一个以字母作为键的字典,类似 生成该字典而不是我必须键入它的快速方法是什么? 谢谢你的帮助。 编辑 谢谢大家的解决方案:) nosklo的 解决方案可能是最短的 另外,感谢您提醒我有关Python字符串模块的信息。 问题答案: 我发现此解决方案更加优雅:

  • 我想写一个程序,自动同步未同步的字幕。我想到的解决方案之一是通过某种算法找到人类的语言,并调整其细微之处。我发现的API(Google Speech API、Yandex SpeechKit)与服务器配合使用(这对我来说不是很方便),并且(可能)做了很多不必要的工作来确定到底说了什么,而我只需要知道说了什么。 换句话说,我想给它一个音频文件,然后得到如下内容: 是否有一种解决方案(最好是pytho

  • 我有一个ffmpeg,它可以合并3个mp4视频,然后另一个命令可以将音频从第一个命令添加到输出文件中。命令如下: vid-1。mp4(没有音频流) 有没有在一个命令中执行此操作?我还想将音频添加到在第一个命令中创建的视频中。这可能吗? “ffmpeg-i vid-1.mp4-i vid-2.mp4-i vid-3.mp4-i audio.mp3”的控制台输出