VLC播放来自netty服务器的HTTP视频流:由对等方重置连接

时间:2013-04-23 19:16:21

标签: http streaming netty vlc vlcj

在对视频进行了一些自定义编码后,我需要扩展基本的netty HTTP文件服务器(https://github.com/netty/netty/tree/master/example/src/main/java/io/netty/example/http/file)以通过HTTP流式传输视频。我打算编写一个使用vlcj重现流的Java应用程序。

但是,即使在开始扩展文件服务器之前,我也遇到了一种奇怪的行为。通过使用基本服务器示例(使用netty 3.6.5和netty 4.0.0.CR1),当我使用VLC(版本2.0.6)播放文件时,会发生以下情况:

  • VLC能够开始复制文件
  • 一旦我通过文件搜索了几次,我就会收到以下错误:java.io.IOException:peer by peer

使用mpc-hc(http://mpc-hc.org/)播放相同的流时,我没有遇到此问题。

我是否需要以某种特定方式配置服务器以允许VLC正确播放流?我在VLC和VLCJ网站/论坛中都没有找到任何特定信息。

接受任何提示/建议。

1 个答案:

答案 0 :(得分:2)

不幸的是,仅仅启动基本的http文件服务器以将视频流式传输到VLCj播放器是不够的。

服务器必须能够处理“范围请求”。在范围请求期间,VLC播放器请求下一个要播放的视频的特定部分(字节范围,例如字节3212-5678)。即使初始请求是针对所有字节,视频播放器也会在播放期间发出重复的范围请求。

当您寻找时,视频播放器将向您的服务器发出范围请求以获取该文件的下一部分。如果您的服务器无法处理请求,则播放器将具有您描述的行为。 (即由同伴休息)

希望有所帮助。