Grabbing DV from a video camera using DVGRAB/ Kdenlive
On my Kubuntu 64-bit PC I’ve got a Belkin IEE1394 (Firewire) card which I use for grabbing video of my Panasonic video camera. Whilst the Firewire card is detected, trying to use dvgrab from Terminal results in “Error: no camera exists”.
Entering lspci to display which pci cards have been detected by the OS shows:
00:0b.0 FireWire (IEEE 1394): Agere Systems FW322/323 (rev 04)
which I know is my Belkin card, therefore the OS has detected the card correctly.
However, all is not what it seems! If I place sudo in front of the command i.e. sudo dvgrab it works, capturing the video off the camera to a .dv file. So the issue is permissions, the problem is that the solution is not as obvious as it first seems.
There are plenty of suggested fixes on the Internet on getting this problem resolved, the most common seems to be around doing the following:
- Adding the user to the video group,
- Changing permissions for /dev/raw1394 to 666.
Whilst dvgrab would then work without sudo and capture in kdenlive also worked, there is one major drawback! /dev/raw1394 is created on the fly i.e. it only exists when an firewire device is plugged in and switched on. On rebooting the computer, the file is deleted and again created when a firewire device is detected. So changing the permissions of the file to 666 only works for that session.
Now you could write a script to run after you have turned on the firerwire device for the first time, which changed permissions on /dev/raw1394 to 666, but this is more of a hack rather than a fix.
The fix is actually to follow the Ubuntu community Firewire documentation https://help.ubuntu.com/community/Firewire which explains the problem in some detail and to apply the Method 3. ‘udev rule’ fix which allows dvgrab to work without sudo level access and removes the need to change permissions on /dev/raw1394 or changing anything else for that matter.
So just to clarify, to get dvgrab to work from terminal without sudo permissions, and therefore work in kdenlive, you need to do the following:
1. Add the user to the video group. From terminal you would enter:
useradd -G video username
Substitute the username with the username you wish to add to the video group
2. Run the commands documented in the Ubuntu community firewire documentation as referenced above, which for completeness are:
a. from terminal enter to create a udev rule for raw1394
echo ‘KERNEL==”raw1394″, GROUP=”video”‘ > /tmp/raw1394.rules
b. then enter:
sudo cp /tmp/raw1394.rules /etc/udev/rules.d/
c. then to tidy up, enter:
d. reboot PC.
Yes, it’s pretty crappy that you need to go through this just to capture from DV using firewire, but this problem also serves to illustrate why Linux remains a minority operating system on the desktop.
Yes, the information exists on the Internet to fix the problem, but there are a lot of hoops to jump through before you find the right answer applicable for your Linux version/ distribution. For the average user this is unacceptable and most will give up before even trying.
What I find even sadder is that this is a known bug in Ubuntu/ Linux since Ubuntu 8.10 (October 2008) release. It is still outstanding on Launchpad https://launchpad.net/ubuntu/+source/kino/+bug/6290 bug # 6290, of “low importance” and “unassigned”. Eight duplicates have also been raised on Launchpad relating to this bug, this is not a minor problem yet the Ubuntu/ Linux kernel developers don’t seem to be bothered about a fix any time soon. This sucks, after all it used to work prior to Ubuntu 8.10!
Powered by Bilbo Blogger