在一些视频网站上,视频播放前会显示一张预览图片,这张预览图片被称为缩略图,默认情况下视频的第一帧会被用作缩略图。
在本文中,我将演示如何使用 FFmpeg 命令行生成视频缩略图并跳过黑帧。
什么是 FFmpeg
FFmpeg 是一个完整的跨平台解决方案,用于录制、转换和流式传输音频和视频。它可以解码、编码、转码、复用、解复用、流式传输、过滤和播放几乎任何格式的任何媒体文件。它还具有高度可移植性,因为它可以在各种构建环境、机器架构和配置(如 Linux、Mac OS X、Microsoft Windows 等)中编译和运行。
它包含多种工具,供最终用户转换、播放和分析媒体文件和库,供开发人员在不同的应用程序中使用。在本教程中,我们将使用 FFmpeg 命令行工具。
从视频生成缩略图
使用 FFmpeg 捕捉视频帧的基本命令是:
ffmpeg -i input.mp4 -frames:v 1 screenshot.png
上述命令将截取视频的第一帧。
通常情况下,我们不希望使用视频的第一帧作为缩略图,因为它可能是黑屏或其他无关紧要的内容。
跳过黑帧
FFmpeg 中的过滤器支持过滤黑帧。
ffmpeg -ss 0 -i input.mp4 -vframes 1 -f image2 -vf "blackframe=0,metadata=select:key=lavfi.blackframe.pblack:value=50:function=less" out.jpg
blackframe
获取有关所有视频帧中黑色像素百分比的信息metadata
过滤掉黑色像素超过 50% 的视频帧
确定黑帧,输出包括帧索引、黑色像素百分比、文件中的偏移量、时间戳、帧类型、最后一个关键帧的索引。
如何过滤黑色像素少于 50%的帧:
metadata=select:key=lavfi.blackframe.pblack:value=50:function=less
版权声明:本文内容转自互联网,本文观点仅代表作者本人。本站仅提供信息存储空间服务,所有权归原作者所有。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至1393616908@qq.com 举报,一经查实,本站将立刻删除。