(I have changed the subject, because the subject has changed.) On Oct 14 01:59:39, Jacob Meuser wrote: > On Thu, Oct 14, 2010 at 12:05:09AM +0000, Jacob Meuser wrote: > > On Thu, Oct 14, 2010 at 12:59:37AM +0200, Jan Stary wrote: > > > On Oct 13 22:07:27, Jacob Meuser wrote: > > > > On Wed, Oct 13, 2010 at 11:51:47PM +0200, Jan Stary wrote: > > > > > This is a fresh upgrade of current/amd64 on a Macbook3,1. > > > > > Basically, everything works except the wifi and uvideo. > > > > > > > > > I installed the uvideo firmware as documented in uvideo(4). > > > > > I can capture an image with 'fswebcam image.jpg'; > > > > > I have problems capturing a video stream with > > > > > ffmpeg -y -f video4linux2 -s vga -r 25 -i /dev/video0 /tmp/out.mpg > > > > > (the fps eventually drops to 0 and results in a tiny file > > > > > containing just a few frames) but I haven't really tried > > > > > tweaking the format options. > > > > > > > > ffmpeg doesn't work with video(4). frankly, I don't understand why > > > > video(4) support is enabled in ffmpeg, giving the the impression it's > > > > supposed to work, when it clearly doesn't. > > > > > > On another machine (HP EliteBook 8530w running a recent -current) > > > I can capture video(4) just fine - using certain resolutions and frame > > > rates, that is. > > > > with ffmpeg? can you share your command, I've never gotten it to work.
This _sometimes_ works: ffmpeg -y -f video4linux2 -r 25 -s vga -i /dev/video out.mpg Other times, the fps gradually drops to zero. With the current ffmpeg (just built form svn), it consistently results in ffmpeg -y -f video4linux2 -r 25 -s vga -i /dev/video0 /tmp/out.m> FFmpeg version SVN-r25502, Copyright (c) 2000-2010 the FFmpeg developers built on Oct 16 2010 14:05:50 with gcc 4.2.1 20070719 configuration: libavutil 50.32. 3 / 50.32. 3 libavcore 0. 9. 1 / 0. 9. 1 libavcodec 52.92. 0 / 52.92. 0 libavformat 52.83. 0 / 52.83. 0 libavdevice 52. 2. 2 / 52. 2. 2 libavfilter 1.52. 0 / 1.52. 0 libswscale 0.12. 0 / 0.12. 0 [video4linux2 @ 0x83f3d080] ioctl set time per frame(1/25) failed /dev/video0: Input/output error It fails this way with any other framerate, too. So you are right: it doesn't work. > fwiw, this is what I use, because using ffmpeg to capture directly from > video(4) has never worked for me: > > $ video -f /dev/video1 -e yuy2 -s 640x480 -r 20 -o - | ffmpeg -y \ > -f rawvideo -pix_fmt yuyv422 -s 640x480 -r 20 -i - \ > -itsoffset 0.5 -f sndio -ar 16000 -ac 1 -i sun:1 out.avi This is much more reliable; without audio, I can capture just fine with $ video -f /dev/video -e yuy2 -s 640x480 -r 20 -o - \ | ffmpeg -y -f rawvideo -pix_fmt yuyv422 -s 640x480 -r 20 -i - out.avi However, the audio part does not work for me. The ffmpeg-20100512p4 package says $ video -f /dev/video -e yuy2 -s 640x480 -r 20 -o - \ | ffmpeg -y -f rawvideo -pix_fmt yuyv422 -s 640x480 -r 20 -i - \ -f sndio -ar 16000 -ac 1 -i sun:1 out.avi FFmpeg version SVN-r23102, Copyright (c) 2000-2010 the FFmpeg developers built on Oct 11 2010 18:27:01 with gcc 4.2.1 20070719 configuration: --enable-shared --cc=cc --disable-altivec --disable-armv5te --disable-armv6 --disable-armv6t2 --disable-armvfp --disable-debug --disable-indev=jack --disable-indev=oss --disable-iwmmxt --disable-neon --disable-optimizations --disable-outdev=oss --enable-gpl --enable-libfaac --enable-libfaad --enable-libgsm --enable-libmp3lame --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libx264 --enable-nonfree --enable-postproc --enable-pthreads --enable-runtime-cpudetect --enable-x11grab --extra-cflags=-I/usr/local/include -I/usr/X11R6/include --extra-libs=-L/usr/local/lib -L/usr/X11R6/lib --mandir=/usr/local/man libavutil 50.15. 2 / 50.15. 2 libavcodec 52.67. 0 / 52.67. 0 libavformat 52.62. 0 / 52.62. 0 libavdevice 52. 2. 0 / 52. 2. 0 libavfilter 1.20. 0 / 1.20. 0 libswscale 0.10. 0 / 0.10. 0 libpostproc 51. 2. 0 / 51. 2. 0 [rawvideo @ 0x80239080]Estimating duration from bitrate, this may be inaccurate Input #0, rawvideo, from 'pipe:': Duration: N/A, start: 0.000000, bitrate: N/A Stream #0.0: Video: rawvideo, yuyv422, 640x480, 20 tbr, 20 tbn, 20 tbc [sndio @ 0x83bc9080]Could not open sndio device sun:1: Input/output error I get the same result with -f sndio -i /dev/audio. I get the same result with or without aucat running. The svn install of ffmpeg doesn't even recognize sndio as a format (Unknown input format: 'sndio'). It does recognize -f oss, and I can capture both video and audio with $ video -f /dev/video -e yuy2 -s 640x480 -r 20 -o - \ | ffmpeg -y -f rawvideo -pix_fmt yuyv422 -s 640x480 -r 20 -i - \ -f sndio -ar 48000 -ac 2 -i /dev/audio out.avi > the audio is just slightly ahead (out of sync) without the -itsoffset. > the sndio backend in ffmpeg has fairly accurate timestamping; the > stamps should represent when the sound actually happened. video(1) otoh > is just outputting a stream of raw frames, so ffmpeg assumes the > frames' timestamp is when they are read from stdin. apparently on this > system with this camera it takes about a half second for images to be > captured and sent to stdout. Yes, the above records an out of sync A/V stream, and -itsoffset can fix it. Thanks! Jan