Adding filter to DSLR camera video footage

  • There is a hacky way to do it using SplitCam. Snap Camera doesn't record great while applying filters, so instead of directly recording with Snap Camera, instead use it as an input to OBS and record from within OBS. Video here -> https://www.youtube.com/watch?v=0zoZ-Ap4FHc

    This method does not guarantee that the resulting video will be a frame-by-frame match with the original. If you need the lens applied frame-by-frame then you will need to write some code to control the whole process.

    Comment actions Permalink
  • @modelsbymike3d omg thank you so much!! Is there a Mac alternative to Split cam? I’m going to try the split cam on my windows pc but it would be great To be able to do it on my light Apple computer. How would I write some code to control the whole process, do you know how or know who’d know how to do that? Thank you so much!!!

    Comment actions Permalink
  • I don't know what a Mac alternative would be. The key thing about SplitCam is that you can load in a video and stream it as a webcam. I'm sure there are Mac alternatives out there.

    I actually do have a script that goes through frame-by-frame. It does not quite run in real time so things like particles wouldn't look great. And for whatever reason it gets off by one frame (but is consistently off).

    I will provide the Python script here, but I cannot provide much help with it. It will probably require some modifications to run on your computer, especially if you are using a Mac vs a PC. It is tricky to get everything setup and working nicely together, even if you already know Python.

    I provide the script here as-is.

     

    # This set OBS Virtual Cam for input to SplitCam
    # Set SplitCam as input to Snap Camera
    # Make sure the resolutions are all correct

    import glob
    import imageio
    import pyvirtualcam
    import numpy as np
    import cv2
    import time

    videoCaptureObject = cv2.VideoCapture(1)
    videoCaptureObject.set(cv2.CAP_PROP_BUFFERSIZE, 100)

    cam = pyvirtualcam.Camera(width=1920, height=1080, fps=30)
    print(f'Using virtual camera: {cam.device}')

    base_input_path = 'D:\\input'
    base_output_path = 'D:\\output'

    folder_names = [
        'frames0'
        # 'frames1',
        # 'frames2',
        # 'frames3',
        # 'frames4',
        # 'frames5',
        # 'frames6',
        # 'frames7',
        # 'frames8',
        # 'frames9',
        # 'frames10'
    ]

    has_started = False

    for f in folder_names:
        print(f)
        source_directory = base_input_path + f + '\\*.png'

        output_path = base_output_path + f + '\\'

        image_list = glob.glob(source_directory)
        print(str(len(image_list)) + ' files')
        for image_name in image_list:
            image = imageio.imread(image_name)
            filename = image_name.split('\\')[-1]
            print(filename)
            try:
                cam.send(image)
                time.sleep(0.04)
                # cam.sleep_until_next_frame()
                if not has_started:
                    input("Press Enter to continue...")
                    has_started = True
                ret, filterImage = videoCaptureObject.read()
                time.sleep(0.1)
                cv2.imwrite(output_path + filename, filterImage,
                            [int(cv2.IMWRITE_JPEG_QUALITY), 100])
            except Exception as e:
                print(e)
                cv2.imwrite(output_path + filename, image,
                            [int(cv2.IMWRITE_JPEG_QUALITY), 100])

    videoCaptureObject.release()
    Comment actions Permalink
  • Vincent Tang this script might be interesting to you 👆

    Maybe at some point Snap Camera could have an SDK or video editor plugin or something. There is a demand for applying lenses to arbitrary videos and currently the only method to get frame-by-frame control is with multiple virtual cameras and a hacky Python script. I'm okay with not doing this in real time, I just want to be able to update the image in Snap Camera, tell it when to re-render the frame (independent of the video fps), then grab the resulting image.

    Comment actions Permalink
  • @modelsbymike3d omg!! Thank you so much I appreciate it so much! Do you thinking could video call you and you walk me through installing the script with python on my MacBook or windows computer? I don’t know python thank you soo much for the script? What’s your Snapchat? Mine is @pegasusgoddess I hope to add you so you could
    Maybe walk me through or use Skype to control my computer to help me install it!! Thank you sooo much!

    Comment actions Permalink
Have a comment?

Please sign in to leave a comment.

We're here to help! We just need a little bit of information...

What system are you using?

Have you downloaded the latest version of Lens Studio?

Please download the latest version of Lens Studio. If you still run into this issue, please come back and report it!

Is this issue causing Lens Studio to crash?

What system do you run Lens Studio on?

Version

Graphics

Follow the next steps to help us solve your issue:

  • Copy and paste this text into your TerminalCommand Window
    open ~/Library/Preferences/Snap/Lens\ Studio/ %LOCALAPPDATA%\Snap\Lens Studio Copy Text
  • Press ReturnEnter to run the command. The Lens Studio folder will automatically open
  • Prepare to upload your files: zip the "Log" Folder by right-clicking and choosing "compress."
    Locate the Log.txt file right above it.

    Attach a screenshot of the issue:

Name:

Email:

What is this most relevant to?

Please enter a brief description of your issue:

Thanks for submitting this issue.

Unfortunately, it's likely due to the operating system or hardware you're using – since they don't meet the system requirements for Lens Studio.

Still, we hear you loud and clear, and are logging the issue in case there's ever a workaround we can provide!

Minimum Requirements

Operating System: Windows 10 (64 bit); MacOS 10.11+

Hardware: Minimum of Intel Core i3 2.5Ghz or AMD Phenom II 2.6Ghz with 4 GB RAM; Intel HD Graphics 4000 / Nvidia GeForce 710 / AMD Radeon HD 6450 or better; screen resolution of 1280x768 or higher

We'll try to resolve this issue as soon as possible. Thanks for letting us know about it!

Keep an eye out for a followup email from us. We may have a couple more questions for you, or we might already have a solution to offer.

Happy creating!