我使用从视频中提取图像ffmpeg。
我每 10 秒(含 10 秒)转储一张缩小的图像,并将其组合成蒙太奇imagemagick。当将滑块悬停在基于网络的视频播放器中时,这些蒙太奇再次用于显示视频预览。(计算要显示蒙太奇中的哪个图像)。
经过尝试后,我最终得到了以下命令,其中的想法是速度而不是质量:
\nffmpeg \\\n -loglevel error \\\n -hwaccel cuvid \\\n -hwaccel_output_format cuda \\\n -c:v h264_cuvid \\\n -i "$video_file" \\\n -r 0.1 \\\n -filter:v "scale_cuda=w=-1:h=100,thumbnail_cuda=2,hwdownload,format=nv12" \\\n -color_range 2 \\\n f%09d.jpg\nRun Code Online (Sandbox Code Playgroud)\n这看起来效果很好。镜头有时会落后 \xc2\xb1 0.5 - 1 秒,但还算可以接受。
\n问题是ffmpeg在视频开始时会产生一张额外的图像。例如文件是:
file time\nf000000001.jpg 00:00:00\nf000000002.jpg 00:00:00\nf000000003.jpg 00:00:10\nf000000004.jpg 00:00:20\nf000000005.jpg 00:00:30\n...\nRun Code Online (Sandbox Code Playgroud)\n有时第一和第二会相差几毫秒。
\n据我所知(现在)我可以简单地删除第一个图像并继续处理其余图像,但不确定为什么会发生这种情况以及它是否是错误或其他原因。
\n换句话说:我需要知道前两个帧的“效果”是否可靠,以便我ffmpeg也可以在其他版本中删除它。
当我使用图像来显示 10 秒时。如果我不删除生成的第一张图像,则指定时间的视频快照 …