You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python调用FFmpeg从FTP转图片为视频报错:Protocol 'ftp'不在白名单'tcp'

解决FFmpeg通过FTP读取图片转视频时的"Protocol 'ftp' not on whitelist 'tcp'"错误

问题原因

FFmpeg处理图片时默认使用image2 demuxer,该demuxer的网络协议白名单默认仅包含tcp,不支持ftp;而处理视频文件时使用的是对应视频格式的demuxer(如MP4的mov demuxer),这些demuxer默认支持ftp协议,因此视频转换功能正常,图片转视频时触发白名单限制报错。

解决方案

在FFmpeg命令中添加-protocol_whitelist参数,明确将ftp(以及依赖的tcp等)加入允许的协议列表。

修正后的单图片转视频代码

command = """ffmpeg -protocol_whitelist file,ftp,tcp,udp -loop 1 -framerate {ips} -i {i} -t 10 -pix_fmt yuv420p {o}""".format(i=src_path, o=path, ips=img_per_sec)

对应的示例命令

ffmpeg -protocol_whitelist file,ftp,tcp,udp -loop 1 -framerate 2 -i ftp://user:user@ip:port/landing_ffmpeg/pruebas/prueba_imagenes/prueba06.jpg -t 10 -pix_fmt yuv420p tmp/videoimagen.mp4

读取图片列表txt文件的批量处理场景

如果是通过txt文件批量读取FTP上的图片路径,同样需要在命令开头添加该参数,同时配合-f concat和-safe 0参数:

# src_path为包含FTP图片路径的txt文件本地路径
command = """ffmpeg -protocol_whitelist file,ftp,tcp,udp -framerate {ips} -f concat -safe 0 -i {i} -t 10 -pix_fmt yuv420p {o}""".format(i=src_path, o=path, ips=img_per_sec)

注:-safe 0用于允许txt中使用绝对路径(包括FTP远程路径)

验证说明

添加-protocol_whitelist后,image2 demuxer会被允许使用ftp协议读取远程图片,解决白名单限制问题。视频处理命令无需修改,因为对应视频demuxer的协议白名单默认包含ftp。

内容的提问来源于stack exchange,提问作者Victoriano Fernández Tomás

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 01:25:22