我成功地从 ffmpeg 中成功地喂食 ffServer 。 ffmpeg 将输入作为管道:
ffmpeg -loglevel fatal -f image2pipe -re -vcodec png -i - -vcodec libx264 http://localhost:8090/%s.ffm
外部 java 过程生成 svg/png 图像,然后推到 ffpmepg
我的 ffserver config允许我在不定义文件大小的情况下以 ffm 文件缓冲five 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 解决方案,或者我需要其他东西?
,这可以从 dynamic 文件中实现,因为我正在使用管道?
-
RTSP
ffserver
中的RTSP支持似乎有点粗略,您可以尝试Darwin Streaming Server或Live555 Media Server。两者似乎至少为VOD支持某些形式的技巧。由于您使用的管道可能不会有帮助。 -
RTMP
某些RTMP服务器/客户端支持徒处寻求( SMART SEEKING )。
关于智能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缓冲区的大小。