我在Ubuntu上运行的ffmpeg/ffserver做到了这一点,如下webm(mp4和ogg稍微简单一些,应该以类似的方式从同一台服务器上工作,但是您应该使用所有3种格式来跨浏览器兼容)。
首先,从源代码编译的ffmpeg到包括libvpx驱动器(即使你使用的是有它,你需要最新的人(因为这个月的版本)以流WEBM,因为他们只是没有添加功能,包括全球头)。我在Ubuntu服务器和台式机上执行了此操作,并且this guide向我显示了操作方法 - 其他操作系统的说明can be found here。
一旦你已经得到适当版本的ffmpeg/ffserver,你可以将它们设置为流式传输,在我的情况下,这是按如下方式完成的。
在视频捕获装置:
ffmpeg -f video4linux2 -standard ntsc -i /dev/video0 http://:8090/0.ffm
的是, “-f video4linux2 - 标准NTSC -i的/ dev/video0的” 部分可以变化取决于输入信号源(矿为视频采集卡)。
相关ffserver.conf摘录:
Port 8090
#BindAddress
MaxHTTPConnections 2000
MAXClients 100
MaxBandwidth 1000000
CustomLog /var/log/ffserver
NoDaemon
File /tmp/0.ffm
FileMaxSize 5M
ACL allow
File /tmp/0_webm.ffm
FileMaxSize 5M
ACL allow localhost
Feed 0.ffm
Format mpeg1video
NoAudio
VideoFrameRate 25
VideoBitRate 256
VideoSize cif
VideoBufferSize 40
VideoGopSize 12
Feed 0_webm.ffm
Format webm
NoAudio
VideoCodec libvpx
VideoSize 320x240
VideoFrameRate 24
AVOptionVideo flags +global_header
AVOptionVideo cpu-used 0
AVOptionVideo qmin 1
AVOptionVideo qmax 31
AVOptionVideo quality good
PreRoll 0
StartSendOnKey
VideoBitRate 500K
Format status
ACL allow
注意这个被配置用于在feeder_ip以执行上述的ffmpeg命令的服务器,并且在SERVER_IP服务器,以便向服务器通过client_high_ip而client_low_ip在server_ip上处理mpeg到webm对话(继续)。
此FFMPEG命令在机器上执行先前称为SERVER_IP(它处理实际的MPEG - > WEBM转换并将其反馈到ffserver的在不同的进料):
ffmpeg -i http://:8090/0.mpg -vcodec libvpx http://localhost:8090/0_webm.ffm
一旦这些文件全部启动(首先是ffserver,然后是feeder_ip ffmpeg进程,然后是server_ip ffmpeg进程),您应该能够访问http://:8090/0.webm上的实时流并检查http中的状态://:8090/
希望这会有所帮助。