【问题标题】:live streaming video file from iphone to internet using FFMpeg使用 FFMpeg 将视频文件从 iphone 实时流式传输到互联网
【发布时间】:2025-12-27 05:05:12
【问题描述】:

我正在尝试将一些视频内容从 iphone 实时流式传输到互联网(或服务器)。我已阅读以下帖子(http://*.com/questions/4084811/iphone-http-live-streaming-without-any-server-side-processing)

我知道我可以先将图像和音频捕获到文件中,然后将其发送到互联网。但我真的不知道如何开始不断发送这些视频文件。

我知道我可以使用 ffmpeg 来做流媒体部分。经过长时间的研究,我只能找到一个使用 FFmpeg 库的名为 iFrameExtractor 的示例程序。但是示例只展示了如何使用ffmpeg播放视频文件,没有示例说明如何使用ffmpeg中的直播功能...

谁能提供指导或教程如何使用 ffmpeg 直播视频文件?或者任何人都可以提出其他方法来解决这个问题?我相信很多人都想知道如何做到这一点。

【问题讨论】:

  • 我正在做同样的工作,但直到现在都没有运气......你找到了什么......?

标签: iphone video streaming ffmpeg live


【解决方案1】:

对于流式传输,您可能需要使用ffserver。这是 FFmpeg 项目发布的命令行工具,它处理流媒体。

【讨论】:

  • 您介意详细解释一下吗?我知道 ffserver 可能会有所帮助,您能提供任何示例吗?
【解决方案2】:

没有直接回答您的问题,但您是否考虑过 NAT/防火墙问题?

即使您能够在您的 iPhone 上成功运行 HLS(或其他)服务器并且您的手机已连接到 Internet,但这并不一定意味着客户端可以连接到它,因为 NAT、防火墙等。这如果您的 iPhone 应用要通过 3G 使用,这是一个重要的考虑因素。

您最好编写一个网络服务器,iPhone 首先将未处理的视频帧上传到该网络服务器,然后在您的网络服务器上转码并运行媒体服务器。这将节省 iPhone 的电池寿命,帮助避免在 iPhone 上移植 ffserver(这并不容易),当然还允许您在 Web 服务器上部署强大的媒体服务器。

【讨论】:

  • 不,我不会在我的 iPhone 上托管服务器。您建议的解决方案可能能够解决我的问题。你能进一步描述你的想法吗?就像您如何将各个帧发送到服务器并将其转码为视频并进行直播一样。
  • 1) Capture iOS 上的视频 2) 当您收到视频时,将其上传到您的网络服务器 3) 使用 FMS / Red5 进行流式传输。如果您不确定将帧组合到视频流中,请在 OpenCV 中查找网络摄像头抓取代码
  • 对于第 1 步和第 3 步,我可以使用 AVAssetwriter 编写视频文件(mov、mp4)并使用 FMS 直播接收到的视频文件。但是对于step2,如何上传到网络服务器? http文件上传?实时播放?我知道iphone本身不支持RTMP。有一些 RTMP 静态库可以解决问题,比如 librtmp 和 rtmpdump。我在谷歌上搜索了几个月,我找不到任何如何在 xCode 项目中使用这些库的示例。我只能找到如何在 Windows、linux、mac 等中使用这些库的教程,但是这些示例显示了如何在命令行中执行此操作...
  • 另外,如果我想使用 RTMP 将流发送到像 wowza 这样的媒体服务器。如何将mov文件转换为flv?有些人声称 FFmpeg 可以做到这一点,但 iFrameExtrator xcode 示例再次显示如何播放录制的视频。但没有关于如何将视频文件滚动到 flv 或如何通过 RTMP 建立连接的示例。我真的希望有一些实际的例子。
  • 第 2 步使用 http PUT 上传文件
【解决方案3】:

我做了一个类似的简单演示工作,它是这样工作的:

iOS 端
1.使用ffmpeg或其他sdk抓拍小视频文件
2. 将它们发送到带有订单时间戳的服务器

服务器端
1. 收到文件
2. 使用 ts 文件将它们转换为 ts 格式
3.写一个html来展示ts文件

如何查看它们
使用 safari 访问该 html

【讨论】:

    最近更新 更多