向正在运行的ffmpeg实例发送seek命令

Mik*_*eeg 5 windows console ffmpeg seek

我已经使用ffmpeg库创建了一个视频播放器,但想知道是否可以使用ffmpeg.exe和管道(特别是搜索部分)实现相同的功能。是否可以将seek命令发送到正在运行的ffmpeg.exe实例?帮助中不存在这样的命令,但确实显示了可用于将命令发送到过滤器的“ c”命令。但是,我找不到关于如何通过这种方式寻址过滤器的任何其他文档,所有示例均假设命令行参数,也无法使用过滤器在视频中查找。

Mik*_*tad 2

实际上,seek 命令在ffmpeg 文档中记录:

movieamovie支持以下命令:

  • seek使用“av_seek_frame”执行搜索。语法是:seek stream_index|timestamp|flags

    • stream_index:如果stream_index为-1,则选择默认流,并且时间戳会自动从AV_TIME_BASE单位转换为流特定的time_base。
    • timestamp:以 AVStream.time_base 为单位的时间戳,或者如果未指定流,则以 AV_TIME_BASE 为单位。
    • flags:选择方向和搜索模式的标志。
  • get_duration获取以 AV_TIME_BASE 为单位的电影时长。

我尝试过运行这样的命令:

ffmpeg -f lavfi -i 'movie=filename=myvid.mp4' -codec:v libx264 -an -f mpegts - > /dev/null
Run Code Online (Sandbox Code Playgroud)

然后我按c并输入命令all -1 seek 0|3|0,但无论我尝试哪种组合,都会返回相同的错误Command reply for stream 0: ret:-78 res:

我也尝试过这个命令,但在尝试寻找时它给出了相同的错误:

ffmpeg -i myvid.mp4 -codec:v libx264 -an -f mpegts - > /dev/null
Run Code Online (Sandbox Code Playgroud)

互联网上关于查找操作的信息很少,但我设法找到了这个:http ://ffmpeg.org/pipermail/ffmpeg-devel/2013-September/148070.html

他在这里说:

“lavfi”解复用器有自己的私有过滤器图,并且没有提供(据我所知)从该过滤器图外部注入命令的方法。

因此,所有这些都表明可能或不可能在正在运行的 ffmpeg 实例上进行查找。至少那些可能成功的人已经把如何做到这一点留给了自己。