我已经安装了 ffmpeg 和 mjpeg-streamer。后者从 /tmp/stream 读取 .jpg 文件并通过 http 将其输出到网站上,因此我可以通过 Web 浏览器流式传输该文件夹中的任何内容。
我编写了一个 bash 脚本,它不断地从网络摄像头中捕获一帧并将其放入 /tmp/stream:
while true
do
ffmpeg -f video4linux2 -i /dev/v4l/by-id/usb-Microsoft_Microsoft_LifeCam_VX-5000-video-index0 -vframes 1 /tmp/stream/pic.jpg
done
这很好用,但速度很慢(~1 fps)。为了加快速度,我想使用一个 ffmpeg 命令来不断更新 .jpg,比如说 10 fps。我尝试的是以下内容:
ffmpeg -f video4linux2 -r 10 -i /dev/v4l/by-id/usb-Microsoft_Microsoft_LifeCam_VX-5000-video-index0 /tmp/stream/pic.jpg
然而,这 - 可以理解 - 导致错误消息:
[image2 @ 0x1f6c0c0] Could not get frame filename number 2 from pattern '/tmp/stream/pic.jpg'
av_interleaved_write_frame(): Input/output error
...因为输出模式对连续的图像流不利。
是否可以使用 ffmpeg 仅流式传输到一个 jpg?
谢谢...