问题标签 [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.
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 帧缓冲区内容的流式传输有更好的想法,我很想知道。
ffmpeg - ffmpeg 错误:数据看起来不像 RTP 数据包,请确保使用 RTP 复用器
我正在尝试通过 ffserver 从 usbcam 和 mic throw ffmpeg 流式传输视频和音频我收到 2 个错误:
- ffmpeg 似乎正在运行,但显示“数据看起来不像 RTP 数据包,请确保使用 RTP 多路复用器” - 我只能连接到 ffserver静态文件
这是 server.conf 文件:
我的 ffmpeg cmd 是
它似乎工作但显示此错误:
“数据看起来不像 RTP 数据包,请确保使用 RTP 复用器”
当我流式传输静态文件时它可以工作但是当我尝试播放 usbcam 流时抛出 ffplay 和 vlc 没有任何效果
先感谢您,
ffmpeg - 对等方重置连接,ffmpeg
我尝试了几种方法并进行了很多搜索。我只是无法弄清楚为什么会发生这种情况。
这是线程。我做了几乎同样的事情。
当您将 ffmpeg 命令行与 ffserver 一起使用时,它可以工作。但是当您使用示例代码时。它只是行不通。
什么不见了 ?
编辑
大家好,
我采用 muxing.c 示例并对其进行了修改,以便通过网络套接字发送流。我只做了一些修改:
main 函数现在看起来像:
而且,为了避免未指定频道布局的警告,我补充说:
就在 c->channels = 2 行下方;
我还提出了一个具有以下配置的 ffserver(仅显示馈线):
如果我用 ffmpeg 命令行输入 ffserver ,它就可以正常工作,例如:
但在我的例子中,我只能写几帧,然后可能混合修改后的程序以:
写入视频帧时出错:对等方重置连接
我还尝试了不同的编解码器(h264)和格式(flv),结果写入的帧数不同,但最终我得到了同样的错误。
我错过了什么??
谢谢
ffmpeg - 无法让 FFserver 流继续
我想以我对 ffmpeg 非常新,甚至对 ffserver 更新这一事实作为这个问题的序言。
为了我的一生,我不能让这件事继续下去。我得到:
"Too large number of skipped frames 882933314374 > 60000"
另外,ffplay给了我first frame is no keyframe
这是我的 ffserver.conf 文件
这是我的 ffmpeg 命令
我整天都在和这个东西作斗争,一直像疯子一样在谷歌上搜索。我究竟做错了什么?任何帮助都将受到热烈欢迎。
ffmpeg - 使用 ffmpeg 进行 HTTP 直播
一些上下文:我有一个 MKV 文件,我正在尝试将它作为 flv 文件流式传输到http://localhost:8090/test.flv 。
流开始,然后立即结束。
我正在使用的命令是:
如果这篇文章对其他人有用,我认为这些选项会做什么的细分:
以root身份运行
流命令的东西
实时流式传输
输入选项和输入文件的路径
使用编解码器 libx264 进行转换
不知道,一些转换选项,似乎有帮助
我认为音频选项,不确定。似乎也有帮助
还是不知道,也许是帧率帧率帧率帧率?
使用 http 协议输出到端口 8090 上的 localhost 作为名为 test.flv 的文件
无论如何,我遇到的实际问题是它开始流式传输大约一秒钟然后立即结束。
mpeg 命令结果:
ffserver 输出:
配置文件是:
非常感谢任何帮助,我会尽力根据他们的用户名画出最佳答案的图片。
linux - HTTP Live Stream 在一段时间后停止播放
我在使用 ffserver 进行流式传输时遇到问题。在我启动 ffserver 和桌面捕获后,一切似乎都正常。
然后我打开浏览器并访问输出(http://localhost:8090/test1.mpeg)。它可以正常播放 6-7 秒,然后停止,我必须刷新页面才能让它再次工作。有谁知道为什么会发生这种情况以及我该如何纠正?
这是我的 ffserver.conf
我的桌面捕获:
ffmpeg - 使用 FFmpeg 和 FFserver 将 Rtsp 流流式传输到网站。
我正在为客户开发一个网站,其中一项要求是嵌入来自 HikVision DVR DS7116 的视频。我有 DVR 的 RTSP url。我需要 FFmpeg 和 FFserver 的帮助。我已经编写了我的 ffserver 配置文件。
我接下来运行我的 ffserver 和 ffmpeg 命令
我收到的输出如下
我可以看到有一些错误,流开始了。当我将输出 url 放入我的 html 代码中时,没有流。我还尝试在 VLC 中播放网络流,但没有得到任何东西。任何人都可以帮我吗?任何线索也值得赞赏。谢谢你。
我的 HTML 代码是:
c++ - 在 C++ 程序中包含 ffmpeg 命令
我有一个 c++ 程序,它从共享内存读取渲染图像并将它们写入管道(mkfifo),以便我可以使用 ffmpeg 捕获它们并通过 ffserver 将它们作为实时视频流式传输。为了让我的流工作,我必须分别启动程序和 ffmpeg-command。我问自己是否有可能将 ffmpeg 包含到程序中并避免使用管道。
我的 ffmpeg 命令:
我的问题是:
将 ffmpeg 命令包含到 c++ 程序中的最佳方法是什么?还有其他想法可以改进此解决方案吗?
任何帮助是极大的赞赏。提前致谢。
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 的配置:
video - 使用 ffmpeg 和 ffserver 流式传输“字幕/文本”
FFmpeg(和 ffserver)是否可以流式传输文本数据?用例场景是视频和文本数据将通过 ffserver 分别流式传输。然后,客户端可以仅查看视频流,或者他们可以使用 ffmpeg 将视频流和文本数据(作为覆盖)结合起来。
我试图阅读文档并自己进行了实验。我能够向客户展示可以通过“drawtext”过滤器添加叠加层。然而,它已被拒绝。他们希望在需要时将文本数据单独流式传输并在客户端中多路复用。
有没有人做过类似的事情?