gpt4 book ai didi

ffmpeg - 使用 ffserver 提供单个 JPEG

转载 作者:行者123 更新时间:2023-12-04 23:03:22 26 4
gpt4 key购买 nike

我有一个设置,本地应用程序将一系列 JPEG 图像写入 FIFO(Linux 上的 Unix 命名管道)。在另一端,我有 ffmpeg拾取序列并将其传递给 ffserver 的实例:

% ffmpeg -i fifo.mjpeg http://127.0.0.1:8090/feed.ffm
ffserver 的配置看起来像这样:
HTTPPort 8090
HTTPBindAddress 0.0.0.0
MaxHTTPConnections 20
MaxClients 10
MaxBandwidth 1000

<Feed feed.ffm>
File /tmp/feed.ffm
FileMaxSize 200k

ACL allow 127.0.0.1
</Feed>

<Stream stream.mpjpeg>
Format mpjpeg
Feed feed.ffm

VideoSize 960x600
VideoFrameRate 2
VideoIntraOnly
Strict -1

NoAudio
NoDefaults
</Stream>

这工作正常,我可以将我的网络浏览器指向 http://127.0.0.1:8090/stream.mpjpeg并观看视频。

现在我想添加一种下载单个 JPEG 的方法(我认为它是视频的快照)。我将以下内容添加到 ffserver配置:
<Stream image.jpg>
Format singlejpeg
Feed feed.ffm

VideoSize 960x600
VideoFrameRate 2
VideoIntraOnly
Strict -1

NoAudio
NoDefaults
</Stream>

只有这样的作品。当然,如果我将浏览器指向 http://127.0.0.1:8090/image.jpg我这样做是从视频中截取静止图片,但浏览器永远不会停止加载!

确实,如果我运行 wget http://127.0.0.1:8090/image.jpg我看到 MIME 类型很好( image/jpeg ),但图像似乎没有尽头。

我是否在我的配置中遗漏了导致 ffserver 的内容?发送多个图像?

我应该补充一点,我已经在 2.8.6(Debian Jessie,软件包来自 jessie-backports)和 3.0(Arch Linux)上尝试了这种设置,两种情况下的结果都相同。

最佳答案

你知道,我正在寻找问题的答案。我只找到了使用 mjpg-streamer 的方法。 :

mjpg_streamer -i 'input_uvc.so -f 15 -r 640x480' -o 'output_http.so'

让您通过 http://localhost:8080/?action=snapshot 下载快照.但我可以使用 ffmpeg 来做到这一点......

编辑:

看起来我想出了如何制作“可快照”的ffserver。这是我的配置:
HTTPPort 8090
HTTPBindAddress 0.0.0.0
MaxHTTPConnections 20
MaxClients 10
MaxBandwidth 100000

<Feed feed.ffm>
File /tmp/feed.ffm
FileMaxSize 200k

ACL allow 127.0.0.1
</Feed>

<Stream image.jpg>
Feed feed.ffm
Format jpeg

VideoSize 800x600
VideoFrameRate 30
Preroll 5
VideoIntraOnly
Strict -1

NoAudio
NoDefaults
</Stream>

编辑:

不幸的是,这种方法有时会产生奇怪的挂起......

关于ffmpeg - 使用 ffserver 提供单个 JPEG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36428564/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com