Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何在Pytube中组合音频和视频?_Python 3.x_Pytube_Audio Video Sync - Fatal编程技术网

Python 3.x 如何在Pytube中组合音频和视频?

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

我正在尝试编写一个代码,使用Python3.6上的Pytube下载YouTube视频。但对于大多数视频,渐进式下载(音频和视频在同一文件中)格式仅适用于360p。所以我想分别下载音频和视频文件,并将其合并。我能够下载音频和视频文件。如何将这两个文件组合在一起?

基本上,我找不到任何方法在
Pytube
中对音频和视频进行边缘化,但您可以使用
ffmpeg
进行muxing

首先,您必须安装
ffmpeg

  • ffmpeg
    的安装指南

  • 对于
    Ubuntu
    just
    sudo-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
    

    您能提供一些您已经尝试过的代码示例吗?你的问题具体在哪里?你的问题似乎太宽泛了,不能简明扼要地回答。()请避免在回答中提出疑问,即使引用的是问句或是修辞性的。你有可能被误读为提出问题而不是回答,即你的问题被标记为不是答案。