从ffserver寻找并暂停视频流

时间:2015-05-08 16:54:38

标签: ffmpeg video-streaming ffserver

我设法从 ffmpeg 成功提供 ffserver ffmpeg 将输入视为PIPE:

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

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

我的 ffserver 配置允许我在 ffm 文件中缓冲实时Feed,而不定义文件的大小。

我的配置如下所示:

<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

但我不能通过已经缓冲的电影来寻求。 有没有办法通过电影,暂停和从“现在”恢复播放?我已经尝试 rtsp h264 mpg sdp ,但没有成功:

<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吗?

1 个答案:

答案 0 :(得分:1)

  • <强> RTSP

    ffserver中的RTSP支持似乎有点粗略,您可以尝试Darwin Streaming ServerLive555 media server。这两个似乎至少对VOD支持某种形式的技巧游戏。由于您使用的是管道,因此无法提供帮助。

  • <强> RTMP

    某些RTMP服务器/客户端支持缓冲区内搜索(智能搜索)。

      

    关于Smart Seek

         

    Adob​​e Media Server 3.5.3和Flash Player 10.1一起工作   支持在VOD视频流和具有视频流的直播视频中进行智能搜索   缓冲。 [Source]。

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

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

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