如何用ffmpeg获取USB摄像头数据并存储到本地?非常感谢!!!
环境:linux ubuntu 8.10
摄像头驱动安装完毕。用Ekiga软电话可以看到摄像机的视频。
ffmpeg的编译和安装都没有问题,而且用ffmpeg实现文件对文件的转换,以及从文件截取图片都没有问题。
目标:想用ffmpeg命令,以/dev/video0 文件作为输入,以test.asf(或者其他格式mpg,avi等都可以)为输出,
把摄像头的实时视频录制下来,存储为文件。
我用的命令是
ffmpeg -f video4linux -s 320*240 -r 10 -i /dev/video0 test.asf
运行的结果是
FFmpeg version SVN-r16967, Copyright (c) 2000-2009 Fabrice Bellard, et al.
configuration: --enable-pthreads --enable-x11grab --enable-memalign-hack --enable-gpl --enable-libmp3lame --disable-vhook
libavutil 49.14. 0 / 49.14. 0
libavcodec 52.11. 0 / 52.11. 0
libavformat 52.25. 0 / 52.25. 0
libavdevice 52. 1. 0 / 52. 1. 0
built on Feb 3 2009 15:22:03, gcc: 4.3.2
Input #0, video4linux, from '/dev/video0':
Duration: N/A, start: 1233715988.062058, bitrate: 9216 kb/s
Stream #0.0: Video: rawvideo, yuv420p, 320x240, 9216 kb/s, 10.00 tb(r)
Output #0, asf, to 'test.asf':
Stream #0.0: Video: msmpeg4, yuv420p, 320x240, q=2-31, 200 kb/s, 10.00 tb(c)
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
VIDIOCMCAPTURE: Invalid argument
frame= 1 fps= 0 q=6.5 Lsize= 32kB time=0.10 bitrate=2594.5kbits/s
video:28kB audio:0kB global headers:0kB muxing overhead 11.194542%
然后就退出了。生成的test.asf文件播放出来只有一个花屏图像闪了一下。
请教高手,感激不尽!谢谢啦!!!
如何用ffmpeg获取USB摄像头数据并存储到本地?
-
- 帖子: 1
- 注册时间: 2009-02-04 16:54
-
- 帖子: 2
- 注册时间: 2007-01-26 14:45
Re: 如何用ffmpeg获取USB摄像头数据并存储到本地?
我也和你一样的问题,但是我采集的数据是可以使用的。
我的只采集了3帧,然后就开始丢弃。
不知道问题在哪里,还是希望达人指点啊。
我的只采集了3帧,然后就开始丢弃。
不知道问题在哪里,还是希望达人指点啊。
-
- 帖子: 2
- 注册时间: 2007-01-26 14:45
Re: 如何用ffmpeg获取USB摄像头数据并存储到本地?
huzia@huzia-laptop:~$ sudo ffmpeg -f video4linux2 -s 320*240 -r 10 -i /dev/video0 test.asf
[sudo] password for huzia:
FFmpeg version git-60ff1c3, Copyright (c) 2000-2010 the FFmpeg developers
built on Apr 21 2010 20:39:20 with gcc 4.3.3
configuration:
libavutil 50.14. 0 / 50.14. 0
libavcodec 52.66. 0 / 52.66. 0
libavformat 52.61. 0 / 52.61. 0
libavdevice 52. 2. 0 / 52. 2. 0
libswscale 0.10. 0 / 0.10. 0
[video4linux2 @ 0xa7fd420][3]Capabilities: 5000001
[video4linux2 @ 0xa7fd420]Estimating duration from bitrate, this may be inaccurate
Input #0, video4linux2, from '/dev/video0':
Duration: N/A, start: 0.000000, bitrate: 0 kb/s
Stream #0.0: Video: mjpeg, yuvj422p, 320x240, 0 kb/s, 10 tbr, 1000k tbn, 10 tbc
Output #0, asf, to 'test.asf':
Metadata:
WM/EncodingSettings: Lavf52.61.0
Stream #0.0: Video: msmpeg4, yuv420p, 320x240, q=2-31, 200 kb/s, 1k tbn, 10 tbc
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
frame= 3 fps= 0 q=2.0 Lsize= 13kB time=0.30 bitrate= 355.4kbits/s dup=0 drop=524
video:10kB audio:0kB global headers:0kB muxing overhead 26.502136%
[sudo] password for huzia:
FFmpeg version git-60ff1c3, Copyright (c) 2000-2010 the FFmpeg developers
built on Apr 21 2010 20:39:20 with gcc 4.3.3
configuration:
libavutil 50.14. 0 / 50.14. 0
libavcodec 52.66. 0 / 52.66. 0
libavformat 52.61. 0 / 52.61. 0
libavdevice 52. 2. 0 / 52. 2. 0
libswscale 0.10. 0 / 0.10. 0
[video4linux2 @ 0xa7fd420][3]Capabilities: 5000001
[video4linux2 @ 0xa7fd420]Estimating duration from bitrate, this may be inaccurate
Input #0, video4linux2, from '/dev/video0':
Duration: N/A, start: 0.000000, bitrate: 0 kb/s
Stream #0.0: Video: mjpeg, yuvj422p, 320x240, 0 kb/s, 10 tbr, 1000k tbn, 10 tbc
Output #0, asf, to 'test.asf':
Metadata:
WM/EncodingSettings: Lavf52.61.0
Stream #0.0: Video: msmpeg4, yuv420p, 320x240, q=2-31, 200 kb/s, 1k tbn, 10 tbc
Stream mapping:
Stream #0.0 -> #0.0
Press [q] to stop encoding
frame= 3 fps= 0 q=2.0 Lsize= 13kB time=0.30 bitrate= 355.4kbits/s dup=0 drop=524
video:10kB audio:0kB global headers:0kB muxing overhead 26.502136%
-
- 帖子: 1
- 注册时间: 2011-05-03 19:42
Re: 如何用ffmpeg获取USB摄像头数据并存储到本地?
楼上正解,我使用的是raspberrypi ,安装的是archlinux,成功将视频保存了下来,我想向你学习,1732197759