使用ffmpeg从服务器流式传输视频帧
我以JPEG图像的形式将视频帧发送到RMTP流上的服务器。 在服务器端,我想将流(ip + port)连接到ffmpeg,以便它可以从流中获取图像并从中创建视频流。
  其实我的服务器正在监听传入帧的IP和端口。  这部分完成了。  我陷入困境的是如何使用ffmpeg将这些帧转换为视频流。  任何人都可以请告诉我如何实现这一目标?  我知道image2pipe是我应该去的,但我还没有在Google上找到它的语法和文档。 
  在服务器端 ,您可以调用cmd行应用程序ffmpeg为您完成繁重任务并传输数据。 
在客户端 ,我想讨论两种方法:
  方法1 :使用iPhone上的ffplay连接到服务器并显示视频流。 
优点 :这是最简单和最快的解决方案!
  很久以前,FFmpeg被一些人移植到iPhone上,所以你可以从iPhone调用ffplay ,告诉它连接到服务器,并完成工作!  请查看从FFmpeg流式传输简单的RTP音频流,作为一个简单的例子。 
缺点 :在这个问题上似乎涉及法律问题,所以有些人不建议使用FFmpeg发布您的应用程序。
  方法2 :为iPhone编写类似于ffplay的应用程序。 
优点 :您可以使用自定义编码/解码程序来保护正在播放的数据,并让世界上的其他人使用您的播放器观看数据流。
如果您正在流式传输真正的JPEG(包含标题和全部,就像常规的JPEG文件一样),首先需要使用网络库来允许应用程序连接到服务器并检索数据。
我建议,对于服务器接收到的每个新连接,它都会发送一个自定义标题(几个字节),通知客户端发送的每个帧的大小(以便客户端知道每个帧的大小)。
之后,应用程序将需要使用另一个库来将传入数据解释为JPEG帧/文件。 我现在可以想到OpenCV,但我相信你可以找到更小的库。 也许iOS为此提供了一个框架,但我真的不知道。
  一旦您的应用程序可以访问每个帧携带的所有有用信息(即图像尺寸和像素),您的应用程序将为从网络到达的每一帧创建一个包含此信息的UIImage ,以便能够在屏幕上显示它们。 
缺点 :你将不得不从头创建一个应用程序,并且可能会学习一些新的API。
实际上有2种方法:
ffmpeg -i "rtmp://localhost/etc" out.flv
要么
rtmpdump -v -r rtmp://localhost/etc | ffmpeg -i - out.flv
                        链接地址: http://www.djcxy.com/p/17695.html
                        上一篇: Streaming video frames from server with ffmpeg
下一篇: Detecting (in VBA) when the window containing an excel instance becomes active
