视频 “杂交” 器,将两个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!
Go to file
happycola233 5a98d14890 add
2024-07-18 11:49:47 +08:00
res add 2024-07-16 10:43:23 +08:00
src add 2024-07-16 10:43:23 +08:00
.gitignore Initial commit 2024-07-15 20:27:59 +08:00
LICENSE Initial commit 2024-07-15 20:27:59 +08:00
README_EN.md add 2024-07-18 11:49:47 +08:00
README.md add 2024-07-18 11:49:47 +08:00

🇨🇳 中文简体 | 🇬🇧 English

VideoHybridizer

VideoHybridizer is a powerful tool that interleaves frames from two video streams to generate a new video at 120 fps.

You can upload the synthesized video created with this program to online video platforms (such as Bilibili, a well-known video platform in China), then adjust the quality (different frame rates) to see completely different visuals!

Currently, this program supports Windows 7 and above, 64-bit operating systems.

Screenshot

Tip

This program features:

  • Multiple Format Support: Supports various input and output video formats such as MP4, AVI, MOV, MKV, WMV, etc.
  • Custom Bitrate Support: Allows custom bitrate settings for video compression.
  • Intuitive User Interface: Has a user-friendly graphical interface (GUI) for ease of use.
  • Real-time Progress Display: Shows real-time progress of video processing.
  • Log Tracking: Logs detailed processing information for user reference.

Note

Consider the following when using this program:

  1. Ensure that both videos to be processed have the same resolution.
  2. If the lengths of the videos differ, excess frames from the longer video will be discarded after synthesis.
  3. After clicking the "Start Synthesis" button, the program converts both videos to 60 fps first, then uses frame interleaving strategy to synthesize a video at 120 fps.
  4. Currently, this program processes only video frames, so the synthesized video will be without sound. If needed, you can manually add audio using other software.

Operational Principle

Let An denote the nth frame from video A, and Bn denote the nth frame from video B.

Video A (60 fps):

A1 A2 A3 A4 ...

Video B (60 fps):

B1 B2 B3 B4 ...

Synthesized Video (120 fps):

A1 B1 A2 B2 A3 B3 A4 B4 ...

FAQs

Why do I see a black console window when running the program, and can I close it?

No, you cannot close it! Closing the console window will terminate the program. The appearance of the black console window is because by default, the Python interpreter opens a console window to display standard output and error messages when running scripts.

The program seems stuck after clicking "Start Synthesis." What should I do?

First, ensure that the input video formats are supported by the program and that the videos play correctly. Avoid using very large videos or videos with non-standard formats.

What does the synthesized video look like when selecting different frame rates on Bilibili?

  • Choosing 60 fps quality (available only to premium members and for certain videos) retains the 1st and 3rd frames from each set of 4 frames in the synthesized video, i.e., A1, A2, A3, A4, etc.
  • Choosing 30 fps quality retains the 2nd frame from each set of 4 frames in the synthesized video, i.e., B1, B3, B5, B7, etc.

Thus, different frame rate qualities on Bilibili show completely different visuals.

How can I see the hybrid effect locally?

  1. Set your device's screen refresh rate to 60 Hz.
  2. Open the video multiple times; you should see frames from video A sometimes and frames from video B at other times.

You might experience screen flickering during playback due to:

  1. Occasional flickering is normal as video players may not render frames perfectly stable.
  2. Your device might not have enough resources to render frames at the same rate as playback, causing frame misalignment.

Solution: Change devices (bushi), check the "Compression" option in the program to reduce video bitrate and lighten device load.

Can future versions add sound to the synthesized video, using video A's sound for the left channel and video B's sound for the right channel?

This is a great idea, but currently, we do not have plans to develop this feature. If you can code a solution for this feature, feel free to submit a Pull Request.

Contribution

We welcome suggestions and contributions to this project. Please submit issues or Pull Requests to this repository!

If you wish to further develop on the source code, you will need:

  1. Required Software:
  • Python 3.x
  • pip (Python package manager)
  1. Install libraries:
pip install opencv-python moviepy pywin32

License

This project is licensed under the MIT License.

Star History

Star History Chart