在windows上运行ffmpeg-实时缓冲区[USB摄像头][视频输入]太满或接近太满的帧丢失

在windows上运行ffmpeg-实时缓冲区[USB摄像头][视频输入]太满或接近太满的帧丢失,ffmpeg,Ffmpeg,我在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 -

我在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
我已经在windows上安装了ffmpeg,只需要正确的命令

我的错误日志是:

/dev/video0:没有这样的文件或目录

更新:

ffmpeg-list\u设备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!

通常在windows上,您将使用DirectShow进行输入

列出设备

  • ffmpeg-list_设备true-f dshow-i dummy
示例捕获

  • ffmpeg-f dshow-i video=“集成摄像头”等..
文件:



注意,对于StackOverflow,这个问题可能被认为是离题的。穿上它会更好。详细信息:

通常在windows上,您会使用DirectShow进行输入

列出设备

  • ffmpeg-list_设备true-f dshow-i dummy
示例捕获

  • ffmpeg-f dshow-i video=“集成摄像头”等..
文件:



注意,对于StackOverflow,这个问题可能被认为是离题的。穿上它会更好。详细信息:

Thnks我从死点移动,我更新了问题。如果你有一些更新问题的建议,那就好了。关于您的新错误,可能有很多原因,但我认为这通常意味着您的系统在对传入流进行实时输出转码时无法跟上。您可以尝试使用
-rtbufsize256M
增加rtbuffer大小,但也可能有很多其他的事情。再次,考虑张贴作为一个新的问题。我从死点出发,我更新了问题。如果你有一些更新问题的建议,那就好了。关于您的新错误,可能有很多原因,但我认为这通常意味着您的系统在对传入流进行实时输出转码时无法跟上。您可以尝试使用
-rtbufsize256M
增加rtbuffer大小,但也可能有很多其他的事情。再次,考虑张贴作为一个新的问题。