如何在Pytube中合并音频和视频?

时间:2019-10-01 12:14:55

标签: python-3.x pytube audio-video-sync

我正在尝试编写代码以在Python 3.6上使用Pytube下载YouTube视频。但是对于大多数视频,渐进式下载(同一文件中的音频和视频)格式仅可用于360p。因此,我想分别下载音频和视频文件并将其合并。我可以下载音频和视频文件。如何将两个文件合并在一起?

4 个答案:

答案 0 :(得分:1)

如果您一直收到没有音频的视频,那是因为来自 pytube 的自适应流媒体。一种解决方法是下载视频和音频...然后将它们与 ffpmeg 合并。

例如,像这样可以同时获取音频和视频(音频部分改编自 here

from pytube import YouTube
import os

youtube = YouTube('https://youtu.be/ksu-zTG9HHg')
video = youtube.streams.filter(res="1080p").first().download()
os.rename(video,"video_1080.mp4")
audio = youtube.streams.filter(only_audio=True)
audio[0].download()

然后是 ffmpeg 部分(改编自 herehere),您可以在 Windows 上按照 this procedure 进行设置,然后运行类似

ffmpeg -i video.mp4 -i audio.mp4 -c:v copy -c:a aac output.mp4

答案 1 :(得分:0)

基本上,我找不到在WebDynpro object中融合音频和视频的任何方法,但是您可以使用Pytube进行混合。

首先,您必须安装ffmpeg

  1.   

    ffmpeg Windows的安装指南

  2.   

    ffmpegUbuntu

sudo apt install ffmpeg的python包装器添加依赖项ffmpeg-python

  1.   

    ffmpeg

现在我们准备使用此代码段

pip install ffmpeg-python

有关更多信息,import ffmpeg video_stream = ffmpeg.input('Of Monsters and Men - Wild Roses.mp4') audio_stream = ffmpeg.input('Of Monsters and Men - Wild Roses_audio.mp4') ffmpeg.output(audio_stream, video_stream, 'out.mp4').run() API References

答案 2 :(得分:0)

使用 ffmpeg 合并音频和视频

下载视频和音频文件(分别为“videoplayback.mp4”和“videoplayback.m4a”)后,您可以通过以下方式将它们合并为一个文件:

如果是 MP4 格式(所有,1440p 60fps 和 2160p 60fps 除外):

ffmpeg -i videoplayback.mp4 -i videoplayback.m4a -c:v copy -c:a copy output.mp4

如果是 WebM 格式(1440p 60fps 和 2160p 60fps):

ffmpeg -i videoplayback.webm -i videoplayback.m4a -c:v copy -c:a copy output.mkv

等待 ffmpeg 完成将音频和视频合并到一个名为“output.mp4”的文件中。

答案 3 :(得分:0)

如何将下载的音频文件转换为 mp3?

您需要在命令提示符窗口中执行以下命令:

ffmpeg -i INPUT_FILE -ab BITRATE -vn OUTPUT_FILE

示例:

ffmpeg -i videoplayback.m4a -ab 128000 -vn music.mp3

示例:2(无比特率)

ffmpeg -i videoplayback.m4a -vn music.mp3