Screenshot is of me tunneling into my headless analog video capture server I put together out of an old Thinkserver and a Magewell 1080p capture card, both of which were ebay gambles.

Here’s the flow:

  • VCR and Hi8 decks -->
  • Kramer VPC-23 AV Switcher -->
  • RetroTINK 4k, upscaled to 1080p HDMI -->
  • Magewell Pro Capture card -->
  • Thinkserver RS140

AntiX headless install on the server. I ssh in to kick off the capture script I wrote, which also publishes a preview video stream to my LAN. I then just kick back and tune in via mpv.

I went as far as setting up an nfs share on the server, so after a capture I can pull it onto my workstation, to trim, edit, etc.

  • curbstickle@anarchist.nexusM
    link
    fedilink
    English
    arrow-up
    4
    ·
    16 hours ago

    Solid kit!

    I do something similar, but slightly different hardware. My VCR is a fun Panasonic that has VHS, DVD, and FireWire for minidv (I still have my minidv camcorder, though I may give it to my oldest who is interested in movie making).

    DVD and FireWire inputs come out HDMI and component, but anything from VHS sources is composite or s-video only. So that output goes to an AJA D5D for SDI out, which goes to a black magic decklink for capture. HDMI goes to an Inogeni 4KXUSB3 for reference, I still rip DVD’s here and there, usually oddballs I’ve picked up at garage sales that are worth keeping around on my NAS.

    Its mostly a manual operation though, would love to see (an appropriately redacted version of) your capture script! Right now I switch my (not really, but kind of) KVM for my servers over to that machine, and start things off through the GUI.

    • Dr. Wesker@lemmy.sdf.orgOP
      link
      fedilink
      English
      arrow-up
      3
      ·
      edit-2
      15 hours ago

      The script is nothing to write home about at the moment, with most of my time being spent just dialing it in for performance given the age of the Thinkserver. I feel that’s pretty squared away, so the next step is updating it to accept args for things like fps, resolution, etc.

      #!/bin/sh
      
      AUDIO_DEV="hw:CARD=HDMI,DEV=0"
      FPS=60
      OUTDIR="/home/wesker/capture"
      PREVIEW_URL="udp://netsphere.lab:5000?pkt_size=1316"
      
      exec ffmpeg -hide_banner \
        -thread_queue_size 2048 -f v4l2 -input_format yuyv422 \
          -video_size 1920x1080 -framerate "$FPS" -i /dev/video0 \
        -thread_queue_size 2048 -f alsa -i "$AUDIO_DEV" \
        -map 0:v -map 1:a \
          -c:v dnxhd -profile:v dnxhr_sq -c:a pcm_s16le \
          "$OUTDIR/$(date +%F-%H%M%S).mov" \
        -map 0:v -map 1:a \
          -c:v libx264 -preset ultrafast -tune zerolatency -g 20 \
          -c:a aac -b:a 128k \
          -f mpegts "$PREVIEW_URL"