Python 3.x 如何在Pytube中组合音频和视频?
我正在尝试编写一个代码,使用Python3.6上的Pytube下载YouTube视频。但对于大多数视频,渐进式下载(音频和视频在同一文件中)格式仅适用于360p。所以我想分别下载音频和视频文件,并将其合并。我能够下载音频和视频文件。如何将这两个文件组合在一起?基本上,我找不到任何方法在Python 3.x 如何在Pytube中组合音频和视频?,python-3.x,pytube,audio-video-sync,Python 3.x,Pytube,Audio Video Sync,我正在尝试编写一个代码,使用Python3.6上的Pytube下载YouTube视频。但对于大多数视频,渐进式下载(音频和视频在同一文件中)格式仅适用于360p。所以我想分别下载音频和视频文件,并将其合并。我能够下载音频和视频文件。如何将这两个文件组合在一起?基本上,我找不到任何方法在Pytube中对音频和视频进行边缘化,但您可以使用ffmpeg进行muxing 首先,您必须安装ffmpeg ffmpeg的安装指南 对于Ubuntujustsudo-apt-install-ffmpeg
Pytube
中对音频和视频进行边缘化,但您可以使用ffmpeg
进行muxing
首先,您必须安装ffmpeg
ffmpeg
的安装指南
Ubuntu
justsudo-apt-install-ffmpeg
ffmpeg-python
一个ffmpeg
pip安装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()
有关更多信息,请参见使用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
ffmpeg -i videoplayback.webm -i videoplayback.m4a -c:v copy -c:a copy output.mkv
ffmpeg -i videoplayback.m4a -ab 128000 -vn music.mp3
如果是WebM格式(1440p 60fps和2160p 60fps):
ffmpeg -i videoplayback.mp4 -i videoplayback.m4a -c:v copy -c:a copy output.mp4
ffmpeg -i videoplayback.webm -i videoplayback.m4a -c:v copy -c:a copy output.mkv
ffmpeg -i videoplayback.m4a -ab 128000 -vn music.mp3
等待ffmpeg完成将音频和视频合并为一个名为“output.mp4”的文件。如何将下载的音频文件转换为mp3? 您需要在命令提示符窗口中执行以下命令:
ffmpeg -i INPUT_FILE -ab BITRATE -vn OUTPUT_FILE
示例:
ffmpeg -i videoplayback.mp4 -i videoplayback.m4a -c:v copy -c:a copy output.mp4
ffmpeg -i videoplayback.webm -i videoplayback.m4a -c:v copy -c:a copy output.mkv
ffmpeg -i videoplayback.m4a -ab 128000 -vn music.mp3
示例:2(无比特率)
如果你一直得到一个没有音频的视频,那是因为pytube的自适应流媒体。解决方法是下载视频和音频。。。然后将它们与ffpmeg合并 例如,类似这样的东西可以同时获得音频和视频(音频部分改编自) 然后是ffmpeg部分(改编自和),您可以在Windows上设置它,然后运行类似
ffmpeg -i video.mp4 -i audio.mp4 -c:v copy -c:a aac output.mp4
您能提供一些您已经尝试过的代码示例吗?你的问题具体在哪里?你的问题似乎太宽泛了,不能简明扼要地回答。()请避免在回答中提出疑问,即使引用的是问句或是修辞性的。你有可能被误读为提出问题而不是回答,即你的问题被标记为不是答案。