使用图像匹配查找视频文件位置

Ila*_*ste 5 video linux ffmpeg images video-editing

从视频文件中自动查找帧与给定图像大致匹配*的位置的最佳工具/方法是什么?

基本上,命令是:“查找 [image.jpg] 在 [video.mpg] 中出现的位置”

最好使用ffmpeg或其他一些 Linux 命令行工具。

* - 或者可能是视频中所有帧中与图像最匹配的帧

llo*_*gan 0

如果图像和帧完全相同,则可以使用md5framemd5复用器。例子:

  1. 获取目标图像的MD5和:

    $ ffmpeg -i frame.jpg -f md5 - 2>&1 | grep MD5
    MD5=b7fb5124a65108ebb067129d9d81ed57
    
    Run Code Online (Sandbox Code Playgroud)
  2. 查找视频中的精确图像帧:

    $ ffmpeg -i video.mov -f framemd5 - 2>&1 | grep b7fb5124a65108ebb067129d9d81ed57
      0,        62,        62,         1,  1424400, b7fb5124a65108ebb067129d9d81ed57
    
    Run Code Online (Sandbox Code Playgroud)

输出数字指的是:stream_index, packet_dts, packet_pts, packet_duration, packet_size, MD5

然而,这可能不是您想要的。可以想象,如果是 mjpeg,这将起作用video.mov;例如,如果您从 jpg 输入制作视频并将它们流式复制到输出:

ffmpeg -pattern_type glob -i "*.jpg" -codec copy output.mkv
Run Code Online (Sandbox Code Playgroud)