使用Python FFmpeg下载流媒体时HTTPS协议报错的解决方法
解决Python FFmpeg库调用时HTTPS协议缺失的问题
问题根源
你在Shell中能正常使用FFmpeg下载HTTPS流媒体,说明系统中安装的FFmpeg是编译时启用了HTTPS支持的。但Python FFmpeg库报错,是因为该库默认调用的FFmpeg二进制文件不是你系统中那个带HTTPS支持的版本——可能是库自带的精简版FFmpeg,或者路径指向了未编译HTTPS支持的FFmpeg。
解决方案
1. 指定系统中可用的FFmpeg绝对路径
首先在Shell中执行以下命令,找到能正常使用的FFmpeg路径:
which ffmpeg
得到类似/usr/bin/ffmpeg的路径后,修改Python代码,在run()方法中指定cmd参数:
import ffmpeg url = "你的流媒体地址" ffmpeg.input(url).output("demo.mp4", vcodec="copy", acodec="copy").overwrite_output().run( cmd='/usr/bin/ffmpeg' # 替换为你实际获取到的路径 )
2. 验证FFmpeg的HTTPS支持
先确认系统中的FFmpeg确实支持HTTPS:
ffmpeg -protocols | grep https
如果输出包含https,说明该版本支持。若Python库调用的版本不支持,你可以通过指定路径强制使用系统版本。
3. 处理自带二进制的Python FFmpeg库
如果你使用的是pyffmpeg这类自带FFmpeg二进制的库,可能自带的版本未启用HTTPS支持。此时可以:
- 手动替换库目录中的FFmpeg二进制文件为系统中支持HTTPS的版本;
- 卸载该库,改用
ffmpeg-python(仅作为FFmpeg的Python封装,依赖系统FFmpeg)。
内容的提问来源于stack exchange,提问作者mor15Euro
相关产品推荐
相关产品推荐

