При использовании модуля FFSmpeg dshow в качестве данных с веб-камеры используется MJPEG.

Input #0, dshow, from 'video=Logitech HD Pro Webcam C920:audio=CABLE Output (VB-Audio Virtual Cable)':
  Duration: N/A, start: 17980.693000, bitrate: N/A
    Stream #0:0: Video: mjpeg (MJPG / 0x47504A4D), yuvj422p(pc, bt470bg/unknown/unknown), 640x480, 30 tbr, 10000k tbn, 30 tbc
    Stream #0:1: Audio: pcm_s16le, 44100 Hz, 2 channels, s16, 1411 kb/s

Моя веб-камера поддерживает аппаратное кодирование MPEG-4, которое определенно поможет мне сэкономить некоторую пропускную способность USB, и тогда мне не придется транскодировать в MPEG-4, освобождая кучу процессоров.

Можно ли использовать веб-камеры MPEG-4 с DirectShow API? И если это так, возможно ли это сделать с помощью модуля FFmpeg dshow?

Редактировать: вывод из -list_options true:

\Brad\bin\ffmpeg -list_options true -f dshow -i video="Logitech HD Pro Webcam C920"
ffmpeg version N-67731-gce80f9f Copyright (c) 2000-2014 the FFmpeg developers
  built on Nov 15 2014 22:54:40 with gcc 4.9.2 (GCC)
  configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-avisynth --enable-bzlib --enable-font
config --enable-frei0r --enable-gnutls --enable-iconv --enable-libass --enable-libbluray --enable-libbs2b --enable-
libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3la
me --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-libopus --enable-librtmp --e
nable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab
 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libw
ebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-zlib
  libavutil      54. 13.100 / 54. 13.100
  libavcodec     56. 12.101 / 56. 12.101
  libavformat    56. 13.100 / 56. 13.100
  libavdevice    56.  3.100 / 56.  3.100
  libavfilter     5.  2.103 /  5.  2.103
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  1.100 /  1.  1.100
  libpostproc    53.  3.100 / 53.  3.100
[dshow @ 0000000002c457c0] DirectShow video device options
[dshow @ 0000000002c457c0]  Pin "Capture"
[dshow @ 0000000002c457c0]   pixel_format=bgr24  min s=640x480 fps=5 max s=640x480 fps=30
[dshow @ 0000000002c457c0]   pixel_format=bgr24  min s=160x90 fps=5 max s=160x90 fps=30
[dshow @ 0000000002c457c0]   pixel_format=bgr24  min s=160x120 fps=5 max s=160x120 fps=30
[dshow @ 0000000002c457c0]   pixel_format=bgr24  min s=176x144 fps=5 max s=176x144 fps=30
[dshow @ 0000000002c457c0]   pixel_format=bgr24  min s=320x180 fps=5 max s=320x180 fps=30
[dshow @ 0000000002c457c0]   pixel_format=bgr24  min s=320x240 fps=5 max s=320x240 fps=30
[dshow @ 0000000002c457c0]   pixel_format=bgr24  min s=352x288 fps=5 max s=352x288 fps=30
[dshow @ 0000000002c457c0]   pixel_format=bgr24  min s=432x240 fps=5 max s=432x240 fps=30
[dshow @ 0000000002c457c0]   pixel_format=bgr24  min s=640x360 fps=5 max s=640x360 fps=30
[dshow @ 0000000002c457c0]   pixel_format=bgr24  min s=800x448 fps=5 max s=800x448 fps=30
[dshow @ 0000000002c457c0]   pixel_format=bgr24  min s=800x600 fps=5 max s=800x600 fps=30
[dshow @ 0000000002c457c0]   pixel_format=bgr24  min s=864x480 fps=5 max s=864x480 fps=30
[dshow @ 0000000002c457c0]   pixel_format=bgr24  min s=960x720 fps=5 max s=960x720 fps=30
[dshow @ 0000000002c457c0]   pixel_format=bgr24  min s=1024x576 fps=5 max s=1024x576 fps=30
[dshow @ 0000000002c457c0]   pixel_format=bgr24  min s=1280x720 fps=5 max s=1280x720 fps=30
[dshow @ 0000000002c457c0]   pixel_format=bgr24  min s=1600x896 fps=5 max s=1600x896 fps=30
[dshow @ 0000000002c457c0]   pixel_format=bgr24  min s=1920x1080 fps=5 max s=1920x1080 fps=30
[dshow @ 0000000002c457c0]   pixel_format=bgr24  min s=2304x1296 fps=2 max s=2304x1296 fps=2
[dshow @ 0000000002c457c0]   pixel_format=bgr24  min s=2304x1536 fps=2 max s=2304x1536 fps=2
[dshow @ 0000000002c457c0]   pixel_format=yuv420p  min s=640x480 fps=5 max s=640x480 fps=30
[dshow @ 0000000002c457c0]   pixel_format=yuv420p  min s=160x90 fps=5 max s=160x90 fps=30
[dshow @ 0000000002c457c0]   pixel_format=yuv420p  min s=160x120 fps=5 max s=160x120 fps=30
[dshow @ 0000000002c457c0]   pixel_format=yuv420p  min s=176x144 fps=5 max s=176x144 fps=30
[dshow @ 0000000002c457c0]   pixel_format=yuv420p  min s=320x180 fps=5 max s=320x180 fps=30
[dshow @ 0000000002c457c0]   pixel_format=yuv420p  min s=320x240 fps=5 max s=320x240 fps=30
[dshow @ 0000000002c457c0]   pixel_format=yuv420p  min s=352x288 fps=5 max s=352x288 fps=30
[dshow @ 0000000002c457c0]   pixel_format=yuv420p  min s=432x240 fps=5 max s=432x240 fps=30
[dshow @ 0000000002c457c0]   pixel_format=yuv420p  min s=640x360 fps=5 max s=640x360 fps=30
[dshow @ 0000000002c457c0]   pixel_format=yuv420p  min s=800x448 fps=5 max s=800x448 fps=30
[dshow @ 0000000002c457c0]   pixel_format=yuv420p  min s=800x600 fps=5 max s=800x600 fps=30
[dshow @ 0000000002c457c0]   pixel_format=yuv420p  min s=864x480 fps=5 max s=864x480 fps=30
[dshow @ 0000000002c457c0]   pixel_format=yuv420p  min s=960x720 fps=5 max s=960x720 fps=30
[dshow @ 0000000002c457c0]   pixel_format=yuv420p  min s=1024x576 fps=5 max s=1024x576 fps=30
[dshow @ 0000000002c457c0]   pixel_format=yuv420p  min s=1280x720 fps=5 max s=1280x720 fps=30
[dshow @ 0000000002c457c0]   pixel_format=yuv420p  min s=1600x896 fps=5 max s=1600x896 fps=30
[dshow @ 0000000002c457c0]   pixel_format=yuv420p  min s=1920x1080 fps=5 max s=1920x1080 fps=30
[dshow @ 0000000002c457c0]   pixel_format=yuv420p  min s=2304x1296 fps=2 max s=2304x1296 fps=2
[dshow @ 0000000002c457c0]   pixel_format=yuv420p  min s=2304x1536 fps=2 max s=2304x1536 fps=2
[dshow @ 0000000002c457c0]   vcodec=mjpeg  min s=640x480 fps=5 max s=640x480 fps=30
[dshow @ 0000000002c457c0]   vcodec=mjpeg  min s=160x90 fps=5 max s=160x90 fps=30
[dshow @ 0000000002c457c0]   vcodec=mjpeg  min s=160x120 fps=5 max s=160x120 fps=30
[dshow @ 0000000002c457c0]   vcodec=mjpeg  min s=176x144 fps=5 max s=176x144 fps=30
[dshow @ 0000000002c457c0]   vcodec=mjpeg  min s=320x180 fps=5 max s=320x180 fps=30
[dshow @ 0000000002c457c0]   vcodec=mjpeg  min s=320x240 fps=5 max s=320x240 fps=30
[dshow @ 0000000002c457c0]   vcodec=mjpeg  min s=352x288 fps=5 max s=352x288 fps=30
[dshow @ 0000000002c457c0]   vcodec=mjpeg  min s=432x240 fps=5 max s=432x240 fps=30
[dshow @ 0000000002c457c0]   vcodec=mjpeg  min s=640x360 fps=5 max s=640x360 fps=30
[dshow @ 0000000002c457c0]   vcodec=mjpeg  min s=800x448 fps=5 max s=800x448 fps=30
[dshow @ 0000000002c457c0]   vcodec=mjpeg  min s=800x600 fps=5 max s=800x600 fps=30
[dshow @ 0000000002c457c0]   vcodec=mjpeg  min s=864x480 fps=5 max s=864x480 fps=30
[dshow @ 0000000002c457c0]   vcodec=mjpeg  min s=960x720 fps=5 max s=960x720 fps=30
[dshow @ 0000000002c457c0]   vcodec=mjpeg  min s=1024x576 fps=5 max s=1024x576 fps=30
[dshow @ 0000000002c457c0]   vcodec=mjpeg  min s=1280x720 fps=5 max s=1280x720 fps=30
[dshow @ 0000000002c457c0]   vcodec=mjpeg  min s=1600x896 fps=5 max s=1600x896 fps=30
[dshow @ 0000000002c457c0]   vcodec=mjpeg  min s=1920x1080 fps=5 max s=1920x1080 fps=30
[dshow @ 0000000002c457c0]  Pin "Capture"
[dshow @ 0000000002c457c0]   vcodec=h264  min s=640x480 fps=5 max s=640x480 fps=30
[dshow @ 0000000002c457c0]   vcodec=h264  min s=160x90 fps=5 max s=160x90 fps=30
[dshow @ 0000000002c457c0]   vcodec=h264  min s=160x120 fps=5 max s=160x120 fps=30
[dshow @ 0000000002c457c0]   vcodec=h264  min s=176x144 fps=5 max s=176x144 fps=30
[dshow @ 0000000002c457c0]   vcodec=h264  min s=320x180 fps=5 max s=320x180 fps=30
[dshow @ 0000000002c457c0]   vcodec=h264  min s=320x240 fps=5 max s=320x240 fps=30
[dshow @ 0000000002c457c0]   vcodec=h264  min s=352x288 fps=5 max s=352x288 fps=30
[dshow @ 0000000002c457c0]   vcodec=h264  min s=432x240 fps=5 max s=432x240 fps=30
[dshow @ 0000000002c457c0]   vcodec=h264  min s=640x360 fps=5 max s=640x360 fps=30
[dshow @ 0000000002c457c0]   vcodec=h264  min s=800x448 fps=5 max s=800x448 fps=30
[dshow @ 0000000002c457c0]   vcodec=h264  min s=800x600 fps=5 max s=800x600 fps=30
[dshow @ 0000000002c457c0]   vcodec=h264  min s=864x480 fps=5 max s=864x480 fps=30
[dshow @ 0000000002c457c0]   vcodec=h264  min s=960x720 fps=5 max s=960x720 fps=30
[dshow @ 0000000002c457c0]   vcodec=h264  min s=1024x576 fps=5 max s=1024x576 fps=30
[dshow @ 0000000002c457c0]   vcodec=h264  min s=1280x720 fps=5 max s=1280x720 fps=30
[dshow @ 0000000002c457c0]   vcodec=h264  min s=1600x896 fps=5 max s=1600x896 fps=30
[dshow @ 0000000002c457c0]   vcodec=h264  min s=1920x1080 fps=5 max s=1920x1080 fps=30
video=Logitech HD Pro Webcam C920: Immediate exit requested

1 ответ1

0

ffmpeg -s 1920x1080 -framerate 30 -rtbufsize 100 МБ -f dshow -vcodec h264 -i video = "Logitech HD Pro Webcam C920" -copyinkf -vcodec копировать файл Out.mp4

Вы получите потоковое видео в формате Full HD 3 Мбит / с с камеры на диск без перекодирования. Я не смог найти способ запросить другой битрейт. Существует также задержка около 7 секунд при запуске. Я полагаю, что задержка связана с ключевыми кадрами, но я не смог проверить это или уменьшить задержку. Если кто-то может помочь, пожалуйста, сделайте.

Я использую:

ffmpeg version N-80906-gd5edb6c Copyright (c) 2000-2016 the FFmpeg developers
built with gcc 5.4.0 (GCC)
configuration: --enable-gpl --enable-version3 --disable-w32threads --enable-dxva2 --enable-libmfx --enable-nvenc --enable-avisynth --enable-bzlib --enable-fontconfig --enable-frei0r --enable-gnutls --enable-iconv --enable-libass -
-enable-libbluray --enable-libbs2b --enable-libcaca --enable-libfreetype --enable-libgme --enable-libgsm --enable-libilbc --enable-libmodplug --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libop
enjpeg --enable-libopus --enable-librtmp --enable-libschroedinger --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvo-amrwbenc --enable-libvorbis --enable
-libvpx --enable-libwavpack --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxavs --enable-libxvid --enable-libzimg --enable-lzma --enable-decklink --enable-zlib
libavutil      55. 28.100 / 55. 28.100
libavcodec     57. 48.101 / 57. 48.101
libavformat    57. 41.100 / 57. 41.100
libavdevice    57.  0.102 / 57.  0.102
libavfilter     6. 47.100 /  6. 47.100
libswscale      4.  1.100 /  4.  1.100
libswresample   2.  1.100 /  2.  1.100
libpostproc    54.  0.100 / 54.  0.100

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .