使用FFmpeg的avformat_open_input函数打开ftp服务器上的媒体文件失败

    最近需要实现个功能,要解析远程ftp服务器上视频文件中的软字幕。按照常规的方法是要先通过ftp将对方服务器上的媒体文件下载到本地,再用FFmpeg解析下载下来的文件。但考虑到通过ftp下载,会增加程序执行总时间,于是尝试对其进行优化,去掉通过ftp下载视频文件的步骤,直接通过FFmpeg读取ftp服务器上的视频文件,结果执行avformat_open_input函数失败了。下面是解决方法。

 

1.在ftp服务器中设置对应的ftp共享目录有相应的权限,最好关闭windows防火墙。

 

2.要想使用FFmpeg的avformat_open_input函数打开ftp服务器上的媒体文件,必须按照FFmpeg官方文档(链接:http://www.ffmpeg.org/ffmpeg-protocols.html)中写的那样,给url加上用户名、密码、ftp端口号。如下图所示:

 

比如:ftp媒体文件的url为:ftp://127.0.0.1/ckin.mp4,ftp用户名为xiaoming,密码为123456,端口为21,则avformat_open_input函数传入的第二个参数必须为:ftp://xiaoming:123456@127.0.0.1:21/ckin.mp4。

 

3.使用新版本的FFmpeg。经过测试FFmpeg4.0.X版本或以下的FFmpeg有bug,不支持直接读取远程ftp目录上的媒体文件。而目前最新版本的FFmpeg(比如FFmpeg4.3.2)支持。链接:(https://github.com/BtbN/FFmpeg-Builds/releases/tag/autobuild-2021-03-21-12-59

 

 

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值