- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找编码网络摄像头流的最快方法,该流将在 html5 视频标签中可见。我正在使用 Pandaboard:http://www.digikey.com/product-highlights/us/en/texas-instruments-pandaboard/686#tabs-2对于硬件。可以使用gstreamer、cvlc、ffmpeg。我将使用它来驱动机器人,因此视频流中需要的延迟最少。质量不一定很好,也不需要音频。此外,这仅适用于一个客户端,因此带宽不是问题。迄今为止最好的解决方案是使用带有 mpjpeg 的 ffmpeg 给我大约 1 秒的延迟。有更好的吗?
最佳答案
我已经被问过很多次了,所以我会尝试笼统地回答这个问题,而不仅仅是针对 mjpeg。在系统中获得非常低的延迟需要一些系统工程工作以及对组件的理解。
我能想到的一些简单的顶级调整是:
确保编解码器配置为最低延迟。编解码器(尤其是嵌入式系统编解码器)将具有低延迟配置。启用它。如果您使用的是 H.264,它是最有用的。大多数人没有意识到按照标准要求,H.264 解码器需要在显示帧之前对其进行缓冲。 Qcif 最多 16 帧,720p 最多 5 帧。第一帧的输出有很多延迟。如果您不使用 H.264,请确保您没有启用 B 图片。这增加了获取第一张图片的延迟。
由于您使用的是 mjpeg,我认为这对您不太适用。
编码器也会有一个速率控制延迟。 (称为初始化延迟或 vbv buf 大小)。将其设置为提供可接受质量的最小值。这也将减少延迟。将其视为编码器和解码器之间的比特流缓冲区。如果您使用的是 x264,那将是 vbv 缓冲区大小。
一些简单的其他配置: 使用尽可能少的 I 图片(大内期)。
我的图片很大,增加了通过网络发送的延迟。这在端到端延迟在 1 秒或更长范围内的系统中可能不是很明显,但是当您设计需要 100 毫秒或更短的端到端延迟的系统时,这和其他几个方面都会发挥作用。还要确保您使用的是低延迟音频编解码器 aac-lc(而不是 heaac)。
在您的情况下,为了降低延迟,我建议远离 mjpeg 并至少使用没有 B 图片的 mpeg4(简单配置文件)或最好是 H.264 基线配置文件(x264 提供零延迟选项)。您将获得较低延迟的简单原因是您将获得较低的比特率后编码以发送数据并且您可以进入全帧率。如果您必须坚持使用 mjpeg,那么在没有使用开源组件的编解码器和系统提供更高级功能支持的情况下,您可以获得的效果非常接近。
另一方面是将内容传输到显示单元。如果您可以使用 udp,与 tcp 相比,它将大大减少延迟,尽管根据网络条件有时可能会丢失。您提到了 html5 视频。我很好奇您如何对 html5 视频标签进行实时流式传输。
还有其他方面可以调整,我会放在高级类别中,需要系统工程师尝试各种事情
操作系统中的网络缓冲是什么?出于性能原因,操作系统还会在发送数据之前对其进行缓冲。调整它以获得性能和速度之间的良好平衡。
您使用的是 CR 还是 VBR 编码?虽然 CBR 非常适合低抖动,但如果编解码器提供,您也可以使用 capped vbr。
您的解码器可以开始解码部分帧吗?因此,您不必担心在将数据提供给解码器之前对其进行分帧。尽快将数据推送到解码器。
你能做字段编码吗?在输出第一张图片之前将帧编码时间减半。
每当切片可立即通过网络发送时,您可以使用回调进行切片编码吗?
使用了我在上述所有方法中工作过的低于 100 毫秒的延迟系统。有些功能在开源组件中可能不可用,但如果你真的需要它并且有热情,你可以继续实现它们。
编辑:
我意识到你不能为 ipad 流媒体解决方案做很多上述事情,并且由于 hls 也有限制,你可以实现的延迟。但我希望当您需要任何低延迟系统时,它会在其他情况下证明是有用的。
关于ffmpeg - 寻找最快的视频编码器,将网络摄像头流式传输到 ipad,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12020430/
我妻子有一台 iPad,我想知道我是否可以用它来开发 iPad 应用程序?我假设答案是否定的。 最佳答案 Apple 的开发指南禁止商店中的此类应用程序,因此不幸的是,您不能使用 iPad 来制作 i
我开发了一个 iPad 应用程序,并为应用程序商店制作了分发配置文件,我需要在 30 台 iPad 上安装我开发的应用程序以进行一次事件,但我无法安装。我收到错误消息:(应用程序“xxxx”未安装在
我正在佛罗里达州开发一款 iPad/iPhone 应用程序,希望纽约的同事能帮我测试一下。纽约的测试人员没有 iMac,因为他们不在该地点进行任何开发。我只是想让他们验证他们所在位置的操作。有什么方法
我可以检测用户(音乐家)手指施加的力或压力吗? 最佳答案 还没有。 有一个技术演示展示了如何做到这一点。见 http://tenonedesign.com/blog/pressure-sensitiv
浏览器分辨率是多少?我已经在谷歌上搜索了一段时间,但不知何故我找不到它! 最佳答案 960x768 或 704x1024 关于ipad - iPad 的屏幕尺寸减去浏览器中的地址栏是多少?,我们在St
我的应用只能在横向使用,并且只能在横向启动。因此,iPad为横向时,左上角为(0,0),因此一切正常。 但是,当我拿起“ touchesBegan” ...时,它无法正常工作。只有当我像正确的三分之二
我在 ionic 中创建输入,它只接受数字。这适用于除 safari 和 ipad 之外的所有浏览器和设备。我不希望用户输入数字以外的任何内容。我尝试对输入事件进行正则表达式验证,但这并不能阻止用户输
是否可以在 iPad 中显示仅包含 0-9 数字的键盘?,我不希望键盘显示任何其他内容。我知道有这个 键盘类型:数字键盘 我们可以在 .xib 文件中,但它显示所有其他额外的字符,包括数字。我想使用这
我正在做一个SproutCore项目。我试图按原样在IPAD上获取该站点,但是CSS背景图像,onClick和重定向在IPAD上不起作用。 让我知道对此的任何解决方案。 最佳答案 在iPad上进行开发
我已经设置了MFMailComposeViewController,它在iPhone上正常工作,但是在iPad上崩溃了,并说: *** Terminating app due to uncaught
iPad:遍历UITableView中的每个单元格吗? 最佳答案 for (int section = 0; section < [tableView numberOfSections]; secti
我在这里寻找两个数字:纵向高度和横向高度。不要以厘米或英寸为单位回答,而以像素为单位。 最佳答案 纵向高度为 264,横向高度为 352。 我知道这是一个迟到的答案,但我自己也遇到了这个问题。 关于i
在我的应用程序中,我想播放Youtube URL(ipad)。我正在使用下面的代码。它只是向我显示一个白色屏幕 YouTube网址是:http://www.youtube.com/watch?v =
据我所知,iPad 使用 iPhone 操作系统,但屏幕分辨率与 iPhone 和 iPod touch 不同。许多网站可能必须更改其用户代理检测以适应 iPad。 那么,任何有权访问 iPad 或
我想预加载多个音频文件。为此,我尝试在JavaScript中创建多个Audio元素。 function loadAudio(){ audio1 = new Audio(); audio
我想使用适用于在所有最新 iPad 上查看的网页的字体。我找到了给定版本的 IOS 附带的字体列表。但这不是我想要的。我更喜欢给定 iPad 实际附带的字体列表,而不是 IOS 版本。如何解决这个问题
是否有可能拥有一个不在应用商店上架的 iPad 单独应用。该应用程序将在某些选定的成员中使用。因此它不需要进入应用商店,因为它不是供公众使用的。 最佳答案 那么有一些众所周知的可能性: Ad Hoc
子像素字体渲染如 ClearType显着提高字体显示分辨率并提高屏幕可读性。我如何对字体的子像素渲染进行编程(一般而言),以及如何在 iPad 上实现这一点(iOS 设备上的 C、C++ 或 Obje
我正在为 9.7 英寸 iPad 设计一个应用程序。我想知道是否有人对为更大的 iPad 设计的应用程序在 iPad mini 上的外观有任何经验?它会自动缩小,以某种方式在较小的屏幕上完美使用吗?还
我正在使用所有 UIKit,并且出于原型(prototype)设计的目的,我刚刚将所有逻辑插入了主 viewController。我在 viewDidLoad 中创建了一些 UIView,隐藏了一些,
我是一名优秀的程序员,十分优秀!