ウェブカメラから Beaglebone Black 上のファイルにビデオをストリーミングするにはどうすればよいですか?

ウェブカメラから Beaglebone Black 上のファイルにビデオをストリーミングするにはどうすればよいですか?

USB ウェブカメラから BeagleBone Black ベースのデバイス上のファイルにデータをストリーミングしようとしています。USB 接続をテストしたいだけなので、出力形式は気にしていません。また、CPU に負荷がかかるため出力を再エンコードしたくありません。デバイスにはビデオ カードも画面もなく、シリアル コンソールと USB ポートしかありません。Debian Jessie を実行しています (古いのは承知しています)。

試してみましたffmpeg -f v4l2 -i /dev/video0 -vcodec copy -t 60 -stats test.rawが、ffmpegが返ってきました

[NULL @ 0x878c0] Unable to find a suitable output format for 'test.raw'
test.raw: Invalid argument

ウェブカメラはロジテック V-U0015 で、/dev/video0 として列挙されます。

編集、要求された情報:

~# ffmpeg -f v4l2 -list_formats all -i /dev/video0
ffmpeg version 2.6.9 Copyright (c) 2000-2016 the FFmpeg developers
  built with gcc 4.9.2 (Debian 4.9.2-10+deb8u1)
  configuration: --prefix=/usr --extra-cflags='-g -O2 -fstack-protector-strong -Wformat -Werror=format-security ' --ex
tra-ldflags='-Wl,-z,relro' --enable-shared --enable-libmp3lame --enable-gpl --enable-nonfree --enable-libvorbis --enab
le-pthreads --enable-libfaac --enable-libxvid --enable-postproc --enable-x11grab --enable-libgsm --enable-libtheora --
enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libx264 --enable-libspeex --enable-nonfree --disable-stri
pping --enable-libvpx --enable-libschroedinger --disable-encoder=libschroedinger --enable-version3 --enable-libopenjpe
g --enable-librtmp --enable-avfilter --enable-libfreetype --enable-libvo-aacenc --disable-decoder=amrnb --enable-libvo
-amrwbenc --enable-libaacplus --libdir=/usr/lib/arm-linux-gnueabihf --disable-vda --enable-libbluray --enable-libcdio 
--enable-gnutls --enable-frei0r --enable-openssl --enable-libass --enable-libopus --enable-fontconfig --enable-libpuls
e --disable-mips32r2 --disable-mipsdspr1 --disable-mipsdspr2 --enable-libvidstab --enable-libzvbi --enable-avresample 
--disable-htmlpages --disable-podpages --enable-libutvideo --enable-libfdk-aac --enable-libx265 --enable-libiec61883 -
-enable-libdc1394 --disable-altivec --shlibdir=/usr/lib/arm-linux-gnueabihf
  libavutil      54. 20.100 / 54. 20.100
  libavcodec     56. 26.100 / 56. 26.100
  libavformat    56. 25.101 / 56. 25.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 11.102 /  5. 11.102
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
[video4linux2,v4l2 @ 0x7cec0] Raw       :   yuyv422 :           YUYV 4:2:2 : 640x480 160x120 176x144 320x176 320x240 3
52x288 432x240 544x288 640x360 752x416 800x448 800x600 864x480 960x544 960x720 1024x576 1184x656 1280x720 1280x960
[video4linux2,v4l2 @ 0x7cec0] Compressed:     mjpeg :          Motion-JPEG : 640x480 160x120 176x144 320x176 320x240 3
52x288 432x240 544x288 640x360 752x416 800x448 800x600 864x480 960x544 960x720 1024x576 1184x656 1280x720 1280x960
/dev/video0: Immediate exit requested

答え1

カメラには 2 つの形式があります:生(yuyv422)そしてJPEG形式

生の場合:

ffmpeg -f v4l2 -input_format yuyv422 -i /dev/video0 -c copy -t 60 output.yuv

mjpegの場合:

ffmpeg -f v4l2 -input_format mjpeg -i /dev/video0 -c copy -t 60 output.mjpeg
  • デフォルトでは raw 入力が選択されると思いますが (間違っている可能性もあります)、面倒な場合は、-input_format yuyv422raw 形式が必要な場合は省略できます。
  • -statsデフォルトでオンになっているため、このオプションを含める必要はありません。
  • および を備えた muxer の一覧と、ffmpeg -muxersおよび を備えた個々の muxer に関する情報を参照してください。ffmpeg -h muxer=rawvideoffmpeg -h muxer=mjpeg
  • 見るFFmpeg video4linux2 ドキュメント詳細については。

関連情報