Запустите ffmpeg на windows - буфер реального времени [USB-камера] [видеовход] переполнен или пропущен почти полный кадр - PullRequest
0 голосов
/ 14 июля 2020

Я добился успеха на macos и linux с:

Linux:

ffmpeg \
    -f v4l2 \
    -framerate 25 -video_size 640x480 -i /dev/video0 \
    -f mpegts \
    -codec:v mpeg1video -s 640x480 -b:v 1000k -bf 0 \
    http://localhost:8081/supersecret

Тест MacOS:

  ffmpeg -f avfoundation -framerate 30 -video_size 640x480 \
  -i "0" -f mpegts -codec:v mpeg2video -s 640x480 -b:v 1000k \
  -bf 0 http://localhost:8081/supersecret

Я уже установил ffmpeg на windows просто нужна правильная команда.

Мой журнал ошибок:

/dev/video0: No such file or directory

Обновление:

После ffmpeg -list_devices true -f dshow -i dummy я получил:

...
[dshow @ 000001985949ce80] DirectShow video devices (some may be both video and audio devices)
[dshow @ 000001985949ce80]  "USB Camera"
[dshow @ 000001985949ce80]     Alternative name "@device_pnp_\\?\usb#vid_0c45&pid_6340&mi_00#6&313cdc8e&0&0000#{65e8773d-8f56-11d0-a3b9-00a0c9223196}\global"
...

Затем я пытаюсь запустить свой сервер с:

ffmpeg -f dshow -i video="USB Camera"  -framerate 30 -video_size 640x480 -f mpegts -codec:v mpeg2video -s 640x480 -b:v 1000k -bf 0 http://localhost:8081/supersecret

И я ловлю этот журнал :

Input #0, dshow, from 'video=USB Camera':
  Duration: N/A, start: 27271.559000, bitrate: N/A
    Stream #0:0: Video: rawvideo (YUY2 / 0x32595559), yuyv422, 640x480, 30 fps, 30 tbr, 10000k tbn, 10000k tbc
[dshow @ 0000022a4be9f0c0] real-time buffer [USB Camera] [video input] too full or near too full (101% of size: 3041280 [rtbufsize parameter])! frame dropped!
    Last message repeated 173 times
[tcp @ 0000022a4beae340] Connection to tcp://localhost:8081 failed: Error number -138 occurred
http://localhost:8081/supersecret: Unknown error
[dshow @ 0000022a4be9f0c0] real-time buffer [USB Camera] [video input] too full or near too full (101% of size: 3041280 [rtbufsize parameter])! frame dropped!

1 Ответ

1 голос
/ 14 июля 2020

Обычно на windows вы будете использовать DirectShow для ввода.

Список устройств

  • ffmpeg -list_devices true -f dshow -i dummy

Пример захвата

  • ffmpeg -f dshow -i video="Integrated Camera" etc...

Документы:

Обратите внимание, что этот вопрос, вероятно, считается неоправданным c для StackOverflow. Лучше бы на https://superuser.com/. Подробности: https://meta.stackexchange.com/questions/168740/are-ffmpeg-questions-really-off-topic

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...