【问题标题】:Can ffmpeg seek when using an input stream (or url)?使用输入流(或 url)时 ffmpeg 可以搜索吗?
【发布时间】:2025-12-07 00:45:02
【问题描述】:

在过去的几周里,我一直在使用 ffmpeg,最近我遇到了一个非常烦人的问题 - 当我将 ffmpeg 与输入流(通常只是一个 url 作为输入)一起使用并尝试设置开始时间(使用 -ss 选项),我总是收到一条警告消息,上面写着“无法定位:XXX”。

然后,ffmpeg 开始下载文件,直到下载足够的数据并到达我想要的开始时间,它才会输出任何内容。

我举个例子:

我用这个命令来执行ffmpeg:

ffmpeg -ss 50 -re -i https://ascent.usbank.com/acp/videos/041114ascent.flv -b:a 128k -ac 2 -acodec libvorbis -b:v 1024k -vcodec libtheora -strict 2 -preset ultrafast -tune zerolatency -pix_fmt yuv420p -f ogg pipe:1

我收到警告消息

https://ascent.usbank.com/acp/videos/041114ascent.flv: could not seek to position 50.000

然后,ffmpeg 开始将数据输出到 stdout 大约需要 30 秒。当我尝试使用更长的视频(和更长的搜索时间)时,它需要更长的时间。

我的问题是,我能做什么?我想当 ffmpeg 没有获得整个输入流时,它是不可能寻找的……我错了吗?或者有没有其他解决方案?

当然我尽量避免从网上下载整个文件...

提前致谢!

罗伊。

【问题讨论】:

    标签: ffmpeg video-streaming decode encode


    【解决方案1】:

    我猜你除了在本地缓冲 FLV 并(最终)寻找它之外,什么也做不了。

    http 资源是否允许大量搜索depends on the capabilities of the server,不幸的是...

    【讨论】: