Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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
YouTube DL Python输出文件格式不是mp4_Python_Video_Ffmpeg_Youtube_Youtube Dl - Fatal编程技术网

YouTube DL Python输出文件格式不是mp4

YouTube DL Python输出文件格式不是mp4,python,video,ffmpeg,youtube,youtube-dl,Python,Video,Ffmpeg,Youtube,Youtube Dl,我用python编写了一小段代码,从YouTube视频中提取音频或视频。代码如下: from __future__ import unicode_literals import youtube_dl link = input("Enter the video link:") while True: choice = input("Enter a for audio file, v for video file:") if choice

我用python编写了一小段代码,从YouTube视频中提取音频或视频。代码如下:

from __future__ import unicode_literals
import youtube_dl

link = input("Enter the video link:")

while True:
    choice = input("Enter a for audio file, v for video file:")
    if choice == "a" or choice == "v":
        break

ydl_opts = {}

if choice == "a":
    ydl_opts = {
        'format': 'bestaudio/best',
        'postprocessors': [{
            'key': 'FFmpegExtractAudio',
            'preferredcodec': 'mp3',
            'preferredquality': '192',
        }],
    }
    
with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    info_dict = ydl.extract_info(link, download=False)
    video_title = info_dict.get('title', None)

if choice == "a":
    path = f'D:\\DwnldsYT\\{video_title}.mp3'
if choice == "v":
    path = f'D:\\DwnldsYT\\{video_title}.mp4'

ydl_opts.update({'outtmpl':path})

with youtube_dl.YoutubeDL(ydl_opts) as ydl:
    ydl.download([link])

音频提取工作正常,但问题在于视频提取。当我提取视频时,我得到的输出是一个mkv文件,而不是mp4文件。知道如何将视频文件保存为mp4吗?

如果视频质量高于1080p,则无法将其下载为mp4,请尝试下载最高分辨率720p或1080p的视频,以检查其是否仍以mkv的形式下载。

我想您可以在这里找到答案,我可以下载为mp4的最大分辨率为480p。有没有办法将1080p视频下载为mp4?试试这个`用youtube_dl.YoutubeDL({'format':'137')作为ydl:ydl.download([url])`正如@thekid77777所提到的,看看它的效果。谢谢!但我面临另一个问题。在此之前,YT视频的音频和视频都被下载。但是现在,只有视频被下载了。有没有办法下载1080p的音频和视频作为mp4文件?还有别的。如果YT视频的最大分辨率是720p或480p,那么我的代码会抛出一个错误。有没有办法确定最好的视频分辨率并将我的视频作为mp4下载到该分辨率中?我也有同样的问题,但对于优于1080p的视频,当我研究发现这就是youtube dl的工作方式时,尝试使用pytube,不管我的代码是使用youtube dl制作的(供参考),