Linux 我的ffmpeg流保存到哪里?

Linux 我的ffmpeg流保存到哪里?,linux,ffmpeg,angstrom-linux,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

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

使用
CTRL+C
可以强制应用程序立即退出。执行此操作时,FFmpeg尚未完成您的文件。使用当前设置FFmpeg只会在输入流停止时完成文件,因为没有设置输出选项。因此,一种解决方案是在输出文件中添加一个时间选项,如
-t60
,其中60以秒为单位

ffmpeg -f video4linux2 -r 25 -s 640x480 -i /dev/video0 -t 60 /out.avi
另一种解决方案是停止输入流,如断开/卸载相机。然后流停止,文件自动写入。(不完全正确,因为FFmpeg实际上是在每一帧之后写入每一帧,但并没有完成文件。不必担心这一点…

Fire following命令

whereis ffmpeg

正斜杠(
/
)表示。您是否检查了文件的根目录?完整的ffmpeg控制台输出将非常有用。我确实检查过(最初它只是进入我的主目录,但我一直在玩)。我已经添加了完整的输出。也许可以尝试指定捕获的时间限制。”-t 1'应该做一秒钟。我想问题可能是早期的Ctrl-C可能会把事情搞砸。限制捕获时间可能会给FFmpeg一个优雅退出的机会。另一个想法是将单个帧的CRC打印到标准输出,而不是将帧转储到文件中。为此,请将“/out.avi”替换为“-f framecrc-”。以root用户身份运行ffmpeg不是一个好主意。如果这是您的问题,请将您的安全设置为允许组访问视频设备。@cmevoli,为什么以root身份运行它不是一个好主意(与以root身份运行其他任何操作相比)