我的ffmpeg流被保存到哪里?

时间:2013-03-13 02:56:01

标签: linux ffmpeg angstrom-linux

我刚刚开始探索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:/#

2 个答案:

答案 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