Jacek Pop³awski wrote:
>
> I just installed NuppelVideo-0.4a. It can record movie even on slow computers
> (of course 25 fps), sync is _perfect_ (without v4l2!). It records *.nuv file
> (huge), which can be played or converted to divx (didn't tried yet). You can
> find it here: http://mars.tuwien.ac.at/~roman/nuppelvideo/
>
> _______________________________________________
> Video4linux-list mailing list
> Video4linux-list@xxxxxxxxxx
> https://listman.redhat.com/mailman/listinfo/video4linux-list
I've just tried it, and it's excellent, even on my PII 266MHz!
I did find initially that it would only record video about 1-in-5 times,
which can be fixed with the attached patch against
NuppelVideo-0.4a.tar.gz
The patch just moves the initial VIDIOCMCAPTURE to be immmediately
before the capture loop, so that they will not have completed before the
first VIDIOCSYNC.
Ben
P.S. If you're converting from .nuv to DivX ;-) .avi, then try the
awesome mplayer to play them:
http://thot.banki.hu/esp-team/MPlayer.html
--- nuvrec.c.orig Sun Mar 25 14:23:12 2001
+++ nuvrec.c Sun Mar 25 16:49:45 2001
@@ -729,7 +729,7 @@
case 'W': w = atoi(optarg); break;
case 'H': h = atoi(optarg); break;
case 'x': videomegs = atoi(optarg); break;
- case 'y': videomegs = atoi(optarg); break;
+ case 'y': audiomegs = atoi(optarg); break;
case 'p': ntsc = 0; break;
case 'n': ntsc = 1; break;
case 's': ntsc = 0; secam=1; break;
@@ -854,7 +854,7 @@
if(ioctl(fd, VIDIOCGMBUF, &vm)<0)
{
- perror("VIDIOCMCAPTUREi0");
+ perror("VIDIOCGMBUF");
exit(-1);
}
if(vm.frames<2)
@@ -891,16 +891,6 @@
// if(ioctl(fd, VIDIOCGCAPTURE|VIDEO_CAPTURE_ODD, &vc)<0) perror("VIDIOCGCAPTURE-ODD");
- mm.frame = 0;
- mm.height = h;
- mm.width = w;
- mm.format = VIDEO_PALETTE_YUV420P ; /* YCrCb422 */
- if(ioctl(fd, VIDIOCMCAPTURE, &mm)<0) perror("VIDIOCMCAPTUREi0");
- mm.frame = 1;
- if(ioctl(fd, VIDIOCMCAPTURE, &mm)<0) perror("VIDIOCMCAPTUREi1");
-
-
-
vchan.channel = channel;
if(ioctl(fd, VIDIOCGCHAN, &vchan)<0) perror("VIDIOCGCHAN");
@@ -927,6 +917,13 @@
// make sure we use the right input
if(ioctl(fd, VIDIOCSCHAN, &vchan)<0) perror("VIDIOCSCHAN");
+ mm.frame = 0;
+ mm.height = h;
+ mm.width = w;
+ mm.format = VIDEO_PALETTE_YUV420P ; /* YCrCb422 */
+ if(ioctl(fd, VIDIOCMCAPTURE, &mm)<0) perror("VIDIOCMCAPTUREi0");
+ mm.frame = 1;
+ if(ioctl(fd, VIDIOCMCAPTURE, &mm)<0) perror("VIDIOCMCAPTUREi1");
while(1) {
frame=0;
mm.frame = 0;