我正在研究HTML5提供的视频播放功能。我刚刚发现最近版本的Google Chrome和Firefox支持通过带标签的HTTP播放WebM编码的实时视频流。
我无法在任何地方找到有关如何实际实施的信息。 Apple HTTP Live Streaming协议上有很多链接,但在WebM流媒体上却没有多少链接。
非常感谢任何有用的链接。
答案 0 :(得分:2)
答案 1 :(得分:1)
以下是我在Ubuntu中的表现:
首先,从源代码构建ffmpeg以包含libvpx驱动程序(即使您使用的是具有它的版本,您需要最新版本(截至本月)才能流式传输webm,因为他们刚刚添加了包含全局头文件的功能)。我在Ubuntu服务器和桌面上执行了此操作,this guide向我展示了其他操作系统can be found here的说明。
一旦你获得了适当版本的ffmpeg / ffserver,就可以设置它们进行流式传输,在我的例子中,这样做完成如下。
在视频捕获设备上:
ffmpeg -f video4linux2 -standard ntsc -i /dev/video0 http://<server_ip>:8090/0.ffm
相关的ffserver.conf摘录:
Port 8090
#BindAddress <server_ip>
MaxHTTPConnections 2000
MAXClients 100
MaxBandwidth 1000000
CustomLog /var/log/ffserver
NoDaemon
<Feed 0.ffm>
File /tmp/0.ffm
FileMaxSize 5M
ACL allow <feeder_ip>
</Feed>
<Feed 0_webm.ffm>
File /tmp/0_webm.ffm
FileMaxSize 5M
ACL allow localhost
</Feed>
<Stream 0.mpg>
Feed 0.ffm
Format mpeg1video
NoAudio
VideoFrameRate 25
VideoBitRate 256
VideoSize cif
VideoBufferSize 40
VideoGopSize 12
</Stream>
<Stream 0.webm>
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
</Stream>
<Stream index.html>
Format status
ACL allow <client_low_ip> <client_high_ip>
</Stream>
此ffmpeg命令在以前称为server_ip的机器上执行(它处理实际的mpeg - &gt; webm转换并将其反馈到另一个Feed上的ffserver中):
ffmpeg -i http://<server_ip>:8090/0.mpg -vcodec libvpx http://localhost:8090/0_webm.ffm
一旦这些都已经启动(首先是ffserver,然后是feeder_ip ffmpeg进程,然后是server_ip ffmpeg进程),你应该能够访问http://:8090 / 0.webm的直播流并检查状态为http://:8090 /
希望这有帮助。