gpt4 book ai didi

ffmpeg - 使用 ffmpeg 从服务器流式传输视频帧

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

我正在通过 RMTP 流向我的服务器发送 JPEG 图像形式的视频帧。在服务器端,我想将流(ip + 端口)连接到 ffmpeg,以便它可以从流中抓取图像并从中创建视频流。

实际上,我的服务器正在监听传入帧的 IP 和端口。这部分完成了。我卡住的地方是如何使用 ffmpeg 将这些帧转换为视频流。谁能告诉我如何实现这一目标?我知道image2pipe是我应该使用的,但我没有在 Google 上找到它的语法和文档。

最佳答案

在服务器端 ,您可以调用命令行应用程序ffmpeg为您和stream the data 做繁重的工作.

客户端 ,我想讨论两种方法:

方法 1 : 使用 ffplay在 iPhone 上连接到服务器并显示视频流。

优点 : 这是最简单和最快的解决方案!

FFmpeg was ported to the iPhone很久以前的一些人,所以你可以调用 ffplay从 iPhone,告诉它连接到服务器,工作就完成了!查看Streaming a simple RTP audio stream from FFmpeg举个简单的例子。

缺点 : 好像there are legal issues involved on this matter ,所以有些人不建议使用 FFmpeg 分发您的应用程序。

方法二 : 写一个类似于 ffplay 的应用程序为 iPhone。

优点 :您可以使用自定义编码/解码程序来保护正在播放的数据,并让世界上的其他人使用您的播放器观看流媒体。

如果您正在流式传输真正的 JPEG(带有标题和所有内容,就像普通的 JPEG 文件一样),您需要的第一件事是使用 networking library允许您的应用程序连接到服务器并检索数据。

我建议,对于您的服务器接收到的每个新连接,它都会发送一个自定义 header (几个字节),通知客户端正在发送的每个帧的大小(因此客户端知道每个帧的大小)。

之后,应用程序将需要使用另一个库将传入数据解释为 JPEG 帧/文件。我现在可以想到 OpenCV,但我相信你可以找到更小的库。也许iOS为此提供了一个框架,但我真的不知道。

一旦您的应用程序可以访问每个帧携带的所有有用信息(即图像尺寸和像素),您的应用程序将创建一个 UIImage with this information对于从网络到达的每一帧,能够display them on the screen .

缺点 :您将不得不从头开始创建一个应用程序,并且可能会在此过程中学习一些新的 API。

关于ffmpeg - 使用 ffmpeg 从服务器流式传输视频帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20464956/

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