- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想做的是以下过程:
这将是一个直播。
好吧,我只需要第二步的帮助。我正在使用 AForge 框架检索相机图像。
我不想将帧写入文件然后对其进行解码,我想那会很慢。
我想在内存中处理编码帧,然后创建要发送的数据包。
我需要使用开源编码器。已按照此示例尝试使用 x264
How does one encode a series of images into H264 using the x264 C API?
但它似乎只适用于 Linux,或者至少我在尝试使用 Visual C++ 2010 编译该示例时看到 50 个错误后是这么想的。
我必须明确指出,在写这篇文章之前我已经做了很多研究(阅读了 1 周),但找不到一种(简单的)方法来做到这一点。
我知道有 RTMP 协议(protocol),但视频流总是被一个人一次(/?)一次看到,而 RTMP 更倾向于流式传输给许多人。此外,我已经使用我制作的 adobe flash 应用程序进行流式传输,但速度太慢了 ¬¬。
还希望您给我一个建议,是否可以一帧一帧地发送帧,或者是否最好在每个数据包中发送更多帧。
我希望至少有人能给我指出(/在?)正确的方向。
我的英语不好,也许等等抱歉。 :P
PS:不必是 .NET,它可以是任何语言,只要它能在 Windows 上运行。
非常非常感谢。
最佳答案
您可以使用 Microsoft 的 DirectShow 技术尝试您的方法。在 Monogram 上有一个开源 x264 包装器可供下载。 .
如果下载过滤器,则需要使用 regsvr32 向操作系统注册它。我建议做一些快速测试以确定这种方法是否可行,使用 GraphEdit 工具将您的网络摄像头连接到编码器并查看配置选项。
Also would like you to give me an advice about if its ok to send frames one by one or if it would be better to send more of them within each packet.
这实际上取决于所需的延迟:您打包的帧越多, header 开销越少,但延迟也越多,因为您必须等待多个帧被编码才能发送它们。对于直播流,延迟应保持在最低限度,使用的典型协议(protocol)是 RTP/UDP。这意味着您的最大数据包大小限于网络的 MTU,通常需要将 IDR 帧分段并在多个数据包中发送。
我的建议是不要担心在一个数据包中发送更多帧,直到/除非你有理由这样做。这对于音频流来说更常见,因为 header 大小(例如 IP + UDP + RTP)相对于音频有效负载被认为很大。
关于windows - 在 .NET 上使用 H.264 编码网络摄像头帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9549203/
避免必须自己创建整个相机应用程序,我调用: Intent camera = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); this.startActivit
我使用这种方法从前置摄像头录制视频: Recording video via Mediarecorder 它在我的 Nexus 4 上运行良好,但有人说有很多手机的前置摄像头无法录制视频,只能拍照。我
我正在使用 Android 手机的摄像头作为输入来测试成像算法,并且需要一种方法来始终如一地测试算法。理想情况下,我想获取预先录制的视频源并让手机“假装”视频源是来自相机的实时视频。 我理想的解决方案
我想在 android 上通过 v4l 访问外部 USB 摄像头。 我试过了 SimpleWebCam .在对原始源代码进行一些细微修改后,我实现了使其在 Root过的 android 设备上运行。然
我正在尝试连接两个连接到单个 USB 端口的 USB 网络摄像头。问题是当时只有一个摄像头工作...我在 python 中使用 OpenCV。这可能吗?我的目标是将多台相机连接到一台计算机以进行机器视
我想知道如何在 virtualbox 中使用笔记本电脑的内置网络摄像头和 android x86。 我已经尝试启动默认的“相机”应用程序,它告诉我必须配置 SDCard,我在本教程中所做的:SD ca
我在 64 位华硕的 Ubuntu 12.10 上安装了 ARToolKit。安装没有错误,所以我觉得我没问题。但是当我想尝试一个例子时,它找不到相机。如果我在 char *vconf = ""; 没
我想以编程方式移动 webvr 场景中 View 的位置。为此,我使用了position.add 方法。 以下是我如何以编程方式移动相机: 摄像机移至此处: var obj3d = docume
我正在使用 Camera 2 API 将 JPEG 图像保存在磁盘上。我的 Nexus 5X 目前有 3-4 fps,我想将其提高到 20-30。可能吗? 将图像格式更改为 YUV 我设法生成 30
Baby Monitor (http://www.babymonitor3g.com/) 等应用程序可让两台 iOS 设备相互连接。连接后,一台设备可以激活另一台设备上的摄像头、灯光和麦克风,即使该应
我有一个论坛帖子表单,允许发帖人附加录音和/或网络摄像头快照。这两个都是使用 navigator.getUserMedia() 实现的应用程序接口(interface)。对于音频,我建立了 varia
我对 Opencv 和 Python 有疑问。当我尝试从相机中查看帧时,它无法识别 USB 相机,我使用了带有两个 USB 相机的书籍中的标准代码,问题是只有一个相机工作,我不知道。我在 window
我编写了一个程序,基本上使用步进电机 + a4988 驱动程序将托盘放在连接到 Raspberry Pi 的相机下方。代码将托盘带到起始位置,迈出一步,拍照并重复 10 次。然后托盘返回到起始位置。我
我的 uEye 相机遇到了一个问题。使用我的笔记本电脑摄像头(id 0)或 usb 上的网络摄像头(id 1)这条线完美运行: TheVideoCapturer.open(1); (TheVideoC
我是 Android 版 openCV 的新手,我需要一个在后台运行的图像处理应用(检测图像的线条)。 我已经制作了一个应用程序来完成我需要的所有图像处理(使用 jni),但它不能在后台运行并且它使用
我正在尝试使用 OpenCV 从 USB 摄像头捕获视频。 #include #include using namespace std; using namespace cv; int main(
我正在寻找启用和禁用默认 iPhone 相机的方法,例如在特定时间或纬度/经度。有些地方是禁止摄像头的,所以我们可以在到达这样的地方时关闭它,这里只是举个例子。好吧,我认为在 iPhone 中禁用和启
有人有这种“东西”的工作样本吗? 在理论上,以这种方式实现它是个好主意,但我没有看到任何相关的代码 fragment 来说明如何实现它。 我不要花哨的东西,越简单越好。我只想在单独的线程上实现与相机控
我正在开发一个新网站。您可以加入房间通话并进行语音通话,因此可以使用您的网络摄像头,但您也可以共享您的屏幕。 问题是当我将轨道添加到流中时,对等点不再工作......我不知道如何解决这个问题。我还尝试
我需要在 Flutter 中创建一个考试应用程序,我们需要每隔一段时间拍摄用户的照片和视频,而在执行此操作时我们不想显示相机屏幕。 我尝试使用 Flutter 的 Camera 插件,但我无法找到任何
我是一名优秀的程序员,十分优秀!