【发布时间】:2021-04-26 10:11:03
【问题描述】:
每次我启动代码并设置正确的路径时,它都会给我这个错误,我尝试包括 ffmpeg 路径,卸载并重新安装库,但没有运气。我也尝试过使用不同的方法来设置路径,比如直接放置而不将其保存到变量中,这让我抓狂,请帮助我解决问题。
Code
from pytube import *
import ffmpeg
global str
userurl = (input("Enter a youtube video URL : "))
q = str(input("Which quality you want ? 360p,480p,720p,1080p,4K,Flh :")).lower()
yt = YouTube(userurl)
print ("Title of the video : ",yt.title)
def hd1080p():
print("Downloading a HD 1080p video...")
v = yt.streams.filter(mime_type="video/mp4", res="1080p", adaptive = True).first().download(filename = "HD1080P.mp4")
print("Video downloaded")
yt.streams.filter(mime_type="audio")
a = yt.streams.get_audio_only()
print("Downloading audio")
a.download(filename = "audio.mp4")
print("audio downloaded")
input_video = ffmpeg.input("HD1080P.mp4")
added_audio = ffmpeg.input("audio.mp4").audio.filter('adelay', "1500|1500")
merged_audio = ffmpeg.filter([input_video.audio, added_audio], 'amix')
(
ffmpeg
.concat(input_video, merged_audio, v=1, a=1)
.output("mix_delayed_audio.mp4")
.run(overwrite_output=True)
)
if q == "1080" or q == "1080p":
hd1080p()
elif q == "720" or q == "720p":
hd720p()
elif q == "480" or q == "480p":
l480p()
elif q == "360" or q == "360p":
l360p()
elif q == "4" or q == "4k":
hd4k()
else:
print("invalid choice")
THE ERROR
Traceback (most recent call last):
File "c:\Users\messa\Desktop\upcoming project\videodownloader.py", line 65, in <module>
hd1080p()
File "c:\Users\messa\Desktop\upcoming project\videodownloader.py", line 26, in hd1080p
ffmpeg
File "E:\Users\messa\AppData\Local\Programs\Python\Python39\lib\site-packages\ffmpeg\_run.py", line 313, in run
process = run_async(
File "E:\Users\messa\AppData\Local\Programs\Python\Python39\lib\site-packages\ffmpeg\_run.py", line 284, in run_async
return subprocess.Popen(
File "E:\Users\messa\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 947, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "E:\Users\messa\AppData\Local\Programs\Python\Python39\lib\subprocess.py", line 1416, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified
【问题讨论】:
-
你试过绝对路径吗?例如:“C:/Users/username/file.mp4”
-
是的@SaladHead
-
ffmpeg 安装了吗?它在哪里?当前目录是什么? ffmpeg 路径是否在
PATH环境变量中? ffmpeg 直接在终端执行,能用吗? -
@HernánAlarcón 我不明白你在说什么,但我使用 pip3 安装了它