许多互联网调查和信息验证都涉及视频证据。能够捕获和分析视频内容是一项重要技能,尤其是在您的任务涉及识别人员或地点时。
对于视频信息的验证,我们经常会说 “取一帧” 进行反向图像搜索,但是人们往往很难手动抓取到关键帧。
您可以随时暂停视频以尝试查看感兴趣的细节,但是这可能会很慢且效率很低,尤其是当重要的细节仅持续一秒钟时。
本文将推荐一个工具,帮助您更简单地抓取到视频内容中的关键情报,以及对视频内容进行真伪验证。
FFMPEG 是一个简单但功能强大的工具,可让您从视频中提取每个帧并将其转换为PNG或JPG格式的静止图像。
它还允许您从视频文件中获取音频,以便您可以仔细收听和分析它。无需不断暂停即可找到所需的详细信息。nixintel进行了一个很好的总结。
安装和设定
FFMPEG 是在 Windows、Mac OS 和 Linux 上运行的免费命令行工具。每个平台上的安装和设置都不同,但之后的用法都是相同的。
下面逐一介绍。
Windows ——
建议您遵循这里的指南了解如何为 Windows 安装 FFMPEG,而不仅仅是重复别人写的东西。
只需记住从下载页面选择正确的版本即可。
除非您运行的是非常非常古老的 Windows 计算机,否则任何64位版本的都可以。另外,这里有一个很棒的视频指南:
Mac OS ——
FFMPEG 可以直接从终端安装并运行。如果您尚未安装 Homebrew,则需要先按照这里的指南进行操作。
安装完成后,打开一个终端并输入以下内容:
brew install ffmpeg
就行了。
Linux ——
FFMPEG 可能已经安装在您的 Linux 版本中了。要检查是否存在,请打开一个终端并输入:
which ffmpeg
如果已安装 FFMPEG,则会显示文件路径 (usually /usr/bin/ffmpeg)。如果未安装,则不会返回任何消息。
要将其安装在任何基于 Debian 的发行版中,例如 Ubuntu、Kali 或 Mint,只需在终端中输入以下内容:
sudo apt install ffmpeg
运行安装过程,您就完成了。
用法
FFMPEG 完全在命令行中运行。您输入的命令采用以下格式:
ffmpeg <global options> <input file options> -i <input file> <output file options> <output file>.
不要害怕,其实没那么复杂。FFMPEG 可以完成各种有用的任务;转换视频格式、调整视频大小、添加音频、删除音频、添加字幕、拆分和合并视频,以及其他许多操作 —— 但本指南将侧重于主题。
本文的目的是开源情报调查和信息验证。
同样重要的是要记住,与大多数其他命令行工具一样,FFMPEG 假定您已经在目标视频文件所在的文件夹中。您可以在 -i 后指定文件的路径,也可以使用 cd 移至您要进入的目录。
1)从视频中抓取帧
这是用于调查和分析视频的非常有用的技术。
从视频捕获静止图像允许使用反向图像搜索对其进行真伪验证,并允许对视频进行逐帧评估。它比您尝试在适当的时间点暂停视频并希望可以找到想要的东西要有效得多。
要捕获视频中的所有帧,请使用以下命令:
ffmpeg -i myvideo.mp4 img%06d.png -hide_banner
以下是命令中每个部分的作用,明白意思就容易记住了:
ffmpeg — 告诉计算机运行 ffmpeg
-i 告诉 ffmpeg 输入文件的名称是什么,即 您要处理的视频
myvideo.mp4 — 视频文件
img%06d.png — 静止图像的命名协议。这种语法意味着每个帧都将带有 img 标签。 %06d表示 img 后将跟随六位数字;因此,第一个仍然是 img000001.png,然后是 img000002.png,依此类推。%04d 只能是四位数,依此类推。 .png 告诉 ffmpeg 您想要的静止图像的格式。如果您更喜欢 jpeg,请使用 .jpg。
-hide_banner 抑制大量不必要的文本输出
一旦运行完成,您就会获得一个编号的 PNG 文件集合,视频中的每一帧都有一个图像。
这对于简短的视频来说很好,但是您很快就会得到并不需要的成千上万个几乎完全相同的帧。
例如,当我使用这种技术从视频中获取静止图像时,即使原始镜头只有14秒长,我最终还是获得了400多个静止图像!
不要着急,FFMPEG 允许您指定每秒要捕获多少帧。缺省情况下,它每秒捕获25帧,但是可以使用 -r 指定每秒应捕获多少帧:
ffmpeg -i myvideo.mp4 -r 1 img%06d.png -hide_banner
因此,在此示例中,-r 的值为1。这意味着,视频的每一秒只捕获一帧。对于长度超过几秒钟的文件,这样更易于管理。
2)从视频中获取音频
FFMPEG 还允许您从视频中提取声音,以便可以将其与视频本身分开进行处理。
语法如下:
ffmpeg -i myvideo.mp4 -vn soundtrack.mp3
此命令告诉 ffmpeg 接收输入文件 myvideo.mp4,忽略所有视频内容(-vn),然后将声音输出到名为 soundtrack.mp3 的新文件中。
这将使您既保留原始视频文件,又保留了包含声音的单独mp3文件。
将其与 YouTube-DL 整合在一起
如果您忘记了关于 YouTube-DL 的使用方法,在这里回顾:《如何快速从大部分社交网络上抓取视频?深度调查的必备基础工具》。
使用 YouTube-dl 捕获视频,然后使用 FFMPEG 将所有帧转换为图像文件、并提取音频,以便分别收听分析。
YouTube-dl 是很棒的互联网视频采集器,它与 Twitter 内容非常兼容。如果您以前从未使用过它,建议阅读上述指南。
下面是一个案例,结合使用这两种工具将一个14秒视频转换成更易于使用的方式 —— 这个视频是一个侦探挑战游戏的测试题目,它的问题是:该视频中的火车是开往哪里的。
以下是调查步骤。
1、使用 YouTube-DL 抓取视频,将其另存为 train_footage.mp4
$ youtube-dl
train_footage.mp4
2、抓取视频的每一帧并将其另存为PNG文件:
$ ffmpeg -i train_footage.mp4 img%06d.png -hide_banner
3、翻录视频中的音频,并将其另存为单独的 mp3,称为 train_audio:
$ ffmpeg -i train_footage.mp4 -vn train_audio.mp3
事实证明,音频对于本案例来说没有帮助,但是,从其中一个视频帧中发现了在原始镜头中错过的一个重要细节:
当查看上面的静止图像时,建筑物后部的卫星天线清晰可见:
由于卫星天线通常指向赤道,因此可以确定照片的方位。天线朝南并正对着相机,因此拍摄者必须是面朝北的。
这意味着火车正在向西行驶,因此火车刚离开的轨道和车站必须是东西方向。
结合其他一些细节,可以使用上述信息来缩小位置范围。
视频是开动的火车上拍摄的,如果您没有看到那个天线,就会错过一个重要的验证细节。这就是准确提取帧的重要性。
其他任务
ffmpeg 的另一个简单任务就是调整视频大小,也就是说如果看不清的话可以改大一点,您需要做的就是在 -s 后指定新的分辨率:
ffmpeg -i video_input.mov -s 1024x576 video_output.mp4
另外,您可能要指定 -c:a 以确保输出文件的音频编解码器是正确的:
ffmpeg -i video_input.h264 -s 640x480 -c:a video_output.mov
还有将音频转换为视频的方法。
使用单张照片(例如专辑封面)给它添加音频。
当您要将音频文件上传到除视频/图像之外不允许任何其他内容的网站时(例如 YouTube 和 Facebook),此功能非常有用。
这是一个例子:
ffmpeg -loop 1 -i image.jpg -i audio.wav -c:v libx264 -c:a aac -strict experimental -b:a 192k -shortest output.mp4
只需要改变编解码器(-c:v 指定视频编解码器,-c:a 指定音频编解码器)和你的文件的名称。
给视频添加字幕:
添加字幕的方法是这样的,输入以下内容:
ffmpeg -i video.mp4 -i subtitles.srt -c:v copy -c:a copy -preset veryfast -c:s mov_text -map 0 -map 1 output.mp4
当然,您可以指定所需的任何编解码器(以及与音频/视频相关的任何其他附加选项)。
更多详细功能的指南可以参见这里。⚪️