Project Icon

video-compare

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

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

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分享这个技巧并创建上面的屏幕录像。

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

稿定AI

稿定设计 是一个多功能的在线设计和创意平台,提供广泛的设计工具和资源,以满足不同用户的需求。从专业的图形设计师到普通用户,无论是进行图片处理、智能抠图、H5页面制作还是视频剪辑,稿定设计都能提供简单、高效的解决方案。该平台以其用户友好的界面和强大的功能集合,帮助用户轻松实现创意设计。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号