Python ffmpeg won#39;t accept path, why?(Python ffmpeg不接受路径,为什么?)
本文介绍了Python ffmpeg不接受路径,为什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
每次启动代码并设置正确的路径时,都会出现此错误,我尝试包含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:UsersmessaDesktopupcoming projectvideodownloader.py", line 65, in <module>
hd1080p()
File "c:UsersmessaDesktopupcoming projectvideodownloader.py", line 26, in hd1080p
ffmpeg
File "E:UsersmessaAppDataLocalProgramsPythonPython39libsite-packagesffmpeg\_run.py", line 313, in run
process = run_async(
File "E:UsersmessaAppDataLocalProgramsPythonPython39libsite-packagesffmpeg\_run.py", line 284, in run_async
return subprocess.Popen(
File "E:UsersmessaAppDataLocalProgramsPythonPython39libsubprocess.py", line 947, in __init__
self._execute_child(args, executable, preexec_fn, close_fds,
File "E:UsersmessaAppDataLocalProgramsPythonPython39libsubprocess.py", line 1416, in _execute_child
hp, ht, pid, tid = _winapi.CreateProcess(executable, args,
FileNotFoundError: [WinError 2] The system cannot find the file specified
推荐答案
Windows操作系统中最简单的解决方案是将ffmpeg.exe
放在与Python脚本相同的文件夹中。
您收到错误的原因是ffmpeg.exe
不在操作系统的执行路径中。
注意:执行pip install ffmpeg-python
不会下载FFmpeg应用程序(但Python包需要FFmpeg可执行文件才能运行)。
假设您使用的是Windows:
您可以安装FFmpeg
,如下所述:How to Install FFmpeg on Windows。
我的建议:
- 从https://github.com/BtbN/FFmpeg-Builds/releases下载最新稳定版本。
首选静电内部版本(静电内部版本应用单个可执行文件)。
您可以下载GPL许可版本(GPL和LGPL与可执行文件无关)。
最新稳定版本(2021年1月23日)为4.3.1
假设您使用的是Windows x64,请下载:ffmpeg-n4.3.1-29-g89daac5fe2-win64-gpl-4.3.zip
- 解压缩ZIP文件,并将
ffmpeg.exe
复制到您的Python脚本所在的文件夹。 - 如果正常工作,您也可以将
ffmpeg.exe
放在其他地方(如C:ffmpegin
),然后更新Windows路径。
更新:
有一个选项可以执行ffmpeg.exe
,而不将其添加到系统路径。
方法ffmpeg.run()
接受可选参数cmd
。
cmd
的默认值为ffmpeg
。
您可以将cmd
的值设置为完整执行路径。
示例:
(
ffmpeg
.concat(input_video, merged_audio, v=1, a=1)
.output("mix_delayed_audio.mp4")
.run(overwrite_output=True, cmd=r'c:FFmpeginffmpeg.exe')
)
这篇关于Python ffmpeg不接受路径,为什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:Python ffmpeg不接受路径,为什么?
基础教程推荐
猜你喜欢
- 如何在Python中绘制多元函数? 2022-01-01
- 使用 Google App Engine (Python) 将文件上传到 Google Cloud Storage 2022-01-01
- 如何在 Python 中检测文件是否为二进制(非文本)文 2022-01-01
- Python 的 List 是如何实现的? 2022-01-01
- 症状类型错误:无法确定关系的真值 2022-01-01
- 合并具有多索引的两个数据帧 2022-01-01
- 使用Python匹配Stata加权xtil命令的确定方法? 2022-01-01
- 使 Python 脚本在 Windows 上运行而不指定“.py";延期 2022-01-01
- 哪些 Python 包提供独立的事件系统? 2022-01-01
- 将 YAML 文件转换为 python dict 2022-01-01