将查找命令发送到正在运行的ffmpeg实例

问题描述 投票:8回答:2

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

windows ffmpeg console seek
2个回答
2
投票

实际上是搜索命令是[[种类在ffmpeg documentation中记录:]]

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

    然后我按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

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

    他在这里说:

    “ lavfi”多路分配器具有自己的专用过滤器,不提供意味着(我知道)从外部注入命令filtergraph放入其中。

    因此,所有这些都表明在正在运行的ffmpeg实例上可能会或可能不会寻找。至少那些可能成功的人自己做了。


  • -2
    投票
    如果您打'?在ffmpeg运行时,您将获得所有可用选项。
    © www.soinside.com 2019 - 2024. All rights reserved.