【发布时间】:2019-05-11 18:02:16
【问题描述】:
我有一个包含视频文件的文件夹,需要在 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 提供多个文件(以减少进程启动开销)
【问题讨论】:
标签: bash performance video ffmpeg