需要用户输入的 ffmpeg cli 过滤器

标签 ffmpeg

有没有办法为 ffmpeg 编写过滤器脚本,这样当我输入时,过滤器会改变行为?

一个例子是用一个键改变对比度,或者在录制流时将两个视频与另一个键混合。

我已经看到我可以以静态方式执行此操作,例如使用新行为重新开始录制,然后调用 concat,由于进程终止和进程提升,这会导致一些帧丢失,但我想知道如果这是可能的,无需重新启动。

最佳答案

使用 zmq and azmq过滤器。与使用预先编写的命令的 sendcmd 过滤器不同,(a)zmq 允许您任意发送过滤器命令。

要启用这些过滤器,您需要安装 libzmq 库和头文件并配置 ffmpeg--enable-libzmq .

只有支持命令的过滤器才能与此过滤器一起使用。引用 ffmpeg -filters 的输出查看哪些过滤器支持命令的列表。此外,并非过滤器的所有选项都被视为命令。有关支持的命令列表,请参阅每个过滤器的文档。

文档中的示例

考虑以下由 ffplay 生成的过滤器图。在此示例中,最后一个覆盖过滤器具有实例名称。所有其他过滤器将具有默认实例名称。

ffplay -dumpgraph 1 -f lavfi "
color=s=100x100:c=red  [l];
color=s=100x100:c=blue [r];
nullsrc=s=200x100, zmq [bg];
[bg][l]   overlay     [bg+l];
[bg+l][r] overlay@my=x=100 "

要更改视频左侧的颜色,可以使用以下命令:
echo Parsed_color_0 c yellow | tools/zmqsend

要更改右侧:
echo Parsed_color_1 c pink | tools/zmqsend

要更改右侧的位置:
echo overlay@my x 150 | tools/zmqsend

关于需要用户输入的 ffmpeg cli 过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54962494/

相关文章:

FFMPEG输出图像自动旋转180度

ffmpeg - 对用于 HTML5 播放的 PowerPoint 演示文稿的视频进行编码

ffmpeg - 如何调整视频大小 720 :1280 Bigger Height, 宽度和裁剪为 1280 :720 using ffmpeg?

ffmpeg - 我可以使用 FFMPEG 从 RTSP 流中获取 q 值吗

facebook - 从 ffmpeg 流式传输到 Facebook Live 被终止

ffmpeg - 从 OpenRTSP 管道视频和音频到 ffmpeg

ffmpeg - Wowza 的 RTMP 身份验证

video - 使用 nvidia gpu 提取帧

php - 使用 php 编码为 mp3 的任何方式,无需付费

merge - ffmpeg 合并 mxf 音频和 m2v 视频