gpt4 book ai didi

bash - 从多个视频中快速提取多个帧

转载 作者:行者123 更新时间:2023-12-04 23:07:59 24 4
gpt4 key购买 nike

我有一个包含视频文件的文件夹,需要在 Linux 上使用 bash 脚本从每个文件中提取 2+ 帧。目前我正在循环中为每个视频文件执行此操作:

ffmpeg -nostdin -loglevel fatal -ss 15 -i "${filename}" -frames:v 1 "${out1}"
ffmpeg -nostdin -loglevel fatal -sseof -15 -i "${filename}" -frames:v 1 "${out2}"

这会从末尾提取一个帧 15s 和另一个帧 15s。对于 N 个视频文件,我需要 2N 个 ffmpeg 调用。我尝试了 -vf select ,正如所问 here ,但这要慢得多,尤其是在需要从头到尾选择帧的情况下。另外,我已经在使用 GNU 并行,这有很大的不同。

性能其实也不算太差。但我的问题是,这可以进一步改进吗?我希望有一种方法
  • 在一个 ffmpeg 调用中提取两个帧(比两个单独的调用更快),或
  • 每次调用为 ffmpeg 提供多个文件(以减少进程启动开销)
  • 最佳答案

    您可以多次提取相同的输入,也可以在同一命令中提取多个输入。

    基本命令结构是

    ffmpeg -nostdin -loglevel fatal
    -ss 15 -i "${filename}"
    -sseof -15 -i "${filename}"
    -ss 15 -i "${filename2}"
    -sseof -15 -i "${filename2}"
    -map 0:v:0 -frames:v 1 "${file1-head}"
    -map 1:v:0 -frames:v 1 "${file1-tail}"
    -map 2:v:0 -frames:v 1 "${file2-head}"
    -map 3:v:0 -frames:v 1 "${file2-tail}"
    ...

    我怀疑这会为一小部分文件带来很大的改进。

    关于bash - 从多个视频中快速提取多个帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56088966/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com