有没有办法让 FFmpeg 更快地搜索到网络共享上的文件末尾?

Vas*_*sil 5 video debian ffmpeg

我正在使用 ffmpeg 从 flv 视频生成图像预览。操作系统是 Debian 5,它是 ffmpeg 的 apt 版本。flv 文件位于挂载为 NFS 的 NAS 共享上。从 flvs 的开头获取缩略图非常快,但在视频中查找 10 分钟以上时非常慢。我像这样从 python 调用 ffmpeg:

os.system('ffmpeg -ss "%d"  -i %s -an  -r 1 -vframes 1   -bufsize 1835k -s 360x288 -f image2 -vcodec mjpeg -y "%s"'%(offset_seconds, video_file_path,  image_path))
Run Code Online (Sandbox Code Playgroud)

有没有办法在 flvs 结束时加快查找过程?什么可能导致它这么慢?

我已经在我的本地机器上尝试了同样的事情(Mac OS X 雪豹和从源代码编译的 ffmpeg),并且在从视频的乞求和 50 分钟的视频中捕获图像时,我感觉不到任何速度差异。

编辑:提到的 debian 服务器的硬件配置比我的本地机器快。

Cam*_*une 0

您已将问题范围缩小到 NFS 安装。ffmpeg 本身并没有在输入视频 10 分钟后改变其行为 - 如果确实如此,您在尝试读取本地磁盘上的视频时就会注意到。

我敢打赌,在 NFS 服务器(因此它又是本地磁盘)上安装和运行 ffmpeg 不会在 10 分钟内出现速度减慢的情况。

可能有某种方法可以调整 NFS 配置(缓存?),但将整个视频复制到本地磁盘然后让 ffmpeg 读取它可能更简单。它不会变慢:无论如何都需要移动数据,因为虽然 ffmpeg 每秒只需要一帧的像素来制作缩略图,但它需要在关键帧之间读取更多内容才能到达并解码这几个帧帧。