问题标签 [ffserver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1780 浏览

c++ - 通过 HTTP 流式传输 OpenGL 帧缓冲区(通过 FFmpeg)

我有一个 OpenGL 应用程序,其渲染图像需要通过 Internet 流式传输到移动客户端。以前,只需将渲染记录到一个视频文件中就足够了,这已经可以工作了,现在这应该扩展到后续的流媒体。

现在什么工作:

  • 将场景渲染到 OpenGL 帧缓冲区对象
  • 使用 NvIFR 捕获 FBO 内容
  • 使用 NvENC 将其编码为 H.264(无需 CPU 往返)
  • 将编码帧作为字节数组下载到主机内存
  • 将此帧附加到视频文件

到目前为止,这些步骤都没有涉及 FFmpeg 或任何其他库。我现在想用“通过 Internet 流式传输当前帧的字节数组”替换最后一步,并且我认为使用 FFmpeg 和 FFserver 将是一个合理的选择。我对么?如果没有,正确的方法是什么?

如果是这样,我如何在我的 C++ 代码中处理这个问题?正如所指出的,该帧已经被编码。此外,没有声音或其他东西,只是一个 H.264 编码帧作为字节数组,不定期更新,应该转换为稳定的视频流。我认为这将是 FFmpeg 的工作,并且随后通过 FFserver 进行的流式传输将从那里变得简单。我不知道首先如何将我的数据提供给 FFmpeg,因为我发现的所有 FFmpeg 教程(在非详尽搜索中)都在文件或网络摄像头/捕获设备上工作作为数据源,而不是在主内存。

上面提到的我已经能够创建的文件是一个 C++ 文件流,我将每个单独的帧都附加到该文件流中,这意味着视频和渲染的不同帧速率没有得到正确处理。这也需要在某些时候加以注意。

有人可以指出我正确的方向吗?我可以将数据从我的应用程序转发到 FFmpeg 以构建正确的视频源而不写入硬盘吗?教程非常感谢。顺便说一句,FFmpeg/FFserver 不是强制性的。如果您对 OpenGL 帧缓冲区内容的流式传输有更好的想法,我很想知道。

0 投票
1 回答
3711 浏览

ffmpeg - ffmpeg 错误:数据看起来不像 RTP 数据包,请确保使用 RTP 复用器

我正在尝试通过 ffserver 从 usbcam 和 mic throw ffmpeg 流式传输视频和音频我收到 2 个错误:
- ffmpeg 似乎正在运行,但显示“数据看起来不像 RTP 数据包,请确保使用 RTP 多路复用器” - 我只能连接到 ffserver静态文件

这是 server.conf 文件:

我的 ffmpeg cmd 是

它似乎工作但显示此错误:

“数据看起来不像 RTP 数据包,请确保使用 RTP 复用器”

当我流式传输静态文件时它可以工作但是当我尝试播放 usbcam 流时抛出 ffplay 和 vlc 没有任何效果

先感谢您,

0 投票
0 回答
1803 浏览

ffmpeg - 对等方重置连接,ffmpeg

我尝试了几种方法并进行了很多搜索。我只是无法弄清楚为什么会发生这种情况。

这是线程。我做了几乎同样的事情。

当您将 ffmpeg 命令行与 ffserver 一起使用时,它可以工作。但是当您使用示例代码时。它只是行不通。

什么不见​​了 ?

编辑

大家好,

我采用 muxing.c 示例并对其进行了修改,以便通过网络套接字发送流。我只做了一些修改:

main 函数现在看起来像:

而且,为了避免未指定频道布局的警告,我补充说:

就在 c->channels = 2 行下方;

我还提出了一个具有以下配置的 ffserver(仅显示馈线):

如果我用 ffmpeg 命令行输入 ffserver ,它就可以正常工作,例如:

但在我的例子中,我只能写几帧,然后可能混合修改后的程序以:

写入视频帧时出错:对等方重置连接

我还尝试了不同的编解码器(h264)和格式(flv),结果写入的帧数不同,但最终我得到了同样的错误。

我错过了什么??

谢谢

0 投票
1 回答
2089 浏览

ffmpeg - 无法让 FFserver 流继续

我想以我对 ffmpeg 非常新,甚至对 ffserver 更新这一事实作为这个问题的序言。

为了我的一生,我不能让这件事继续下去。我得到:

"Too large number of skipped frames 882933314374 > 60000"

另外,ffplay给了我first frame is no keyframe

这是我的 ffserver.conf 文件

这是我的 ffmpeg 命令

我整天都在和这个东西作斗争,一直像疯子一样在谷歌上搜索。我究竟做错了什么?任何帮助都将受到热烈欢迎。

0 投票
1 回答
10012 浏览

ffmpeg - 使用 ffmpeg 进行 HTTP 直播

一些上下文:我有一个 MKV 文件,我正在尝试将它作为 flv 文件流式传输到http://localhost:8090/test.flv 。

流开始,然后立即结束。

我正在使用的命令是:

如果这篇文章对其他人有用,我认为这些选项会做什么的细分:

以root身份运行

流命令的东西

实时流式传输

输入选项和输入文件的路径

使用编解码器 libx264 进行转换

不知道,一些转换选项,似乎有帮助

我认为音频选项,不确定。似乎也有帮助

还是不知道,也许是帧率帧率帧率帧率?

使用 http 协议输出到端口 8090 上的 localhost 作为名为 test.flv 的文件

无论如何,我遇到的实际问题是它开始流式传输大约一秒钟然后立即结束。

mpeg 命令结果:

ffserver 输出:

配置文件是:

非常感谢任何帮助,我会尽力根据他们的用户名画出最佳答案的图片。

0 投票
1 回答
1016 浏览

linux - HTTP Live Stream 在一段时间后停止播放

我在使用 ffserver 进行流式传输时遇到问题。在我启动 ffserver 和桌面捕获后,一切似乎都正常。

然后我打开浏览器并访问输出(http://localhost:8090/test1.mpeg)。它可以正常播放 6-7 秒,然后停止,我必须刷新页面才能让它再次工作。有谁知道为什么会发生这种情况以及我该如何纠正?

这是我的 ffserver.conf

我的桌面捕获:

0 投票
0 回答
3354 浏览

ffmpeg - 使用 FFmpeg 和 FFserver 将 Rtsp 流流式传输到网站。

我正在为客户开发一个网站,其中一项要求是嵌入来自 HikVision DVR DS7116 的视频。我有 DVR 的 RTSP url。我需要 FFmpeg 和 FFserver 的帮助。我已经编写了我的 ffserver 配置文件。

我接下来运行我的 ffserver 和 ffmpeg 命令

我收到的输出如下

我可以看到有一些错误,流开始了。当我将输出 url 放入我的 html 代码中时,没有流。我还尝试在 VLC 中播放网络流,但没有得到任何东西。任何人都可以帮我吗?任何线索也值得赞赏。谢谢你。

我的 HTML 代码是:

0 投票
1 回答
2029 浏览

c++ - 在 C++ 程序中包含 ffmpeg 命令

我有一个 c++ 程序,它从共享内存读取渲染图像并将它们写入管道(mkfifo),以便我可以使用 ffmpeg 捕获它们并通过 ffserver 将它们作为实时视频流式传输。为了让我的流工作,我必须分别启动程序和 ffmpeg-command。我问自己是否有可能将 ffmpeg 包含到程序中并避免使用管道。

我的 ffmpeg 命令:

我的问题是:

将 ffmpeg 命令包含到 c++ 程序中的最佳方法是什么?还有其他想法可以改进此解决方案吗?

任何帮助是极大的赞赏。提前致谢。

0 投票
1 回答
1126 浏览

nginx - 如果服务在启动时未准备好,Nginx 返回 502

我正在开发一个使用 Raspberry Pi 构建的网络摄像头。它具有以下组件:

  • 端口 3000 上的 Node.js
  • FFmpeg / FFserver 在端口 8090
  • 前面的 Nginx 通过端口 80/443 (HTTP/HTTPS) 一起代理这些服务

我遇到的问题是,如果 FFserver 在 Nginx 启动时未在端口 8090 上完全准备好stream.mjpeg,即使流正在运行,它也会不断返回 502。这就好像 Nginx 确定主机不存在,然后再也不尝试了。一旦我重新启动/重新加载 Nginx 配置,它就会再次开始工作。

为什么会这样?我是否缺少重试条件?

这是 Nginx 的配置:

0 投票
1 回答
853 浏览

video - 使用 ffmpeg 和 ffserver 流式传输“字幕/文本”

FFmpeg(和 ffserver)是否可以流式传输文本数据?用例场景是视频和文本数据将通过 ffserver 分别流式传输。然后,客户端可以仅查看视频流,或者他们可以使用 ffmpeg 将视频流和文本数据(作为覆盖)结合起来。

我试图阅读文档并自己进行了实验。我能够向客户展示可以通过“drawtext”过滤器添加叠加层。然而,它已被拒绝。他们希望在需要时将文本数据单独流式传输并在客户端中多路复用。

有没有人做过类似的事情?