Beaglebone Black의 웹캠에서 파일로 비디오를 스트리밍하려면 어떻게 해야 합니까?

Beaglebone Black의 웹캠에서 파일로 비디오를 스트리밍하려면 어떻게 해야 합니까?

USB 웹캠의 일부 데이터를 BeagleBone Black 기반 장치의 파일로 스트리밍하려고 합니다. USB 연결을 테스트하려고 하므로 출력 형식에 대해서는 신경 쓰지 않고 CPU를 로드하므로 출력을 다시 인코딩하고 싶지 않습니다. 장치에는 비디오 카드도 없고 화면도 없으며 직렬 콘솔과 USB 포트만 있습니다. Debian Jessie(고대, 저도 알아요)를 실행하고 있습니다.

시도했지만 ffmpeg -f v4l2 -i /dev/video0 -vcodec copy -t 60 -stats test.rawffmpeg가 반환됩니다.

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

웹캠은 Logitech 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

카메라는 두 가지 형식을 제공합니다.원시 (yuyv422)그리고mjpeg.

원시의 경우:

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
  • 나는 원시 입력이 기본적으로 선택될 것이라고 생각합니다(그러나 제가 틀렸을 수도 있습니다). 그래서 게으르게 하고 싶다면 -input_format yuyv422원시 형식을 원한다면 생략할 수 있습니다.
  • -stats기본적으로 켜져 있으므로 이 옵션을 포함할 필요가 없습니다.
  • 가 포함된 다중화기 목록 과 및 가 ffmpeg -muxers포함된 개별 다중화기에 대한 정보를 참조하세요 .ffmpeg -h muxer=rawvideoffmpeg -h muxer=mjpeg
  • 보다FFmpeg video4linux2 문서상세 사항은.

관련 정보