Using the Ion "Video Forever" USB video capture box on Linux
The Ion “Video Forever” is a fairly unremarkable USB2 video capture box. Hardware wise, it's very similar to the Terratec Grabby (linuxtv wiki link) but uses a different AC97 codec. I picked it up for some years ago from a Maplins bargain-bin for £30.
It identifies itself to the USB host as:
- USB ID EB1A:5124 (Vendor ID 0xEB1A, Product ID 0x5124)
- Product string “USB VIDBOX FW”
- Serial number “USB2.0 VIDBOX FW”
It has composite and S-Video video inputs, and stereo audio inputs.
Using with VLC
You need to set the video width to 720 and height to 576. These are in “advanced options”.
Remember to set the audio device correctly.
Using with FFMPEG
Here's a script to record the video from the Video Forever into an MP4 file:
#!/bin/bash -xe # # -y: overwrite without asking # v4l2 line: Ion Video Forever dongle, usb, video2 dev # alsa line: Ion Video Forever audio path # vf scale: video is 16x9 force scaled to 4x3, correct this # map channel: in audio is mono on left channel -- convert to same on both channels # (use map 1.0.1 1.0.1 for right channel) # preset veryfast: faster MPEG4 encoding # b:v: video bitrate # # video bitrate VBITRATE=8M # This is necessary to produce MP4 video which can be decoded with hardware decoders VSET="-profile:v high -pix_fmt yuv420p -level:v 4.1 -vcodec libx264" # AAC audio ASET="-acodec aac" # Video encode preset PRESET="-preset veryfast" # -- Scaling method -- # Resize the video before baking it into MP4 SCALE="scale=1024x576" # Set the display aspect ratio to 16:9 in the output video # Doesn't work on OBS -- but reduces processing during capture #SCALE="setdar=dar=16/9" ffmpeg -y \ -f v4l2 -video_size 720x576 -i /dev/video2 \ -f alsa -i hw:1,0 \ -vf "$SCALE" \ $VSET \ $ASET \ -map_channel 1.0.0 -map_channel 1.0.0 \ $PRESET -b:v $VBITRATE $1
Fixing hardware detection
The EM28xx driver doesn't detect the Video Forever by default. To work around this –
Edit /etc/modules
to add this line:
em28xx
Create /etc/modprobe.d/local-em28xx-ionvideo.conf
options em28xx card=67 install em28xx /sbin/modprobe --ignore-install em28xx $CMDLINE_OPTS && { echo eb1a 5124 > /sys/bus/usb/drivers/em28xx/new_id ; : ; }
These two changes cause the em28xx
driver to load on boot, override the detected board ID to 67, and add the new USB ID to the em28xx driver when it loads.