Skip to content

happycola233/VideoHybridizer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🇨🇳 中文简体 | 🇬🇧 English

VideoHybridizer——视频 “杂交” 器

视频 “杂交” 器是一个功能强大的工具,这个工具可以交替排列两个视频的帧,并合成一个 120 fps 的视频。

您可以将使用本程序合成的视频上传到在线视频平台(如哔哩哔哩),然后试着选择不同帧率的画质,您将能够看到完全不同的画面!

目前本程序仅支持 Windows 7 及以上的 64 位操作系统。

运行截图

Tip

本程序具有以下特性:

  • 支持多种格式:本程序支持多种输入和输出视频格式,如 MP4、AVI、MOV、MKV、WMV 等;
  • 允许自定码率:本程序支持自定义码率,可以减少输出视频的大小,对低端设备友好;
  • 直观用户界面:本程序具有直观的图形用户界面(GUI),易于操作;
  • 实时显示进度:本程序可以实时显示视频处理的进度;
  • 记录处理日志:本程序会记录处理过程中的详细信息,方便用户查看。

Note

使用本程序时需注意以下几点:

  1. 待处理的两个视频应保证分辨率相同
  2. 若待处理的两个视频长度不相同,合成后的视频会按最短视频流截断,并同步裁剪保留的音轨;
  3. 点击 “开始合成” 按钮后,程序会先将两个视频转换为 60 fps,然后使用间隔放帧的策略,合成出 120 fps 的视频;
  4. 最终输出只会保留视频 A 的音轨;若视频 A 本身没有音轨,则最终输出也不会有声音。

运行原理

假设 An 为视频 A 中的第 n 帧,Bn 为视频 B 中的第 n 帧。

视频 A (60 fps):

A1 A2 A3 A4 ……

视频 B (60 fps):

B1 B2 B3 B4 ……

合成后的视频 (120 fps):

A1 B1 A2 B2 A3 B3 A4 B4 ……

常见问题

点击 “开始合成” 按钮后,程序一直卡住,怎么办?

请先确认输入视频的格式是否被本程序支持,且视频播放不存在问题。若启用了硬件加速,请确保其与当前 GPU 对应;例如 AMD 显卡请选择 AMD AMF。如果选择正确后仍然失败,请尝试禁用硬件加速并改用软件编码。

在哔哩哔哩选择不同帧率的画质,看到的合成后的视频是怎样的?

  • 在选择 60 fps 画质(仅大会员与部分视频可用)时,B 站会对合成后的视频中的每 4 帧保留其中的第 1、3 帧,即 A1、A2、A3、A4 等;
  • 在选择 30 fps 画质时,B 站会对合成后的视频中的每 4 帧保留其中的第 2 帧,即 B1、B3、B5、B7 等。

所以在不同帧率的画质下能看到完全不同的画面。

如何在本地看到 “杂交” 的效果?

将设备的屏幕刷新率设置为 60 Hz,然后尝试打开视频多次,您看到的画面应该有时候是视频 A 中的,有时候是视频 B 中的。

当然,您在播放合成后的视频时可能会出现画面闪烁的现象。偶尔的闪烁是正常现象,因为:

  1. 播放器渲染视频时可能无法做到完全稳定;
  2. 有些设备渲染视频的速度比播放的速度慢,导致播放的帧错位。

解决方法:换设备(bushi), 勾选程序中的 “码率” 选项并适当降低输出码率,以减轻设备负担。

能否在后续版本中给合成后的视频添加声音,如一个声道使用视频 A 的声音,另一个声道使用视频 B 的声音?

这个想法不错,但是我们暂时没有精力去编写这个功能的代码。若您能编写出实现此功能的代码,我们欢迎您提交 Pull Request。

贡献

欢迎大家为本项目提出建议、做出贡献,我们欢迎您提交 Issue 或 Pull Request 到本仓库!

若您想要在源代码的基础上进行进一步开发,您需要:

  1. 准备必要软件:
  • Python 3.x
  • pip(Python包管理工具)
  • FFmpeg(把ffmpeg.exe和ffprobe.exe放到src/ffmpeg目录下,没有则新建)
  1. 安装库:

在控制台中输入以下命令:

pip install pywin32

许可证

此项目使用 MIT 许可证

About

视频 “杂交” 器,将两个60FPS视频的帧交替排列,生成一个新的120FPS视频。在不同的帧率下观看,您将看到完全不同的画面! The "VideoHybridizer" alternates frames from two 60FPS videos to create a new 120FPS video. Watching it at different frame rates, you'll see completely different visuals!

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages