2

我设法从ffmpeg成功地提供了ffserverffmpeg将输入作为 PIPE:

ffmpeg -loglevel fatal -f image2pipe -re -vcodec png -i - -vcodec libx264 http://localhost:8090/%s.ffm

外部java进程生成svg/png图像并推送到ffpmepg

我的ffserver配置允许我在ffm文件中缓冲实时提要,而无需定义文件的大小。

我的配置如下所示:

<Stream live2.mjpg>
   Feed feed2.ffm
   Format mpjpeg
   VideoFrameRate 25
   VideoSize 640x880
   VideoQMin 1
   VideoQMax 5
   NoAudio
   Strict -1
</Stream>

问题是,尽管我可以通过打开网络观看VLC中的流:

http://0.0.0.0:8090/live2.mjpg

但我无法通过已经缓冲的电影寻找。有没有办法实现从“现在”开始通过电影寻找、暂停和恢复播放?我已经用h264mpgsdp尝试过rtsp但没有成功:

<Stream test1.mpg/sdp/h264>
   Format rtp
   Feed feed2.ffm
   VideoCodec libx264
   VideoSize 640x880
   VideoQMin 1
   VideoQMax 5
   NoAudio
   Strict -1
   VideoFrameRate 25
</Stream>

rtsp是这个问题的解决方案,还是我需要别的东西?

由于我使用的是 PIPE ,这可以从动态文件中实现吗?

4

1 回答 1

1
  • RTSP

    RTSP 支持ffserver似乎有点粗略,您可以尝试Darwin Streaming ServerLive555 媒体服务器。至少对于 VOD,两者似乎支持某些形式的特技播放。由于您使用的是管道,因此这可能无济于事。

  • 实时多播

    一些 RTMP 服务器/客户端支持缓冲区内搜索 ( Smart Seeking )。

    关于 Smart Seek

    Adobe Media Server 3.5.3 和 Flash Player 10.1 协同工作以支持在 VOD 流和具有缓冲区的实时流中进行智能搜索。[来源]。

    ffserver不支持 RTMP 输出,但您可以使用ffmpeg命令将流直接推送到服务器:

    ffmpeg -re -i <input> -f flv rtmp://...

    有一个Nginx RTMP 模块和一个C++ RTMP服务器,但不清楚它们是否支持智能搜索。VLC 似乎能够在暂停时寻找一点,并且通常有修改客户端 RTMP 缓冲区大小的选项。

于 2015-05-09T08:18:02.787 回答