我刚刚开始探索ffmpeg(最终用于openCV),我正在运行此命令:
root@beaglebone:/# ffmpeg -f video4linux2 -r 25 -s 640x480 -i /dev/video0 /out.avi
此时相机指示灯亮起且似乎正在捕捉。但是当我用CTRL+C
结束时,文件无处可寻。
有什么想法吗?
完整输出:
root@beaglebone:/# ffmpeg -f video4linux2 -r 25 -s 640x480 -i /dev/video0 /out.avi
ffmpeg version v0.7.4, Copyright (c) 2000-2011 the Libav developers
built on Oct 9 2012 10:50:57 with gcc 4.5.4 20120305 (prerelease)
configuration: --enable-shared --enable-pthreads --enable-gpl --enable-postproc --enable-avfilter --cross-prefix=arm-angstrom-linux-gnueabi- --prefix=/usr --enable-ffserver --enable-ffplay --enable-x11grab --enable-libtheora --enable-libvorbis --arch=arm --target-os=linux --enable-cross-compile --extra-cflags=' -fexpensive-optimizations -fomit-frame-pointer -O4 -ffast-math -march=armv7-a -fno-tree-vectorize -mthumb-interwork -mfloat-abi=softfp -mfpu=neon -mtune=cortex-a8 --sysroot=/home/koen/setup-scripts/build/tmp-angstrom_v2012_05-eglibc/sysroots/beaglebone' --extra-ldflags='-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed' --sysroot=/home/koen/setup-scripts/build/tmp-angstrom_v2012_05-eglibc/sysroots/beaglebone --enable-hardcoded-tables --cpu=cortex-a8
libavutil 51. 7. 0 / 51. 7. 0
libavcodec 53. 6. 0 / 53. 6. 0
libavformat 53. 3. 0 / 53. 3. 0
libavdevice 53. 0. 0 / 53. 0. 0
libavfilter 2. 4. 0 / 2. 4. 0
libswscale 2. 0. 0 / 2. 0. 0
libpostproc 52. 0. 0 / 52. 0. 0
^C
root@beaglebone:/# ls
bin dev home lost+found mnt proc sbin tmp var
boot etc lib media opt run sys usr
root@beaglebone:/#
答案 0 :(得分:0)
使用CTRL+C
强制您的应用程序立即退出。这样做你的文件还没有由FFmpeg完成。使用当前设置FFmpeg只会在输入流停止时完成您的文件,因为没有设置输出选项。因此,一种解决方案是在输出文件中添加-t 60
等时间选项,其中60秒为秒。
ffmpeg -f video4linux2 -r 25 -s 640x480 -i /dev/video0 -t 60 /out.avi
另一种解决方案是停止输入流,例如断开/卸下摄像头。然后流停止,您的文件自动写入。 (不完全正确,因为FFmpeg实际上是在每帧之后写入每一帧,但没有完成文件。不要为此烦恼...)
答案 1 :(得分:0)
触发以下命令
whereis ffmpeg