Analog Video Extravaganza

Поделиться
HTML-код
  • Опубликовано: 25 окт 2024

Комментарии • 15

  • @vertujoe2886
    @vertujoe2886 5 месяцев назад +5

    Besides the low color bandwidth, wobbly corners, and head switching noise introduced by the VCR, the "genuineness" of 90s home video looks also includes low dynamic range, exposure curve characteristics, and white balance deviation from home video camcorders. and these only scratch on the surface of camera characteristics, not to mention high gain color loss and grain, composite video color spill, tube camera high light trailing, etc., etc. These are a whole other rabbit black hole. Do you have any plans to implement this "camera artifact" effect? Do you think it would be better to do this as one whole project or split it into two projects?

    • @untodesu
      @untodesu  5 месяцев назад +2

      A separate filter pipeline would be the best solution, RITEG can do this, as for making the current effect more realistic, I might do actual signal processing. Though FM seems harder to demodulate than QAM for chrominance

  • @reverseretro1961
    @reverseretro1961 5 месяцев назад +2

    Well that's one way to simulate it. A simple way compared to what I'd want to try to do.
    Which would be to create a physical model of a VCR itself, so the quality of the tape is affected by the virtual tape grade/condition (like how dense the magnetic particles are and if there are any minor wrinkles in the tape,) tape transport, condition of the heads, the tracking setting, etc... so it would be possible to configure it to perform EXACTLY like your own physical VCR with almost no difference in quality. So you could copy virtual tapes to each other over and over again to get that nice and gritty generation loss.
    But would probably make even high-end PCs struggle.

    • @untodesu
      @untodesu  5 месяцев назад

      A better idea would be to just consider simulating signal stuff using DSP, because the general bandwidth is about 6 MHz, sample rate would be equal to 12 MHz. NTSC line rate is 15750 Hz, assume VHS is half of that (7875 Hz). A single scanline then takes about 0.00012698412 seconds (about 128 microseconds); This would mean a single scanline is about 1600 samples (pixels if you will) long. Assuming we use 32-bit floats, a single scanline is 6400 bytes, the whole frame is 3072000 bytes, about 3 mebibytes - nothing for modern machines.
      The main issue with this however is the fact that you'd have to FM-modulate luminance. FM itself isn't that big of a deal; however, demodulating one in GLSL in my case would be TORTUROUS to implement but RITEG is technically a community projects so I'm open to contributions ;)

    • @reverseretro1961
      @reverseretro1961 5 месяцев назад +1

      vhs-decode exists so it can demodulate raw VHS RF signals output from the virtual modulator/processor, so the demodulation portion doesn't need to be implemented. if you haven't, I highly recommend reading up on it.
      yes, in the analog domain the effective bandwidth of VHS is 6MHz, but there are overtones that need to be dealt with- the lowest "safe" frequency to capture RF at has been tested to be around 18MHz, so the DSP sample rate should be more than or equal to that. It also can be 8 bits because VHS has an effective entropy of 6 or 7 bits since analog tape is inherently noisy.
      The VHS line rate is the same as the NTSC line rate, as it's 262.5 lines per field, 59.94 fields per second.
      Also, I think I didn't mention this, but the headswitch noise from VCR to VCR can vary greatly- it can manifest as either just 1-3 lines being jittery or displaced up to halfway left or right on the screen and/or with wonky color, since there can be a momentary gap between the heads switching so the demodulation circuitry goes out of alignment for a very short time.
      and because of how the hi-fi audio system works, the audio can interfere with the video.

    • @untodesu
      @untodesu  5 месяцев назад +1

      @@reverseretro1961 good to know I guess; I'm not that experienced into VHS internals so that's some good information to know, will definitely look into vhs-decode

  • @JohnnyX50
    @JohnnyX50 5 месяцев назад +2

    Il just record my you tube content to the Sony VCR (original, not a modern replica) I have knocking about the place then capture it onto PC through my video dongle using the RF output and Taddaaa, original VCR VHS P...Poor quality in all it's glory :) Oh and I will narrate using my own voice and not some lazy AI thing :)

    • @untodesu
      @untodesu  5 месяцев назад +2

      Okay? I know how to do actual VHS filtering with a real VCR, in fact I've done it with my EAS video. This thing actually describes effects and how to correctly simulate them. Also it's not an AI voice but a conventional TTS

    • @marcusdamberger
      @marcusdamberger 5 месяцев назад +1

      I hate listening to any kind of robot voice, so artificial.. it's easy to spot, even the better AI versions are still annoying to listen to. Interesting video and what are the causes of video noise in VHS playback.

    • @untodesu
      @untodesu  5 месяцев назад +2

      @@marcusdamberger my heavy Russian accent and general speech problems would be less understandable than using a TTS

  • @mr.tesseract6854
    @mr.tesseract6854 5 месяцев назад +1

    Where did you get the TTS from?

    • @untodesu
      @untodesu  5 месяцев назад +1

      ttsmp3 thing

    • @mr.tesseract6854
      @mr.tesseract6854 5 месяцев назад +1

      Does it work in linux? How to use it in the command line?

    • @untodesu
      @untodesu  5 месяцев назад +1

      @@mr.tesseract6854 it's a web service, ttsmp3.com/

  • @RainDownpours
    @RainDownpours 4 месяца назад +1

    Wow! This is underrated! I've been looking for something like this for a while. I wrote my own VHS filter for ffmpeg. It only resize the luma and chroma, then combine them again. Yours also have ringing and noise.
    This is my filter if anyone wants to try:
    ffmpeg -i "%filename%" -lavfi "[0]extractplanes=y+u+v[y][u][v];[y]scale=334:ih[y1];[u]scale=40:ih[u1];[u1]scale=iw*sar:ih[u2];[v]scale=40:ih[v1];[v1]scale=iw*sar:ih[v2];[y1]scale=iw*sar:ih[y2];[y2][u2][v2]mergeplanes=format=yuv420p:map0s=0:map1s=1:map2s=2,setsar=1[out]" -map "[out]" -map 0:a:0? "%output%"