ffserver流式传输webm数据,但不显示任何内容

时间:2014-11-07 13:17:20

标签: stream ffmpeg webcam ffserver

我正在尝试通过lubuntu机器在互联网上传输网络摄像头数据。为此,我安装了ffmpeg和ffserver。但是,我似乎无法让这个工作。 我想使用webm格式将其整合为HTML5视频。我在互联网上找到了几个这样的例子,所以这就是我设置的基础。这是我目前的ffserver配置:

HTTPPort 8090                      # Port to bind the server to
HTTPBindAddress 0.0.0.0
MaxHTTPConnections 2000
MaxClients 1000
MaxBandwidth 10000             # Maximum bandwidth per client
                               # set this high enough to exceed stream bitrate
CustomLog -
#NoDaemon                       # Remove this if you want FFserver to daemonize after start

<Feed feed1.ffm>               # This is the input feed where FFmpeg will send
   File ./feed1.ffm            # video stream.
   FileMaxSize 5M              # Maximum file size for buffering video
   ACL allow 127.0.0.1         # Allowed IPs
</Feed>

<Stream camera1.webm>              # Output stream URL definition
   Feed feed1.ffm              # Feed from which to receive video
   Format webm

   # Audio settings
   #AudioCodec vorbis
   #AudioBitRate 64             # Audio bitrate
   NoAudio

   # Video settings
   VideoCodec libvpx
   VideoSize 640x480           # Video resolution
   VideoFrameRate 2           # Video FPS
   AVOptionVideo flags +global_header  # Parameters passed to encoder
                                       # (same as ffmpeg command-line parameters)
   #AVOptionVideo cpu-used 0
   AVOptionVideo qmin 1
   AVOptionVideo qmax 42
   #AVOptionVideo quality good
   AVOptionAudio flags +global_header
   #PreRoll 1
   #StartSendOnKey
   VideoBitRate 400            # Video bitrate
</Stream>

<Stream status.html>            # Server status URL
   Format status
   # Only allow local people to get the status
   ACL allow localhost
   ACL allow 192.168.0.0 192.168.255.255
</Stream>

<Redirect index.html>    # Just an URL redirect for index
   # Redirect index.html to the appropriate site
   URL http://www.ffmpeg.org/
</Redirect>

我把FPS设置为2秒,几乎我所使用的计算机可以达到的最大值是4秒。然后我使用以下命令启动ffmpeg:

ffmpeg -f video4linux2 -s 640x480 -r 2 -i /dev/video0 -c:v libvpx http://localhost:8090/feed1.ffm. 

输入是一个标准的UVC网络摄像头,wprk正确(用奶酪测试),ffmpeg似乎工作(将文件设置为输出正常工作)和ffserver的链接似乎工作,两个程序相互重新组合。如果应用程序请求ffserver流,它确实会接收数据。例如,wget会产生一个文件,其大小与给定的比特率相同。但是,在网页中打开流不起作用。 我尝试了两种方式:只需浏览到webm链接。 firefox表示它正在接收一些数据,但没有显示任何内容。 ffserver还表示正在传输正常数量的数据。我尝试的第二个选项是带有视频流视频标签的网页:

<video with="640" height="480" autoplay>
  <source src="http://localhost:8090/camera1.webm" type="video/webm">
</video>

但这既不起作用。 谁知道我哪里出错?

1 个答案:

答案 0 :(得分:0)

您可以为此目的尝试<embed>标记。这样的事情:

<embed type="video/webm" src="http://localhost:8090/camera1.webm" width="640" height="480">

如果这不起作用,您可以尝试127.0.0.1而不是localhost