video-compare

video-compare

视频对比分析工具 支持多格式和交互控制

video-compare是一款分屏视频对比分析工具,基于C++14开发。该工具整合FFmpeg和SDL2库,实现交互式导航、播放控制和多种分析功能。它支持比较不同编解码器、调整算法等对视频的影响,可处理各种分辨率、帧率、扫描方式、颜色格式、容器格式的视频,还能对比图像或图像序列。工具提供可自定义的显示选项,方便用户进行深入的视频分析。

video-compare视频比较工具FFmpegSDL2C++14Github开源项目

video-compare

GitHub 发布版本

这是一个用C++14编写的分屏视频比较工具,利用FFmpeg库和SDL2。它提供交互式导航和播放控制,以及各种分析工具和可自定义的显示选项。

video-compare可用于直观比较编解码器、调整大小算法和其他修改对两个同步播放的视频文件的影响。该工具功能多样,允许比较分辨率、帧率、扫描方法、色彩格式、容器格式、编解码器或时长不同的视频。

得益于FFmpeg的灵活性,video-compare还能够比较图像或图像序列。

安装

Arch Linux

通过AUR安装:

git clone https://aur.archlinux.org/video-compare.git cd video-compare makepkg -sic

Homebrew

通过Homebrew安装:

brew install video-compare

预编译的Windows 10二进制文件

预构建的Windows 10 x86 64位版本可从此页面获取。 下载并解压缩.zip文件到您的系统,然后从命令提示符运行video-compare.exe

从源代码编译

自行构建

截图

视觉比较模式: 视觉比较模式

减法模式(加上时间偏移、200%缩放和放大): 减法模式

垂直堆叠模式: 堆叠模式

致谢

video-compare由Jon Frydensbjerg(电子邮件:jon@pixop.com)创建。代码主要基于 优秀的视频播放器GitHub项目:https://github.com/pockethook/player

特别感谢FFmpegSDL2stb的作者们。

使用方法

使用操作系统的DPI设置启动。视频像素在Retina 5K显示器等设备上会翻倍; 因此,这是在此类屏幕上显示HD 1080p视频的首选选项:

video-compare video1.mp4 video2.mp4

在支持高DPI模式的系统上允许使用该模式。视频像素将"一对一"显示。适用于 例如在Retina 5K显示器上显示UHD 4K视频:

video-compare -d video1.mp4 video2.mp4

将位深度增加到每个颜色分量10位(默认为8位)。这会提高保真度但 会影响性能。在具有高级显示器和支持30位色彩的驱动程序的系统上, 可显著减少可见的色带:

video-compare -b video1.mp4 video2.mp4

使用特定的窗口大小,而不是从视频尺寸派生窗口大小。视频 帧将被缩放以适应。如果宽度或高度任一被省略,缺失的值将根据 指定的另一个维度计算,以保持宽高比。这对于将高分辨率 视频缩小到低分辨率显示器上很有用:

video-compare -w 1280x720 video1.mp4 video2.mp4

自动缓冲区内循环播放,在缓冲区填满或到达文件末尾时触发,简化了 视频分析,无需手动重新开始播放(也提供双向"乒乓"模式,pp):

video-compare -a on video1.mp4 video2.mp4

移动右侧视频的显示时间戳,而不是假设视频已对齐。正值 会延迟左侧视频,而负值则相反地延迟右侧视频。当视频 稍微不同步时很有用:

video-compare -t 0.080 video1.mp4 video2.mp4

以全尺寸垂直堆叠显示视频,不使用滑块(也支持hstack进行水平堆叠):

video-compare -m vstack video1.mp4 video2.mp4

通过命令行指定的FFmpeg视频滤镜列表预处理一个或两个输入 (参见FFmpeg的视频滤镜文档)。 这是用于裁剪/填充(比较不同宽高比的视频)、 调整颜色、去隔行、降噪、加速/减速等的瑞士军刀:

video-compare -l crop=iw:ih-240 -r format=gray,pad=iw+320:ih:160:0 video1.mp4 video2.mp4

选择无法自动检测的解复用器(如VapourSynth):

video-compare --left-demuxer vapoursynth script.vpy video.mp4

明确选择右侧视频的解码器:

video-compare --right-decoder h264_cuvid video1.mp4 video2.mp4

为左侧视频设置硬件加速类型:

video-compare --left-hwaccel videotoolbox video1.mp4 video2.mp4

转换SDR视频的色彩空间并映射850尼特峰值亮度的HDR视频,以适应 sRGB显示器上相同的亮度水平:

video-compare -R 850 sdr_video.mp4 hdr_video.mp4

将500尼特峰值亮度的HDR视频映射到sRGB SDR显示器,并调整SDR视频 的色调,以模拟两个视频在实际HDR显示器上的相对亮度差异:

video-compare -T rel -L 500 hdr_video.mp4 sdr_video.mp4

使用双下划线(__)作为占位符,可以更简单地将视频与自身进行比较。这 使得可以执行诸如比较视频与其时间偏移版本或测试各种 滤镜集合等任务,而无需重复输入相同的、可能很长的路径:

video-compare some/very/long/and/complicated/video/path.mp4 __

当然,上述功能可以按任意顺序组合使用。不带任何参数启动video-compare可以 查看所有支持的选项。

控制

  • H: 切换屏幕上的控制帮助文本
  • 空格: 切换播放/暂停
  • 逗号 ,: 切换缓冲区内双向循环/暂停
  • 句号 .: 切换缓冲区内单向循环/暂停
  • Esc: 退出
  • 下箭头: 后退15秒
  • 左箭头: 后退1秒
  • 向下翻页: 后退600秒
  • 上箭头: 前进15秒
  • 右箭头: 前进1秒
  • 向上翻页: 前进600秒
  • J: 降低播放速度
  • L: 提高播放速度
  • S: 交换左右视频
  • A: 移动到缓冲区中的上一帧
  • D: 移动到缓冲区中的下一帧
  • F: 将两个画面保存为PNG图像到当前目录
  • P: 在控制台打印鼠标位置和光标下的像素值
  • M: 在控制台打印图像相似度指标
  • Z: 放大光标周围区域(结果显示在左下角)
  • C: 放大光标周围区域(结果显示在右下角)
  • R: 重新居中并重置缩放至100%(x1)
  • 1: 切换隐藏/显示左侧视频
  • 2: 切换隐藏/显示右侧视频
  • 3: 切换隐藏/显示HUD
  • 5: 缩放50%(x0.5)
  • 6: 缩放100%(x1)
  • 7: 缩放200%(x2)
  • 8: 缩放400%(x4)
  • 0: 切换视频/差异模式
  • 加号 +: 右侧视频时间前移1帧
  • 减号 -: 右侧视频时间后移1帧

水平移动鼠标来调整可移动滑块的位置。

使用鼠标滚轮放大/缩小光标下的像素。按住鼠标右键移动鼠标来平移视图。

左键单击鼠标可根据鼠标光标相对于窗口宽度的水平位置进行时间跳转(目标位置显示在右下角)。

按住SHIFT键同时按D可解码并移动到下一帧。

按住CTRL键的同时使用+/-进行时间调整可以更快地增减10帧。同样,按住ALT键可进行更大幅度的100帧时间调整。

构建

要求

需要安装FFmpeg头文件和开发库,以及SDL2及其TrueType字体渲染附加组件(libsdl2_ttf)。现在特别需要SDL2版本2.0.10或更高版本以支持亚像素精度渲染功能。用户在编译前可能需要升级现有的SDL2安装。

在Debian GNU/Linux上,可以通过apt安装所需的开发包:

apt install libavformat-dev libavcodec-dev libavfilter-dev libavutil-dev libswscale-dev libswresample-dev libsdl2-dev libsdl2-ttf-dev

说明

通过GNU Make编译源代码:

make

链接后的video-compare可执行文件将在源代码目录中创建。要进行系统范围的安装:

make install

注意,在大多数环境中执行此操作需要root权限(提示:使用sudo)。

注意事项

  1. 不支持音频播放。

  2. 为获得最佳体验,请将时间调整控制在几秒钟以内。

  3. 跳转需要在最近的关键帧(即I帧)上重新同步。

实用技巧

Windows资源管理器中的"发送到"集成

当你只需要指定输入文件而不需要其他参数时,可以直接从资源管理器启动工具,方法是右键点击 -> 发送到 -> video-compare。

以下是此集成的工作方式:

https://user-images.githubusercontent.com/8549626/166630445-c8c511b7-005f-48aa-83bc-0eb9676cfa2a.mp4

你可以通过选择两个文件,然后右键点击其中任何一个,按N键(聚焦"发送到"),然后按V键(选择"video-compare")来快速实现。

要让video-compare出现在"发送到"字段中,你需要打开"发送到"文件夹,可以通过在运行(Windows + R)中输入shell:sendto来访问,然后只需创建一个指向video-compare.exe的快捷方式即可。

感谢couleurm分享这个技巧并创建上面的屏幕录像。

编辑推荐精选

扣子-AI办公

扣子-AI办公

职场AI,就用扣子

AI办公助手,复杂任务高效处理。办公效率低?扣子空间AI助手支持播客生成、PPT制作、网页开发及报告写作,覆盖科研、商业、舆情等领域的专家Agent 7x24小时响应,生活工作无缝切换,提升50%效率!

堆友

堆友

多风格AI绘画神器

堆友平台由阿里巴巴设计团队创建,作为一款AI驱动的设计工具,专为设计师提供一站式增长服务。功能覆盖海量3D素材、AI绘画、实时渲染以及专业抠图,显著提升设计品质和效率。平台不仅提供工具,还是一个促进创意交流和个人发展的空间,界面友好,适合所有级别的设计师和创意工作者。

图像生成AI工具AI反应堆AI工具箱AI绘画GOAI艺术字堆友相机AI图像热门
码上飞

码上飞

零代码AI应用开发平台

零代码AI应用开发平台,用户只需一句话简单描述需求,AI能自动生成小程序、APP或H5网页应用,无需编写代码。

Vora

Vora

免费创建高清无水印Sora视频

Vora是一个免费创建高清无水印Sora视频的AI工具

Refly.AI

Refly.AI

最适合小白的AI自动化工作流平台

无需编码,轻松生成可复用、可变现的AI自动化工作流

酷表ChatExcel

酷表ChatExcel

大模型驱动的Excel数据处理工具

基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。

AI工具酷表ChatExcelAI智能客服AI营销产品使用教程
TRAE编程

TRAE编程

AI辅助编程,代码自动修复

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
AIWritePaper论文写作

AIWritePaper论文写作

AI论文写作指导平台

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

AI辅助写作AI工具AI论文工具论文写作智能生成大纲数据安全AI助手热门
博思AIPPT

博思AIPPT

AI一键生成PPT,就用博思AIPPT!

博思AIPPT,新一代的AI生成PPT平台,支持智能生成PPT、AI美化PPT、文本&链接生成PPT、导入Word/PDF/Markdown文档生成PPT等,内置海量精美PPT模板,涵盖商务、教育、科技等不同风格,同时针对每个页面提供多种版式,一键自适应切换,完美适配各种办公场景。

AI办公办公工具AI工具博思AIPPTAI生成PPT智能排版海量精品模板AI创作热门
潮际好麦

潮际好麦

AI赋能电商视觉革命,一站式智能商拍平台

潮际好麦深耕服装行业,是国内AI试衣效果最好的软件。使用先进AIGC能力为电商卖家批量提供优质的、低成本的商拍图。合作品牌有Shein、Lazada、安踏、百丽等65个国内外头部品牌,以及国内10万+淘宝、天猫、京东等主流平台的品牌商家,为卖家节省将近85%的出图成本,提升约3倍出图效率,让品牌能够快速上架。

下拉加载更多